Powershell比较对象比较不在组列表中的广告用户

时间:2018-11-21 17:11:31

标签: powershell

我正在尝试查找所有具有邮箱,但不在某些预期组中的用户(我们将希望拥有邮箱的用户放在其中)。我已经在脚本中使用它了,但是我这样做的方法是循环浏览用户帐户的集合并逐个验证其成员身份.....这太慢了。我正在尝试将用户帐户的(已排序)列表与成员组中的用户帐户(已排序的唯一列表)进行比较。...但是用compare-object命令无法成功。

$ GrpMembersUnique是各个组中唯一帐户的排序列表

$GrpMembersUnique = Get-AdGroup -SearchBase "OU=Groups,DC=blahblah" -filter {name -eq 'GRP_STAFF' -OR name -eq 'GRP_2' ....} -properties member | select-object -ExpandProperty member | get-AdUser -properties SamAccountName | Sort-Object | Get-Unique

$ userlist是具有邮箱的唯一帐户的排序列表

$userlist=Get-aduser -SearchBase "OU=People,DC=blahblah" -filter {mail -like "*" } -properties mail,SamAccountName | Sort-Object | Get-Unique

比较命令:

$ChecklList = compare-object -ReferenceObject $userlist -DifferenceObject $GrpMembersUnique -ExcludeDifferent -Property 'SamAccountName' | Where {$_.SideIndicator -like "<="} 

不返回任何结果。这应该很简单,所以我想我错过了一些简单的事情。...感谢任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

使用错误的开关。已将-ExcludeDifferent更改为-IncludeEqual,并且现在可以按预期工作。谢谢Lee_Dailey。

compare-object -ReferenceObject $userlist -DifferenceObject $GrpMembersUnique -IncludeEqual -Property 'SamAccountName' | Where {$_.SideIndicator -like "<="} 
相关问题