Почему командлеты 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.