Я пытаюсь запустить такие командлеты Exchange 2010, как этот:
Get-Mailbox UserName -ErrorVariable err
Однако командлеты, похоже, полностью игнорируют -ErrorVariable
параметр: переменная $err
никогда не создается и не изменяется, независимо от успеха или неудачи команды.
Почему это происходит и как я могу заставить их работать так, как они должны (т.е. заполнить переменную фактическим результатом команды)?
Это отлично работает на Exchange 2007 или с любым другим командлетом, не относящимся к Exchange 2010.
После того, как я немного погуглил и обнаружил, что множество людей сталкиваются с одной и той же проблемой, я позвонил в службу поддержки Microsoft. Они сказали мне использовать глобальные переменные вместо стандартных, и все начало работать, как ожидалось:
Get-Mailbox UserName -ErrorVariable global:err
Это, конечно, упоминается абсолютно нигде в документации по продукту (на сегодняшний день; я искренне надеюсь, что они обновят ее после моего обращения в службу поддержки).
То же самое относится и к -OutVariable
: OutVariable не работает для командлетов Exchange 2010.