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