ค้นหาเว็บไซต์

ลบผู้ใช้ออกจากกลุ่มด้วย 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 ลบเครื่องหมายคำพูดออกจากไฟล์ข้อความ อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง