Назад | Перейти на главную страницу

Почему командлеты Exchange 2010 игнорируют ErrorVariable?

Я пытаюсь запустить такие командлеты Exchange 2010, как этот:

Get-Mailbox UserName -ErrorVariable err

Однако командлеты, похоже, полностью игнорируют -ErrorVariable параметр: переменная $err никогда не создается и не изменяется, независимо от успеха или неудачи команды.

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

Это отлично работает на Exchange 2007 или с любым другим командлетом, не относящимся к Exchange 2010.

После того, как я немного погуглил и обнаружил, что множество людей сталкиваются с одной и той же проблемой, я позвонил в службу поддержки Microsoft. Они сказали мне использовать глобальные переменные вместо стандартных, и все начало работать, как ожидалось:

Get-Mailbox UserName -ErrorVariable global:err

Это, конечно, упоминается абсолютно нигде в документации по продукту (на сегодняшний день; я искренне надеюсь, что они обновят ее после моего обращения в службу поддержки).


То же самое относится и к -OutVariable: OutVariable не работает для командлетов Exchange 2010.