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-客户端处理(即过滤)。
有没有简单的方法可以像这样过滤用户组成员:
$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-客户端处理(即过滤)。