Windows

如何生成一組使用者所屬的安全組列表?

  • September 25, 2014

我被要求生成一個包含大約 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
}

這幾乎可行,但有兩個問題:

  1. 它正在生成所有組的列表,而不僅僅是安全組。如何告訴它只包括安全組而不包括通訊組?
  2. 這些組以格式附加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

這將提供組的 DNGet-ADGroup以檢索其他屬性,然後過濾組類別並選擇組的名稱(而不是 DistinguishedName)。

引用自:https://serverfault.com/questions/631334