PowerShell:get-adgroupmember并忽略ForeignSecurityPrincipals帐户

时间:2017-05-23 23:46:12

标签: powershell

目标是获取组成员并忽略ForeignSecurityPrincipal帐户(不删除,只需忽略)。这个组'zzapsdba_c'有ForeignSecurityPrincipal帐户,它导致get-adgroupmember错误输出。注意:我需要使用Microsoft Powershell cmdlet的解决方案。我已经有了使用get-qadgroupmember(Quest / dell powershell cmdlet)的替代解决方案,我不想使用它,因为它不是原生的。

我正在使用powershell,v4.0

这是我失败的代码。

get-adgroupmember zzapsdba_c -server nw

这是错误: get-adgroupmember:发生了未指定的错误 在行:1个字符:1 + get-adgroupmember zzapsdba_c -server nw + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo:未指定:(zzapsdba_c:ADGroup)[Get-ADGroupMember],ADException     + FullyQualifiedErrorId:ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

1 个答案:

答案 0 :(得分:3)

您应该能够通过使用获取成员属性并查找这些可分辨名称来获取该组的成员。像这样:

Get-ADGroup -Identity zzapsdba_c -Properties Members -Server nw | Select-Object -ExpandProperty Members | Get-ADObject -Server nw

我倾向于正常使用此功能,因为除非您更改域控制器上的默认ADWS配置,否则Get-AdGroupMember也可能会遇到包含超过1000个成员的组的问题。

如果您仍然不想忽略ForeignSecurityPrincipal对象,那么这应该可行。

Get-ADGroup -Identity zzapsdba_c -Properties Members -Server nw | Select-Object -ExpandProperty Members | Get-ADObject -Server nw | Where-Object { $_.ObjectClass -ne "ForeignSecurityPrincipal" }