ลบผู้ใช้ออกจากกลุ่มด้วย PowerShell
วิธีลบผู้ใช้ออกจากกลุ่มความปลอดภัย AD ด้วย PowerShell เป็นกลุ่มได้อย่างไร คุณสามารถเลือกผู้ใช้หลายรายใน AD และลบออกจากกลุ่มได้ แต่ถ้าคุณมีรายชื่อผู้ใช้และคุณไม่ต้องการค้นหาทีละรายล่ะ นี่เป็นวิธีที่ยอดเยี่ยมในการทำงานอัตโนมัติด้วย PowerShell ในบทความนี้ คุณจะได้เรียนรู้วิธีลบผู้ใช้จำนวนมากออกจากกลุ่มด้วยสคริปต์ PowerShell
ข้อมูล
คุณต้องลบรายชื่อผู้ใช้ในไฟล์ CSV ออกจากกลุ่มความปลอดภัย รายการนี้เต็มไปด้วยแอตทริบิวต์ UserPrincipalName
มีสองตัวเลือกในการทำงานให้สำเร็จ:
ด้วยตนเอง ค้นหาผู้ใช้ในผู้ใช้ Active Directory และคอมพิวเตอร์ และลบออกจากกลุ่มความปลอดภัย หากคุณมีรายการยาว การดำเนินการนี้ใช้เวลานาน ไม่เพียงเท่านั้น คุณยังอาจพลาดผู้ใช้จากรายการได้อีกด้วย
อัตโนมัติ การค้นหาด้วย PowerShell และลบผู้ใช้ออกจากกลุ่มความปลอดภัย ใช้เวลาน้อยลง และคุณจะไม่พลาดผู้ใช้รายใดเลย
PowerShell เหมาะสำหรับระบบอัตโนมัติ และนั่นคือสิ่งที่เราแนะนำให้ใช้
ตรวจสอบกลุ่มรักษาความปลอดภัย
ในตัวอย่างนี้ เรามีกลุ่มความปลอดภัย Pilot ส่วนสมาชิกเต็มไปด้วยผู้ใช้
อ่านเพิ่มเติม: แสดงรายการผู้ใช้ทั้งหมดในกลุ่มความปลอดภัยผ่าน PowerShell »
ตรวจสอบไฟล์ CSV ด้วย Import-Csv cmdlet
ตรวจสอบไฟล์ CSV และคุณใช้ส่วนหัวที่ถูกต้อง ในกรณีของเรา เป็นไฟล์ CSV Users.csv และส่วนหัว UserPrincipalName
ข้อสำคัญ: ตรวจสอบว่าไม่มีช่องว่างด้านหลังแต่ละบรรทัด หากเป็นเช่นนั้น คุณจะได้รับข้อผิดพลาด และสคริปต์จะไม่สามารถลบผู้ใช้ได้
วิธีที่ดีเยี่ยมคือการเพิ่มเครื่องหมายคำพูดเพื่อล้อมรอบฟิลด์
วางไฟล์ CSV ไว้ในโฟลเดอร์ C:\Temp สร้างโฟลเดอร์ชั่วคราวหากคุณไม่มี
เรียกใช้ Windows PowerShell ในฐานะผู้ดูแลระบบ ตรวจสอบให้แน่ใจว่า PowerShell สามารถอ่านไฟล์ได้ เรียกใช้ Import-Csv cmdlet
PS C:\> Import-Csv "C:\Temp\Users.csv"
UserPrincipalName
-----------------
Amanda.Morgan@exoip.com
Max.Fraser@exoip.com
Kylie.Davidson@exoip.com
Richard.Grant@exoip.com
Boris.Campbell@exoip.com
Nicholas.Murray@exoip.com
Leonard.Clark@exoip.com
Ruth.Dickens@exoip.com
John.Maverick@exoip.com
Ali.Tajran@exoip.com
Alysia.Maverick@exoip.com
Mohammad.Fistak@exoip.comลบผู้ใช้ออกจากสคริปต์ PowerShell กลุ่ม
ดาวน์โหลดสคริปต์ Remove-ADUsers.ps1 PowerShell หรือคัดลอกและวางโค้ดด้านล่างใน Notepad ตั้งชื่อให้ Remove-ADUsers.ps1 และวางไว้ในโฟลเดอร์ C:\scripts สร้างโฟลเดอร์ สคริปต์ หากคุณยังไม่มี
# Start transcript
Start-Transcript -Path C:\Temp\Remove-ADUsers.log -Append
# Import AD Module
Import-Module ActiveDirectory
# Import the data from CSV file and assign it to variable
$Users = Import-Csv "C:\Temp\Users.csv"
# Specify target group where the users will be removed from
# You can add the distinguishedName of the group. For example: CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local
$Group = "Pilot"
foreach ($User in $Users) {
# Retrieve UPN
$UPN = $User.UserPrincipalName
# Retrieve UPN related SamAccountName
$ADUser = Get-ADUser -Filter "UserPrincipalName -eq '$UPN'" | Select-Object SamAccountName
# User from CSV not in AD
if ($ADUser -eq $null) {
Write-Host "$UPN does not exist in AD" -ForegroundColor Red
}
else {
# Retrieve AD user group membership
$ExistingGroups = Get-ADPrincipalGroupMembership $ADUser.SamAccountName | Select-Object Name
# User member of group
if ($ExistingGroups.Name -eq $Group) {
# Remove user from group
Remove-ADGroupMember -Identity $Group -Members $ADUser.SamAccountName -Confirm:$false -WhatIf
Write-Host "Removed $UPN from $Group" -ForeGroundColor Green
}
else {
# User not member of group
Write-Host "$UPN does not exist in $Group" -ForeGroundColor Yellow
}
}
}
Stop-Transcriptบรรทัดที่ 8: แก้ไขชื่อไฟล์ CSV และเส้นทาง
บรรทัดที่ 12: แก้ไข OU เป้าหมาย
ในขั้นตอนถัดไป เราจะดูสคริปต์ PowerShell สำหรับผู้ใช้ AD จำนวนมาก
ลบผู้ใช้ออกจากกลุ่มเป็นกลุ่มด้วยไฟล์ CSV
เรียกใช้ Windows PowerShell ในฐานะผู้ดูแลระบบ เปลี่ยนเส้นทางไปยังโฟลเดอร์ สคริปต์ และเรียกใช้สคริปต์ Remove-ADUsers.ps1 PowerShell เพื่อลบผู้ใช้ AD จำนวนมากออกจากกลุ่ม
สคริปต์จะส่งผ่านผู้ใช้ทั้งหมดในไฟล์ CSV พารามิเตอร์ -WhatIf ถูกเพิ่มในสคริปต์บน บรรทัด 33 หากคุณเรียกใช้สคริปต์ จะไม่มีอะไรเกิดขึ้นในสภาพแวดล้อม คุณจะได้รับผลลัพธ์ที่แสดงว่าอะไรจะเกิดขึ้น
สคริปต์ Remove-ADUsers.ps1 จะแสดง:
หากผู้ใช้ถูกลบออกจากกลุ่ม
หากไม่มีผู้ใช้อยู่ในกลุ่ม
-
หากไม่มีผู้ใช้อยู่ใน Active Directory
PS C:\> cd c:\scripts
Transcript started, output file is C:\Temp\Remove-ADUsers.log
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Amanda.Morgan@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Max.Fraser@exoip.com from Pilot
Kylie.Davidson@exoip.com does not exist in Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Richard.Grant@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Boris.Campbell@exoip.com from Pilot
Nicholas.Murray@exoip.com does not exist in AD
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Leonard.Clark@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Ruth.Dickens@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed John.Maverick@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Ali.Tajran@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Alysia.Maverick@exoip.com from Pilot
What if: Performing the operation "Set" on target "CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local".
Removed Mohammad.Fistak@exoip.com from Pilot
Transcript stopped, output file is C:\Temp\Remove-ADUsers.logลบพารามิเตอร์ -WhatIf ออกจากสคริปต์ PowerShell และเรียกใช้สคริปต์อีกครั้ง ผู้ใช้จาก CSV จะถูกลบออกจากกลุ่ม
PS C:\scripts> .\Remove-ADUsers.ps1
Transcript started, output file is C:\Temp\Remove-ADUsers.log
Removed Amanda.Morgan@exoip.com from Pilot
Removed Max.Fraser@exoip.com from Pilot
Kylie.Davidson@exoip.com does not exist in Pilot
Removed Richard.Grant@exoip.com from Pilot
Removed Boris.Campbell@exoip.com from Pilot
Nicholas.Murray@exoip.com does not exist in AD
Removed Leonard.Clark@exoip.com from Pilot
Removed Ruth.Dickens@exoip.com from Pilot
Removed John.Maverick@exoip.com from Pilot
Removed Ali.Tajran@exoip.com from Pilot
Removed Alysia.Maverick@exoip.com from Pilot
Removed Mohammad.Fistak@exoip.com from Pilot
Transcript stopped, output file is C:\Temp\Remove-ADUsers.logตรวจสอบกลุ่มความปลอดภัยกับผู้ใช้ที่ถูกลบออก
เมื่อสคริปต์เสร็จสิ้น ให้ดูที่ผู้ใช้ Active Directory และคอมพิวเตอร์ ไปที่กลุ่มความปลอดภัยและตรวจสอบว่าคุณไม่เห็นผู้ใช้จากไฟล์ CSV ในแท็บสมาชิก ในกรณีนี้คือกลุ่มนักบิน
ผลลัพธ์จะแสดงในคอนโซล Windows PowerShell ไม่เพียงเท่านั้น ยังแสดงผลลัพธ์ในบันทึกเนื่องจากมีการเพิ่มการถอดเสียงลงในสคริปต์ PS ไปที่โฟลเดอร์ C:\temp และเปิดไฟล์ Remove-ADUsers.log
ทุกอย่างดูดีมาก! สิ่งนี้ช่วยคุณลบผู้ใช้ออกจากกลุ่มความปลอดภัยด้วย PowerShell เป็นกลุ่มหรือไม่
อ่านต่อ: รายการรหัสประเทศ Active Directory »
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีลบผู้ใช้ออกจากกลุ่มด้วย PowerShell ดาวน์โหลดสคริปต์ Remove-ADUsers.ps1 PowerShell แก้ไขเส้นทาง CSV และกลุ่มเป้าหมาย เรียกใช้สคริปต์และตรวจสอบว่าผู้ใช้ AD ถูกลบออกจากกลุ่มสำเร็จ PowerShell เหมาะอย่างยิ่งสำหรับการทำให้กระบวนการเป็นแบบอัตโนมัติ
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการให้ PowerShell ลบเครื่องหมายคำพูดออกจากไฟล์ข้อความ อย่าลืมติดตามเราและแบ่งปันบทความนี้





