Параметр фильтра Get-ADUser совпадает во второй раз - PullRequest
0 голосов
/ 30 августа 2018

Я собираюсь объяснить это шаг за шагом. Во-первых, вот код, который я пытаюсь заставить работать:

$Users = Get-Content c:\textfile.txt
foreach ($user in $users) {Get-ADuser -Filter {UserPrincipalName -like "$user*"}}

Так что, когда я запускаю это, он ничего не возвращает, что, я знаю, неправильно. Поэтому я использовал точки останова, чтобы посмотреть поближе. Я обнаружил, что переменная $ user действительно заполняется правильными значениями. В качестве теста я заменил $ user в фильтре одним значением (чтобы оно выглядело как код ниже) из текстового файла и прошел через него.

$Users = Get-Content c:\textfile.txt
foreach ($user in $users) {Get-ADuser -Filter {UserPrincipalName -like "1234567890*"}}

Вот где это становится интересным. Я поставил точку останова на строке foreach, и когда я пропустил ее в первый раз, на экран ничего не выводилось, кроме пустой строки. Когда я прошел через него во второй раз, выводился, как будто команда запускалась дважды, то есть объект пользователя с именем участника-пользователя, таким как 1234567890 *, записывал на экран дважды.

В качестве еще одной подсказки я попробовал следующую строку:

Get-Content c:\textfile.txt | Get-ADuser -Filter {UserPrincipalName -like "$_*" }

И появляется сообщение о том, что параметр Filter не принимает конвейерный ввод. Я не знаю, означает ли это что-нибудь, но я подозреваю, что это не так, поскольку я на самом деле не использую конвейер в своем исходном коде. С командлетом Get-ADUser это, вероятно, что-то сверхосновное, которое я не отслеживаю, хотя некоторое время уже использовал Powershell.

1 Ответ

0 голосов
/ 30 августа 2018

Использование фильтра в AD довольно сложно. Это на самом деле -filter <string>

Get-ADUser -Filter "UserPrincipalName -like '$($user)*'"

where-object - это другой тип синтаксиса фильтра, который вы пытались использовать. НАПРИМЕР. where-object {UserPrincipalName -like "$user*"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...