Windows
如何生成一組使用者所屬的安全組列表?
我被要求生成一個包含大約 50 個使用者的列表所屬的安全組列表(特別是不是分發組)。
我有一個使用者列表,
users.txt
其中包含新行中的每個使用者名。我想生成一個membership.txt
包含使用者名和使用者所屬安全組的列表,用逗號分隔。目前我寫的Powershell腳本如下:
$users = Get-Content C:\users.txt ForEach ($User in $users) { $getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof $User + ',' + $getmembership | Out-File -Append c:\membership.txt }
這幾乎可行,但有兩個問題:
- 它正在生成所有組的列表,而不僅僅是安全組。如何告訴它只包括安全組而不包括通訊組?
- 這些組以格式附加
OU=Security Groups,OU=City,DC=domain,DC=com CN=Senior Leaders
,但我真正想要的唯一資訊是Senior Leaders
。我怎樣才能刪除所有額外的資訊?
擴展您的
Get-ADUser
線路:$getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof | Get-ADGroup -Properties name | Where { $_.GroupCategory -eq 'Security' } | Select -ExpandProperty Name
這將提供組的 DN
Get-ADGroup
以檢索其他屬性,然後過濾組類別並選擇組的名稱(而不是 DistinguishedName)。