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

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

Get-Mailbox UserName -ErrorVariable err

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

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

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

1 ответ

Решение

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

Get-Mailbox UserName -ErrorVariable global:err

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


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

Другие вопросы по тегам