Powershell AD用户组成员

Powershell AD user group member

有没有简单的方法可以像这样过滤用户组成员:

$abcgroup = (Get-ADUser -Identity username –Properties MemberOf) | where {$_.MemberOf -like "*ABC*"}| Select-Object -ExpandProperty MemberOf | FT MemberOf -AutoSize

和 return 用户组只是 ABC-XYZ 而不是每个单独的组作为输出,否则任何简单的方法来处理所有组名并提取任何以 ABC-*[= 开头的组名11=]

谢谢

未经测试,但这可能有效:

$abcgroup = (Get-ADUser -Identity username –Properties MemberOf).MemberOf | 
             Where-Object {$_ -match '^cn=ABC-'} | ForEach-Object {(Get-ADGroup -Identity $_).Name}

$abcgroup | Format-Table

我会在服务器和本地处理方面让它更简单一些:

Get-ADGroup -LDAPFilter "(&(member=$((Get-ADUser username).distinguishedName))(sAMAccountName=abc-*))"

这将获取包含所选用户且其名称与模式匹配的所有组。这将只包括两个 LDAP 请求(一个用于获取用户 DN,一个用于获取所有组)。所有选择都将在服务器上完成,并且只会返回感兴趣的值,这意味着更少的数据传输和更少的 post-客户端处理(即过滤)。