YuS 2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору newhk Цитата: Код: # по хорошему, выход надо сделать прямо в условии цикла, но у меня не очень это получилось )) while ($true){ $word = Read-Host "Вводим имя пользователя" | | Код: $word = "" while ($word -ne "end"){ $word = Read-Host "Вводим имя пользователя" | Цитата: бывают однофамильцы, из-за которых скрипт отрабатывает неправильно, по этому, хочу добавить условие и динамическое меню с выбором пользователя, если в переменной более одно пользователя. | Это уже не автоматизация... У пользователей не может быть полного совпадения, должны быть отличающиеся характеристики... вот, по этим параметрам и надо производить сравнения. Там ведь (в переменной $usrs) можно хранить полные объекты с данными, а не только .SamAccountName Добавлено: Цитата: Если бы это был Python, я бы в условии сделал $us.count >= 2 | В powershell, в цикле foreach не может быть count итема больше единицы, т.к. там происходит поштучный разбор массива Добавлено: newhk Цитата: Если бы это был Python, я бы в условии сделал $us.count >= 2 | Если таки хочется отбор делать исключительно по SamAccountName, то можно сделать, что-то типа: Исправлено: Исправил формирование массива пользователей, чтобы не дергать каждый раз в цикле Get-ADUser: Код: $usrs = Get-ADUser -SearchBase "Здесь полный путь до OU где искать" -Properties * -Filter * $word = "" while ($word -ne "end"){ $word = Read-Host "Вводим имя пользователя" $us = $usrs|?{$_.SamAccountName -eq $word} if ($us.count -gt 1){ <набор команд> } } |
| Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:39 29-10-2021 | Исправлено: YuS 2, 11:07 29-10-2021 |
|