Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การจัดการกลุ่ม Active Directory ด้วย PowerShell

สแน็ปอินกราฟิกผู้ใช้ Active Directory และคอมพิวเตอร์ (ADUC) ไม่ใช่เครื่องมือเดียวสำหรับการจัดการกลุ่มความปลอดภัยใน Active Directory คุณสามารถใช้คำสั่ง PowerShell อย่างง่ายสำหรับการจัดการกลุ่มผู้ใช้แบบวันต่อวันในโดเมน Active Directory ในบทความนี้ เราจะมาดูวิธีใช้ PowerShell เพื่อสร้างกลุ่มใหม่ใน AD เพิ่มผู้ใช้ (หรือลบ) แสดง/ส่งออกรายชื่อผู้ใช้กลุ่ม และคำสั่งที่มีประโยชน์อื่นๆ ที่มักใช้ในการจัดการ AD กลุ่ม

ในการจัดการกลุ่มโฆษณา คุณสามารถใช้ Active Directory Module สำหรับ Windows PowerShell โมดูล RSAT-AD-PowerShell มีอยู่ใน Windows Server ทุกรุ่น (เริ่มต้นด้วย Windows Server 2008R2) และสามารถติดตั้งเป็นฟีเจอร์ RSAT ได้บนเดสก์ท็อป Windows 10 และ Windows 11

ตรวจสอบว่าโมดูล AD ถูกโหลดเข้าสู่เซสชัน PowerShell ปัจจุบันหรือไม่:

Get-Module -Listavailable

การจัดการกลุ่ม Active Directory ด้วย PowerShell

อย่างที่คุณเห็น โมดูล ActiveDirectory ถูกโหลด หากไม่เป็นเช่นนั้น ให้นำเข้าโดยใช้คำสั่งนี้:

Import-Module ActiveDirectory

มาดูรายการ cmdlet ของ PowerShell ที่อนุญาตให้คุณจัดการกลุ่มโฆษณา:

Get-Command -Module ActiveDirectory -Name "*Group*"

มี 11 cmdlets ที่พร้อมใช้งาน:

การจัดการกลุ่ม Active Directory ด้วย PowerShell

  • เพิ่ม-ADGroupMember
  • เพิ่ม-ADPRincipalGroupMembership
  • รับ-ADAccountAuthorizationGroup
  • Get-ADGroup
  • รับ-ADGroupMember
  • รับ-ADPRincipalGroupMembership
  • กลุ่มโฆษณาใหม่
  • ลบ-ADGroup
  • ลบ-ADGroupMember
  • ลบ-ADPRincipalGroupMembership
  • Set-ADGroup

New-ADGroup:การสร้างกลุ่มโฆษณาใหม่ด้วย PowerShell

สร้างกลุ่มความปลอดภัยใหม่ในคอนเทนเนอร์ Active Directory (OU) ที่ระบุโดยใช้ New-ADGroup คำสั่ง:

New-ADGroup "TestADGroup" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose

คุณสามารถใช้ คำอธิบาย และ ชื่อที่แสดง คุณสมบัติเพื่อระบุรายละเอียดกลุ่มและชื่อที่แสดง

การจัดการกลุ่ม Active Directory ด้วย PowerShell

คุณสามารถใช้ GroupScope พารามิเตอร์สามารถตั้งค่ากลุ่มประเภทใดประเภทหนึ่งต่อไปนี้:

  • 0 =DomainLocal
  • 1 =ทั่วโลก
  • 2 =สากล

คุณสามารถสร้างกลุ่มการแจกจ่ายได้ดังนี้:

New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose รหัส>

สามารถใช้กลุ่มการแจกจ่ายเพื่อส่งอีเมลและ/หรือให้สิทธิ์ AD เรียนรู้เพิ่มเติมเกี่ยวกับกลุ่มการแจกจ่าย Exchange ที่นี่

เมื่อสร้างกลุ่มโฆษณา คุณสามารถกรอกแอตทริบิวต์ใดก็ได้ วิธีที่ง่ายที่สุดในการตั้งค่าแอตทริบิวต์กลุ่มต่างๆ คือผ่าน hashtable:

$attrs = @{"mail"="[email protected]";"displayname"="ALL Munich Admins"}
New-ADGroup -Name MUNAdmins -GroupScope Global -OtherAttributes $attrs

การเพิ่มผู้ใช้ไปยัง Active Directory ผ่าน Add-AdGroupMember

คุณสามารถเพิ่มผู้ใช้ในกลุ่ม Active Directory โดยใช้ Add-AdGroupMember cmdlet มาเพิ่มผู้ใช้สองคนในกลุ่มใหม่:

Add-AdGroupMember -Identity TestADGroup -Members user1, user2

การจัดการกลุ่ม Active Directory ด้วย PowerShell

หากคุณต้องการเพิ่มผู้ใช้จำนวนมากในกลุ่มพร้อมกัน คุณสามารถบันทึกรายการชื่อผู้ใช้ลงในไฟล์ CSV จากนั้นนำเข้าไฟล์นี้ไปยัง PowerShell และเพิ่มผู้ใช้แต่ละคนในกลุ่มโดยใช้สคริปต์ PowerShell แบบง่าย

รูปแบบของไฟล์ CSV ควรจะเป็นดังนี้ (ผู้ใช้ต้องถูกระบุโดยหนึ่งในแถวที่มี ผู้ใช้ เป็นส่วนหัวของคอลัมน์)

การจัดการกลุ่ม Active Directory ด้วย PowerShell

Import-CSV .\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}

ในการรับสมาชิกทั้งหมดของกลุ่ม (groupX) และเพิ่มไปยังกลุ่มอื่น (groupY) ให้ใช้คำสั่งนี้:

Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $_}

หากคุณต้องการคัดลอกสมาชิกของกลุ่มที่ซ้อนกันทั้งหมดไปยังกลุ่มใหม่ (เรียกซ้ำ) ให้เรียกใช้คำสั่งนี้:

Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $_}

ในบทความก่อนหน้านี้ เราได้แสดงสคริปต์ PowerShell ที่ให้คุณคัดลอกความเป็นสมาชิกกลุ่ม AD จากผู้ใช้รายหนึ่งและเพิ่มผู้ใช้รายอื่นในรายการกลุ่มเดียวกันได้

คุณสามารถใช้คุณลักษณะการเป็นสมาชิกกลุ่มชั่วคราว (ตามเวลา) ใน Active Directory กับ Windows2016Forest schema และใหม่กว่าได้ หากต้องการเพิ่มผู้ใช้ในกลุ่ม AD ชั่วคราว (เช่น 1 ชั่วโมง) ให้เรียกใช้คำสั่ง:

$ttl = New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ttl

หลังจากผ่านไปหนึ่งชั่วโมง ผู้ใช้รายนี้จะถูกลบออกจากกลุ่มความปลอดภัยนี้โดยอัตโนมัติ

Remove-ADGroupMember:การลบผู้ใช้ออกจากกลุ่มโฆษณาด้วย PowerShell

หากต้องการลบผู้ใช้ออกจากกลุ่ม AD ให้ใช้ Remove-ADGroupMember cmdlet ขอลบผู้ใช้สองคนออกจากกลุ่ม:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

ยืนยันการลบผู้ใช้:

การจัดการกลุ่ม Active Directory ด้วย PowerShell

หากคุณต้องลบผู้ใช้ออกจากกลุ่มตามรายชื่อผู้ใช้จากไฟล์ CSV ให้ใช้คำสั่งนี้:

Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}

คุณไม่สามารถใช้กลุ่มผู้ใช้แบบไดนามิกใน Active Directory ในสถานที่ (ต่างจาก Azure AD) อย่างไรก็ตาม คุณสามารถสร้างสคริปต์ PowerShell ที่กำหนดเวลาไว้ซึ่งจะเพิ่มหรือลบผู้ใช้ออกจากกลุ่มโดยอัตโนมัติโดยใช้ Add-ADGroupMember และ Remove-ADGroupMember cmdlet. เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการสร้างกลุ่มผู้ใช้แบบไดนามิกใน Active Directory ด้วย PowerShell

ค้นหากลุ่ม Active Directory ด้วย Get-ADGroup

The Get-ADGroup cmdlet จะช่วยให้คุณได้รับข้อมูลเกี่ยวกับกลุ่มโดเมน AD:

Get-ADGroup 'TestADGroup'

คำสั่งนี้แสดงข้อมูลเกี่ยวกับแอตทริบิวต์หลักของกลุ่ม (DN, ประเภทกลุ่ม, ชื่อ, SID) ในการแสดงค่าของแอตทริบิวต์กลุ่มทั้งหมด ให้รันคำสั่งต่อไปนี้:

Get-ADGroup 'TestADGroup' -properties *

การจัดการกลุ่ม Active Directory ด้วย PowerShell

อย่างที่คุณเห็น คุณลักษณะดังกล่าว เช่น เวลาที่สร้างและแก้ไขกลุ่ม คำอธิบาย ฯลฯ จะปรากฏขึ้น

คุณสามารถใช้ Get-ADGroup cmdlet เพื่อค้นหากลุ่มใน AD ตามรูปแบบ ตัวอย่างเช่น คำสั่งต่อไปนี้สามารถใช้เพื่อค้นหากลุ่มโฆษณาทั้งหมดที่มีวลี admins ในชื่อของพวกเขา:

Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table

หรือ:

Get-ADGroup -Filter {name -like "*admins*"} -Properties Description,info | Select Name,samaccountname,Description,info

เมื่อใช้ Get-ADGroup คุณจะได้รับรายชื่อสมาชิกกลุ่ม (เก็บไว้ใน สมาชิก คุณลักษณะ):

Get-ADGroup -Identity "Domain Admins" -Properties members | Select-Object -ExpandProperty members

อย่างไรก็ตาม การใช้ Get-ADGroupMember . จะสะดวกกว่ามาก cmdlet เพื่อรับการเป็นสมาชิกกลุ่ม

Get-ADGroupMember:จะรับและส่งออกสมาชิกกลุ่ม Active Directory ได้อย่างไร

รับ-ADGroupMember cmdlet ให้คุณรับสมาชิกของกลุ่ม AD ซึ่งอาจเป็นผู้ใช้ คอมพิวเตอร์ กลุ่มอื่นๆ หรือบัญชีบริการที่มีการจัดการ (MSA/gMSA)

Get-ADGroupMember 'TestADGroup'

หากต้องการแสดงเฉพาะชื่อผู้ใช้ในผลลัพธ์ ให้เรียกใช้:

Get-ADGroupMember 'TestADGroup'| ft name

การจัดการกลุ่ม Active Directory ด้วย PowerShell

หากกลุ่มนี้มีกลุ่มโดเมนอื่น ให้ใช้ แบบเรียกซ้ำ พารามิเตอร์เพื่อแสดงรายชื่อสมาชิกทั้งหมดรวมทั้งกลุ่มที่ซ้อนกันทั้งหมด

Get-ADGroupMember ADadmins -recursive| ft name

ในการส่งออกรายการบัญชีที่เป็นสมาชิกของกลุ่มใดกลุ่มหนึ่งไปยังไฟล์ CSV (เพื่อใช้ใน Excel ต่อไป) ให้เรียกใช้คำสั่งต่อไปนี้:

Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:\PS\ADadminsList.csv

คุณสามารถส่งออกข้อมูลเกี่ยวกับผู้ใช้ในกลุ่มไปยังไฟล์ข้อความ Get-ADUser cmdlet ใช้เพื่อรับแอตทริบิวต์เพิ่มเติมของผู้ใช้ ตัวอย่างเช่น นอกจากชื่อบัญชีแล้ว คุณยังสามารถแสดง UserPrincipalName ตำแหน่ง และหมายเลขโทรศัพท์ของผู้ใช้กลุ่มได้:

Get-ADGroupMember -Identity ADadmins -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }

คุณสามารถนับจำนวนผู้ใช้ในกลุ่มได้ดังนี้:

(Get-ADGroupMember -Identity 'domain admins').Count

การจัดการกลุ่ม Active Directory ด้วย PowerShell

หากต้องการรับรายการกลุ่มว่างใน OU ที่ระบุ ให้ใช้คำสั่งนี้:

Get-ADGroup -Filter * -Properties Members -searchbase “OU=NY,OU-US,DC=corp,dc=woshub,DC=com”  | where {-not $_.members} | select Name

สามารถใช้ Get-ADGroupMember cmdlet เพื่อสร้างสคริปต์ PowerShell แบบง่ายที่แจ้งผู้ดูแลระบบว่ามีคนเพิ่มผู้ใช้ใหม่ในกลุ่มโฆษณาเฉพาะ

Set-ADGroup:การแก้ไขแอตทริบิวต์กลุ่ม Active Director

Set-ADGroup cmdlet ให้คุณเปลี่ยนคุณสมบัติ (แอตทริบิวต์) ของกลุ่ม Active Directory ตัวอย่างเช่น คุณสามารถเปลี่ยนคำอธิบายและชื่อกลุ่มได้:

Set-ADGroup -Identity MunAdmins -Description “Munich Admins Group”

หรือ:

Get-ADGroup -Identity MunAdmins | Set-ADGroup -Description “Munich Admins Group”

ซ่อนกลุ่มเฉพาะจาก Exchange GAL:

Set-ADGroup –id MunAdmins -replace @{hideDLMembership=$true}

คุณสามารถเปลี่ยนแอตทริบิวต์กลุ่มได้หลายรายการพร้อมกัน สะดวกในการตั้งค่ารายการการเปลี่ยนแปลงโดยใช้ HashTable:

$attrs = @{"mail"="[email protected]";"displayname"="ALL MUN Admins"}
Set-ADGroup -Identity MunAdmins –Add $attrs

การจัดการกลุ่ม Active Directory ด้วย PowerShell

คุณรับรายการแอตทริบิวต์กลุ่ม AD ได้ด้วย  get-adgroup munadmins -Properties * หรือจากแท็บ Attributes Editor ในคอนโซล ADUC

Remove-ADGroup:จะลบกลุ่มใน Active Directory โดยใช้ PowerShell ได้อย่างไร

หากต้องการลบกลุ่มใน Active Directory ให้ใช้ Remove-ADGroup cmdlet:

Remove-ADGroup -Identity MunSales

การจัดการกลุ่ม Active Directory ด้วย PowerShell

เมื่อลบกลุ่ม คุณจะได้รับแจ้งให้ยืนยันการลบ หากต้องการปิดการยืนยันการลบ ให้เพิ่ม ยืนยัน สวิตช์:

Remove-ADGroup -Identity MunSales –Confirm:$false

กลุ่มที่ถูกลบ (และวัตถุ AD อื่นๆ) สามารถกู้คืนได้จาก Active Directory Recycle Bin:

Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose