获取用户所属的特定广告组

Grabbing Specific AD Groups that a User is a Member Of

我这辈子都想不通。我想要做的是获取用户所属的所有组的列表。然后我想传递这些并抓住我正在寻找的特定组。

以下是我目前所拥有的:

(Get-ADUser $user -Properties MemberOf ).MemberOf | Where-Object {$_.Name -contains 'Part of Group Name'}

这个returns没什么。我有一种感觉,我没有在我的 Where-Object 中引用正确的 属性,但我很难找到那是什么。我知道 (Get-ADUser $user -Properties MemberOf ).MemberOf 的结果是:

CN=App - dyn_readuser_prod_WeblogicApps_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local
CN=App - dyn_readuser_prod_osb_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local
CN=App - dyn_readuser_prod_openshift_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local
CN=App - dyn_readuser_nonprod_WeblogicApps_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local
CN=App - dyn_readuser_nonprod_osb_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local
CN=App - dyn_readuser_nonprod_openshift_NS,OU=Groups,OU=USCC,DC=int,DC=usc,DC=local

我只是不知道如何引用“CN”。

有一个 cmdlet 可以很好地获取用户的组成员身份。请尝试以下操作:

Get-ADPrincipalGroupMembership -Identity $user | Select -ExpandProperty Name | Select-String -Pattern 'Part of Group Name' 

这样试试:

(Get-ADUser $user -Properties memberOf).memberOf |
  Where-Object { $_ -like 'CN=*Part of Group Name*,*' }

PowerShell v3 及更高版本中的 (...).memberOf 语法在功能上等同于管道到 Select-Object -ExpandProperty memberOf,因此您也可以这样写:

Get-ADUser $user -Properties memberOf |
  Select-Object -ExpandProperty memberOf |
  Where-Object { $_ -like 'CN=*part of group name*,*' }

(不支持 (...).memberOf“语法糖”的 PowerShell v2 需要第二个变体。)