สแน็ปอินกราฟิกผู้ใช้ 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
อย่างที่คุณเห็น โมดูล ActiveDirectory ถูกโหลด หากไม่เป็นเช่นนั้น ให้นำเข้าโดยใช้คำสั่งนี้:
Import-Module ActiveDirectory
มาดูรายการ cmdlet ของ PowerShell ที่อนุญาตให้คุณจัดการกลุ่มโฆษณา:
Get-Command -Module ActiveDirectory -Name "*Group*"
มี 11 cmdlets ที่พร้อมใช้งาน:
- เพิ่ม-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
คุณสามารถใช้ คำอธิบาย และ ชื่อที่แสดง คุณสมบัติเพื่อระบุรายละเอียดกลุ่มและชื่อที่แสดง
คุณสามารถใช้ 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
รหัส>
เมื่อสร้างกลุ่มโฆษณา คุณสามารถกรอกแอตทริบิวต์ใดก็ได้ วิธีที่ง่ายที่สุดในการตั้งค่าแอตทริบิวต์กลุ่มต่างๆ คือผ่าน 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
หากคุณต้องการเพิ่มผู้ใช้จำนวนมากในกลุ่มพร้อมกัน คุณสามารถบันทึกรายการชื่อผู้ใช้ลงในไฟล์ CSV จากนั้นนำเข้าไฟล์นี้ไปยัง PowerShell และเพิ่มผู้ใช้แต่ละคนในกลุ่มโดยใช้สคริปต์ PowerShell แบบง่าย
รูปแบบของไฟล์ CSV ควรจะเป็นดังนี้ (ผู้ใช้ต้องถูกระบุโดยหนึ่งในแถวที่มี ผู้ใช้ เป็นส่วนหัวของคอลัมน์)
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 $_}
คุณสามารถใช้คุณลักษณะการเป็นสมาชิกกลุ่มชั่วคราว (ตามเวลา) ใน 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
ยืนยันการลบผู้ใช้:
หากคุณต้องลบผู้ใช้ออกจากกลุ่มตามรายชื่อผู้ใช้จากไฟล์ CSV ให้ใช้คำสั่งนี้:
Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}
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 *
อย่างที่คุณเห็น คุณลักษณะดังกล่าว เช่น เวลาที่สร้างและแก้ไขกลุ่ม คำอธิบาย ฯลฯ จะปรากฏขึ้น
คุณสามารถใช้ 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
หากกลุ่มนี้มีกลุ่มโดเมนอื่น ให้ใช้ แบบเรียกซ้ำ พารามิเตอร์เพื่อแสดงรายชื่อสมาชิกทั้งหมดรวมทั้งกลุ่มที่ซ้อนกันทั้งหมด
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
หากต้องการรับรายการกลุ่มว่างใน 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
คุณรับรายการแอตทริบิวต์กลุ่ม AD ได้ด้วย
get-adgroup munadmins -Properties *
หรือจากแท็บ Attributes Editor ในคอนโซล ADUC Remove-ADGroup:จะลบกลุ่มใน Active Directory โดยใช้ PowerShell ได้อย่างไร
หากต้องการลบกลุ่มใน Active Directory ให้ใช้ Remove-ADGroup cmdlet:
Remove-ADGroup -Identity MunSales
เมื่อลบกลุ่ม คุณจะได้รับแจ้งให้ยืนยันการลบ หากต้องการปิดการยืนยันการลบ ให้เพิ่ม ยืนยัน สวิตช์:
Remove-ADGroup -Identity MunSales –Confirm:$false
Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose