Я пытаюсь найти всех пользователей, у которых есть почтовые ящики, но которые не входят в некоторые ожидаемые группы (куда мы помещаем наших пользователей, мы ожидаем, что у них будут почтовые ящики).У меня это работает в моем сценарии, но способ, которым я это сделал, заключается в том, чтобы циклически проходить через набор учетных записей пользователей и проверять их членство индивидуально ... что мучительно медленно.Вместо этого я пытаюсь сравнить (отсортированный) список учетных записей пользователей с (отсортированным уникальным списком) учетных записей в группах участников ... но не удается выполнить команду сравнения объекта.
$ 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 "<="}
не возвращает результатов.это должно быть просто, так что я думаю, что упустил что-то легкое .... любая помощь или руководство приветствуются.