我一生都无法弄清楚这一点。我想做的是获取用户所属的所有组的列表。然后我想传递这些并抓住我正在寻找的特定群体。
以下是我到目前为止所拥有的:
(Get-ADUser $user -Properties MemberOf ).MemberOf | Where-Object {$_.Name -contains 'Part of Group Name'}
这不会返回任何内容。我有一种感觉,我没有在位置对象中引用正确的属性,但我很难找到它是什么。我知道
(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”。
试试这个方法:
(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*,*' }
(PowerShell v2 中需要第二种变体,它不支持
(...).memberOf
“语法糖”。)
有一个 cmdlet 可以很好地获取用户的组成员身份。尝试以下操作:
Get-ADPrincipalGroupMembership -Identity $user | Select -ExpandProperty Name | Select-String -Pattern 'Part of Group Name'
我对 powershell 不太有经验,所以只是在这里寻找文章来完成一些事情。
有没有办法使用类似的 “Get-ADPrincipalGroupMembership -Identity $user | 选择 -ExpandProperty 名称 | Select-String -Pattern '组名称的一部分'” 但如果我不想输入组的具体名称而只想输入其中的一部分,则使用功能 Add-ADPrincipalGroupMembership 或 ADD-ADGroupMember ?
我有这个
Get-ADPrincipalGroupMembership $Users | Where-Object {$_.Name -like "SAP-GEN-P-DP4*"}|
其次是这个,但这当然是不正确的。
ForEach-Object {Add-ADPrincipalGroupMembership "SAP-GEN-P-DQ4*" -Members $users}
由于这些组的名称很长并且有超过 30 个组,我想将具有“SAP-GEN-P-DP4*”的用户也分配给具有“SAP-GEN-P-DQ4*”的组
感谢您的帮助