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

การจัดการกลุ่ม Active Directory โดยใช้ Get-AdGroup และ PowerShell


เมื่อใช้โมดูล ActiveDirectory PowerShell คุณสามารถค้นหากลุ่ม AD ด้วย Get-AdGroup เพิ่ม อัปเดต และลบกลุ่มและสมาชิกกลุ่ม ในโพสต์บล็อกนี้ คุณจะได้เรียนรู้เล็กน้อยเกี่ยวกับ PowerShell cmdlets กลุ่ม Active Directory พร้อมตัวอย่างมากมายสำหรับการอ้างอิง

Cmdlet กลุ่มไดเรกทอรีที่ใช้งานอยู่

เมื่อคุณติดตั้งโมดูล ActiveDirectory PowerShell คุณจะพบ cmdlets สองสามตัวที่พร้อมสำหรับจัดการกลุ่ม

Cmdlet Name

คำอธิบาย

Add-ADGroupMember

ใช้เพื่อเพิ่มสมาชิกในกลุ่มโฆษณา

Add-ADPrincipalGroupMembership

ใช้เพื่อเพิ่มหลักการ AD ให้กับกลุ่ม AD

Get-ADGroup

ใช้เพื่อส่งคืนกลุ่มหรือกลุ่มจาก AD

Get-ADGroupMember

ใช้เพื่อส่งคืนสมาชิกของกลุ่มโฆษณา

Get-ADPrincipalGroupMembership

ใช้เพื่อรับกลุ่มที่ AD อาจารย์ใหญ่เป็นสมาชิกอยู่

New-ADGroup

ใช้เพื่อสร้างกลุ่มโฆษณาใหม่

Remove-ADGroup

ใช้ในการลบกลุ่มโฆษณา

Remove-ADGroupMember

ใช้เพื่อลบสมาชิกออกจากกลุ่มโฆษณา

Remove-ADPrincipalGroupMembership

ใช้เพื่อลบหลักการ AD ออกจากกลุ่ม AD

Set-ADGroup

ใช้เพื่อกำหนดคุณสมบัติของกลุ่มโฆษณา

การใช้ cmdlets เหล่านี้และ PowerShell กังฟูเพียงเล็กน้อย คุณสามารถจัดการทุกแง่มุมของกลุ่ม Active Directory ด้วย PowerShell

ค้นหาสมาชิกของกลุ่มด้วย Get-ADGroupMember

Get-AdGroupMember cmdlet ส่งคืนสมาชิกทั้งหมดในกลุ่ม

PS51> Get-ADGroupMember -Identity <identity string or object>

หรือคุณสามารถอ้างอิงคุณสมบัติ memberOf กับผู้ใช้รายใดรายหนึ่งโดยใช้ Get-Aduser cmdlet หากต้องการทบทวนวิธีสร้างตัวกรอง โปรดดูที่การเรียนรู้ Active Directory Directory และตัวกรอง LDAP ใน PowerShell

สองตัวอย่างอยู่ด้านล่าง

PS51> Get-ADUser -Filter 'memberOf -eq ""'
PS51> Get-ADUser -LDAPFilter '(memberOf=)'

ซึ่งจะส่งคืนคอลเลกชันของวัตถุ ADPRincipal

ส่งออกสมาชิกของกลุ่มเป็นไฟล์ CSV

การดำเนินการนี้จะส่งออกชื่อ นามสกุล และที่อยู่อีเมลของผู้ใช้แต่ละราย ไพพ์ผลลัพธ์จากGet-ADGroupMember ถึง Get-ADUser เนื่องจากสิ่งเหล่านี้เป็นวัตถุ ADPrincipal ที่ไม่มีคุณสมบัติทั้งหมดที่ ADUser วัตถุมี

PS51> $GroupMembers = Get-ADGroupMember -Identity 'Professional Services Department'
PS51> $GroupMembers | Get-ADUser -Properties GivenName,Surname,Mail | Select-Object GivenName,Surname,Mail | Export-CSV -Path GroupMembers.CSV -NoTypeInformation

สังเกตการใช้พารามิเตอร์ NoTypeInformation ของ Export-CSV เพื่อให้แน่ใจว่าไฟล์ CSV เข้ากันได้กับแอปพลิเคชันอื่น

ค้นหากลุ่มที่ไม่มีสมาชิกด้วย Get-ADGroup

ใช้ Get-AdGroup เพื่อค้นหากลุ่มโดยใช้ตัวกรอง สองตัวอย่างด้านล่าง

PS51> Get-ADGroup -Filter "Members -notlike '*'"
PS51> Get-ADGroup -LDAPFilter "(!(member=*))"

สร้างกลุ่มความปลอดภัยใหม่ด้วย New-ADGroup

คุณสร้างกลุ่มความปลอดภัยใหม่โดยใช้คำสั่ง New-AdGroup

PS51> New-ADGroup -Name '<group name>' -GroupScope <scope of group> -Path '<path of the OU tht will host the new group>'

หากไม่มีพารามิเตอร์ Path กลุ่มใหม่จะถูกสร้างขึ้นในคอนเทนเนอร์ Users ขอบเขตของกลุ่มต้องเป็น DomainLocal, Global หรือ Universal

สร้างกลุ่มการแจกจ่ายใหม่ด้วย New-ADGroup

ใช้ New-AdGroup อีกครั้งเพื่อสร้างกลุ่มการแจกจ่าย คราวนี้ เลือก GroupCategory เป็น Distribution

PS51> New-ADGroup -Name '<group name>' -GroupScope <scope of group>  -GroupCategory Distribution -Path '<path of the OU tht will host the new group>'

เพิ่มสมาชิกในกลุ่มด้วย Add-ADGroupMember

การเพิ่มผู้ใช้ลงในกลุ่ม Active Directory ด้วย PowerShell สามารถทำได้โดยใช้ cmdlet Add-AdGroupMember หรือ cmdlet Add-ADPrincipalGroupMembership

คำสั่งนี้ระบุกลุ่มเป็น Identity

PS51> Add-ADGroupMember -Identity <identity string or object> -Members <identity string(s) or ADPrincipal(s)>

คำสั่งนี้ระบุหลักการ AD เป็น ข้อมูลประจำตัว

PS51> Add-ADPrincipalGroupMembership -Identity <identity string or object> -MemberOf <identity string(s) or ADGroup(s)>

เขียนลงในคุณสมบัติ Notes ของกลุ่มด้วย Set-AdGroup

ฟิลด์ที่มีป้ายกำกับว่า หมายเหตุ ใน ADUC จะแสดงด้วยคุณสมบัติ ข้อมูล ที่ส่งคืนจาก Get-AdGroup

ขั้นแรก ค้นหากลุ่มที่จะเปลี่ยนแปลง ตั้งค่าคุณสมบัติ ข้อมูล จากนั้นใช้ Set-AdGroup เพื่อยืนยันการเปลี่ยนแปลงกับ AD

PS51> $group = Get-ADGroup -Identity <identity string or object>
PS51> $group.Info = 'Important notes on this group'
PS51> Set-ADGroup $group

ลบสมาชิกกลุ่มด้วย Remove-ADGroupMember

เช่นเดียวกับ PowerShell cmdlets ทั้งหมด คุณสามารถใช้พารามิเตอร์ ยืนยัน เพื่อให้ได้รับแจ้งก่อนทำการเปลี่ยนแปลง ลักษณะการทำงานนี้ใช้กับ cmdlets Remove-AdGroupMember และ Remove-ADPrincipalGroupMembership ด้วยเช่นกัน

ด้านล่างนี้คุณสามารถลบสมาชิกกลุ่มโดยไม่ต้องมีการยืนยัน

PS51> Remove-ADGroupMember -Identity <identity string or object> -Members <identity string(s) or ADPrincipal(s)>
PS51> Remove-ADPrincipalGroupMembership -Identity <identity string or object> -MemberOf <identity string(s) or ADGroup(s)>

หรือคุณสามารถเลือกที่จะลบสมาชิกกลุ่มด้วยการยืนยันโดยใช้พารามิเตอร์ ยืนยัน

PS51> Remove-ADGroupMember -Identity <identity string or object> -Members <identity string(s) or ADPrincipal(s)> -Confirm
PS51> Remove-ADPrincipalGroupMembership -Identity <identity string or object> -MemberOf <identity string(s) or ADGroup(s)> -Confirm

ลบกลุ่มด้วย Remove-ADGroup

ลบกลุ่มโดยไม่มีการยืนยันและมีการยืนยัน

PS51> Remove-ADGroup -Identity <identity string or object>
PS51> Remove-ADGroup -Identity <identity string or object> -Confirm

เปลี่ยนชื่อกลุ่มด้วย Rename-ADObject

คุณสามารถเปลี่ยนชื่อกลุ่มได้โดยใช้บรรทัดเดียวโดยใช้ Rename-ADObject

PS51> Rename-ADObject -Identity <identity string or object> -NewName '<new name>'

รับจำนวนกลุ่มด้วย Get-ADGroup

คุณจำเป็นต้องค้นหาจำนวนรวมของกลุ่มที่ส่งคืนผ่าน Get-AdGroup หรือไม่ ใช้คุณสมบัติ นับ

PS51> (Get-ADGroup -Filter '*').Count

ค้นหากลุ่มที่มีผู้จัดการด้วย Get-ADGroup

กรองกลุ่มทั้งหมดที่ได้รับมอบหมายผู้จัดการด้วย Get-AdGroup และตัวกรอง LDAP ที่ออกแบบมาอย่างดี

PS51> Get-ADGroup -LDAPFilter '(managedby=*)'

ไม่มีตัวกรอง PowerShell ที่เทียบเท่าสำหรับสิ่งนี้

ค้นหากลุ่มที่จัดการโดยผู้ใช้เฉพาะด้วย Get-ADGroup

พัฒนาทักษะการกรองของคุณและค้นหากลุ่มทั้งหมดที่จัดการโดยผู้ใช้เฉพาะโดยใช้ตัวกรอง PowerShell หรือตัวกรอง LDAP

PS51> Get-ADGroup -Filter 'managedby -eq "<distinguished name of user>"'
PS51> Get-ADGroup -LDAPFilter '(managedby=<distinguished name of user>)'

ตั้งค่าผู้จัดการกลุ่มด้วย Set-ADGroup

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

การทำเครื่องหมายในช่อง ผู้จัดการสามารถอัปเดตรายชื่อสมาชิก สำหรับกลุ่มใน ผู้ใช้ Active Directory และคอมพิวเตอร์ (ADUC) จะเปลี่ยนสิทธิ์อนุญาต

ใช้ Set-ADGroup เพื่อตั้งค่าแอตทริบิวต์ ManagedBy:

PS51> Set-ADGroup -ManagedBy '<distinguished name, GUID, SID or SAM Account name of manager>'

การอัปเดตรายการควบคุมการเข้าถึงต้องใช้ขั้นตอนเพิ่มเติมอีกสองสามขั้นตอน ข้อมูลโค้ดต่อไปนี้ให้สิทธิ์ผู้ใช้ Kristin Diaz สามารถจัดการความเป็นสมาชิกของกลุ่มได้ bf9679c0-0de6-11d0-a285-00aa003049e2 เป็น GUID สำหรับคุณสมบัติ สมาชิก ของกลุ่ม

หาก Kristin ถูกตั้งค่าเป็นผู้จัดการของกลุ่มด้วย กล่องกาเครื่องหมายจะถูกทำเครื่องหมาย ถ้าไม่เช่นนั้น Kristin จะยังสามารถจัดการความเป็นสมาชิกของกลุ่มได้ แต่จะไม่แสดงใน ADUC ในฐานะผู้จัดการ

ค้นหารหัสผ่านที่รั่วไหลและไม่ปลอดภัยใน Active Directory ของคุณโดยตรวจสอบกับรายการรหัสผ่าน NCSC

$group = Get-ADGroup -Identity 'Professional Services Department'
$manager = Get-ADUser -Identity 'Kristin.Diaz'
$NTPrincipal = New-Object System.Security.Principal.NTAccount $manager.samAccountName
$objectGUID = New-Object GUID 'bf9679c0-0de6-11d0-a285-00aa003049e2'
$acl = Get-ACL "AD:$($group.distinguishedName)"
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $NTPrincipal,'WriteProperty','Allow',$objectGUID
$acl.AddAccessRule($ace)
Set-ACL -AclObject $acl -Path "AD:$($group.distinguishedName)"

ค้นหากลุ่มความปลอดภัยทั้งหมด

แสดงรายการกลุ่มความปลอดภัยทั้งหมดใน Active Directory ด้วย PowerShell โดยการจำกัดคำค้นหาของคุณไว้เฉพาะกลุ่มความปลอดภัยด้วยสองตัวอย่างนี้ คุณถามว่าตัวกรอง LDAP คืออะไร เรียนรู้ทั้งหมดเกี่ยวกับตัวกรอง LDAP

PS51> Get-ADGroup -Filter 'groupcategory -eq "Security"'
PS51> Get-ADGroup -LDAPFilter '(groupType:1.2.840.113556.1.4.803:=2147483648)'

ค้นหากลุ่มการแจกจ่าย

ใช้ PowerShell เพื่อแสดงรายการกลุ่ม Active Directory (การกระจาย) ซึ่งไม่รวมกลุ่มความปลอดภัยโดยใช้สองตัวอย่างนี้

PS51> Get-ADGroup -Filter 'groupcategory -eq "Distribution"'
PS51> Get-ADGroup -LDAPFilter '(!(groupType:1.2.840.113556.1.4.803:=2147483648))'

ค้นหาการเป็นสมาชิกกลุ่มสำหรับผู้ใช้ด้วย Get-ADPRincipalGroupMembership

PS51> Get-ADPrincipalGroupMembership -Identity <identity string or object>

โปรดทราบว่าคำสั่งนี้จำเป็นต้องเข้าถึงแคตตาล็อกส่วนกลาง

ค้นหากลุ่มใน OU โดยไม่รวม OU ย่อยใดๆ

ดูรายละเอียดโดยใช้พารามิเตอร์ SearchBase เพื่อจำกัดการค้นหาของคุณไว้ที่ OU เดียวโดยใช้สองตัวอย่างนี้

PS51> Get-ADGroup -Filter '*' -SearchBase '<distinguished name of OU>' -SearchScope OneLevel
PS51> Get-ADGroup -LDAPFilter '(CN=*)' -SearchBase '<distinguished name of OU>' -SearchScope OneLevel

ค้นหากลุ่มใน OU รวมถึง OU ย่อยใดๆ

คุณจำเป็นต้องค้นหากลุ่มทั้งหมดใน OU ย่อยหรือไม่ ใช้ SearchScope ของ SubTree

PS51> Get-ADGroup -Filter '*' -SearchBase '<distinguished name of OU>' -SearchScope SubTree
PS51> Get-ADGroup -LDAPFilter '(CN=*)' -SearchBase '<distinguished name of OU>' -SearchScope SubTree

สรุป

นี่เป็นการสรุปการสาธิตการจัดการกลุ่มโฆษณาด้วย PowerShell ที่ขับเคลื่อนด้วยตัวอย่างของเรา รับสิ่งเหล่านี้บางส่วน ลองใช้ในองค์กรของคุณ และเริ่มทำให้เป็นอัตโนมัติ!

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