У меня есть список пользователей и список групп AD.Я хотел бы знать, является ли кто-либо из пользователей членом этих групп.
- Мне не нужно знать, какие члены являются членами какой группы.
- Мне просто нужно знать, совпадает ли ЛЮБОЙ пользователь с Группой, если совпадение существует, выходное совпадение найдено и имя группы.
У меня есть этот код:
$users = Get-Content C:\test\testusers.csv
$groups = Get-Contect C:\test\testgroups.csv
foreach ($user in $users) {
foreach ($group in $groups) {
$members = Get-ADGroupMember -Identity $group -Recursive |
Select -ExpandProperty SamAccountName
if ($members -contains $user) {
Write-Host "Match Found $group"
}
}
}
Я провел тест на 4 пользователя и 3 группы объявлений, и это дает мне то, что мне нужно.Я получаю вывод:
- Соответствие найденному имени группы 1
- Соответствие найденному имени группы 2
- Соответствие найденному имени группы 1
Насколько я понимаю,что это сканирование каждого пользователя по всем группам, а затем по всем группам.Хотя это работало для моей тестовой партии в небольших количествах, мне нужно отсканировать 2000 пользователей по 1100 группам.
Я так понимаю, потому что я сканирую пользователей по группам?и нужно сканировать группы для пользователей?
Есть ли способ, которым я могу поставить строку кода, в которой говорится, если найден переход в следующую группу?