Переменные Powershell в Get-AdUser - PullRequest
0 голосов
/ 13 марта 2012

Я пытаюсь написать простой скрипт powershell.

Get-ADuser -Filter {GivenName -eq $GivenName $hateList} -SearchBase $Container -Properties displayName,telephoneNumber,department|ForEach-Object {"FullName`t: $($_.displayName)`r`nPhone`t`t: $($_.telephoneNumber)`r`nDepartment`t: $($_.department)`r`n"}

Ошибка, которую я получил: Get-ADUser: Ошибка анализа запроса: 'GivenName -eq $ GivenName $ hateList' Сообщение об ошибке: 'синтаксическая ошибка 'в позиции:' 26 '.

Таким образом, проблема в том, что переменные не заменяются своими значениями.Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Неправильный параметр фильтра.Если вы хотите, чтобы GivenName был равен $ GivenName, вы должны сделать это следующим образом:

{GivenName -eq $GivenName}

Если вы хотите, чтобы он был равен $ GivenName или $ hateList, что бы это ни было, вы должны попробовать что-то вроде:

{(GivenName -eq $GivenName) -or (GivenName -eq $hateList)}

Проверьте эту ссылку для дополнительного фильтра: http://technet.microsoft.com/en-us/library/ee617241.aspx

Сначала вы можете получить список пользователей с таким фильтром:

{GivenName -eq $GivenName}

Инекоторая постобработка:

$users | Where-Object { $hateList -notcontains  $_.cn }
0 голосов
/ 13 марта 2012

Если раскрытие переменной не работает при передаче переменной, попробуйте передать ее в кавычках:

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