我被要求生成一个安全组列表(特别是不是通讯组),列出大约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的forms被追加,但是我唯一需要的信息是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以检索其他属性,然后过滤组类别并select组的名称(而不是DistinguishedName)。