Невозможно использовать переменную с Get-User -Filter в консоли управления Exchange - PullRequest
3 голосов
/ 25 октября 2010

Я не могу использовать переменную в ситуации ниже.

[PS] C:\>Get-User -Filter {SamAccountName -eq "Test.Smith"}
Name                                                        RecipientType
----                                                        -------------
Test Smith                                                  UserMailbox

[PS] C:\>$SamAccountName = "Test.Smith"
[PS] C:\>Get-User -Filter {SamAccountName -eq $SamAccountName}
[PS] C:\>echo $SamAccountName
Test.Smith
[PS] C:\>

Вы можете видеть, что команда работает нормально, когда я набираю имя, но не когда я использую переменную.Спасибо!

Ответы [ 2 ]

4 голосов
/ 26 октября 2010

У меня нет доступа к этому командлету, вы уверены, что он занимает блок скриптов, а не строку?Если требуется строка, попробуйте это:

Get-User -Filter "SamAccountName -eq $SamAccountName"

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

Get-User -Filter {SamAccountName -eq $SamAccountName}.GetNewClosure()
1 голос
/ 04 июля 2012

Как видно из комментариев, добавьте одинарные кавычки вокруг переменных, или ваш результат фильтрации имеет неправильный синтаксис.

 Get-User -Filter "SamAccountName -eq '$SamAccountName'"

При прямой передаче параметров вы можете просто передать переменную.Но в этом случае вы строите правильно отформатированную строку запроса, и в нее входят одинарные кавычки.

Когда вы получите полный ответ, не оставляйте его как комментарий ... создайте его какполный ответ.

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