Вы можете сделать что-то вроде следующего:
$group = 'my group name'
$GroupMembers = Get-ADGroupMember $group -Recursive
Get-ADUser -Filter "Enabled -eq '$true'" -Properties Mail |
Where-Object { $_.SamAccountName -notin $GroupMembers.SamAccountName } |
Select-Object SamAccountName,Mail |
Export-Csv Output.csv -NoType
Get-ADGroupMember
с переключателем -Recursive
будет рекурсивно получать объекты AD, которые являются членами $group
.
Get-ADUser
использует фильтр только для запросов включенных пользователей. Обратите внимание, что необходимо добавить свойство Mail
, поскольку атрибуты адреса электронной почты не отображаются по умолчанию. Вы можете настроить этот фильтр, чтобы сделать запрос быстрее. Если вы готовы добавить немного сложности и провести тестирование производительности, возможно, быстрее будет создавать отдельные Get-ADUser -Filter ...
запросы, чем полагаться на Where-Object
. Производительность будет зависеть от размера вашей рекламы и количества участников в целевой группе.