Итак, у меня есть список пользователей, которых мне нужно проверить с помощью инструментов RSAT и модуля GetAD-User в Powershell. В результате я определил, что следующая команда будет извлекать информацию о пользователе, и я передаю другой файл пользователям, нуждающимся в проверке. Следующая команда будет работать и предоставит мне информацию о пользователе и посмотреть, существует ли адрес электронной почты:
Get-ADUser -filter * -properties EmailAddress -SearchBase 'DC=xxx-xxxx,DC=xxx,DC=xx,DC=us'| select-object Name, EmailAddress | select-string 'doe,john'
Поэтому я попробовал al oop, используя следующее:
cat .\PD.txt | ForEach-Object {Get-ADUser -filter * -properties EmailAddress -SearchBase 'DC=xx-xxxx,DC=xxx,DC=xx,DC=us'| select-object Name, EmailAddress | select-string '$_'}
** У меня есть пропустил часть информации D C с точки зрения имен AD по соображениям безопасности.
Внутри PD.txt у меня было бы что-то вроде текстовых файлов с именами пользователей в Lastname, Firstname на строку. Однако с точки зрения информации ничего не выводится. Если бы я сделал это без «$ _» и команды forEach-Object, он бы работал, но ничего не печатает. Неправильно ли мой forl oop?
Я попробовал по-другому, но он все еще не работал, используя апострофы для передачи строки другим способом, записывая его в файл users.txt
с именем Real.txt
. Хотя я могу пропустить oop через него, это не работает, когда я ввожу команду GetAD-User
. Однако я думаю, что в моем for-l oop может быть что-то не так, хотя я не уверен, что это такое.
PS C:\Users\richard.barrett\Git> cat .\Real.txt | ForEach-Object {echo $_}
'Doe, John'
'Doe, Jane'
Сравнительный For-L oop:
PS C:\Users\richard.barrett\Git> cat .\Real.txt | ForEach-Object {Get-ADUser -filter * -properties EmailAddress -SearchBase 'DC=xx-xxxx,DC=xxx,DC=xx,DC=us'| select-object Name, EmailAddress | select-string $_}