获取用户所属的特定 AD 组

问题描述 投票:0回答:3

我一生都无法弄清楚这一点。我想做的是获取用户所属的所有组的列表。然后我想传递这些并抓住我正在寻找的特定群体。

以下是我到目前为止所拥有的:

(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”。

powershell windows-scripting
3个回答
1
投票

试试这个方法:

(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
“语法糖”。)


1
投票

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

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

0
投票

我对 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*”的组

感谢您的帮助

© www.soinside.com 2019 - 2024. All rights reserved.