Я пытаюсь написать сценарий powershell, который создает почтовый ящик Exchange. Это работает отлично, пока почтовый ящик еще не существует, но когда я пытаюсь поймать какую-либо ошибку и сообщить об этом, скрипт просто работает, как если бы все было в порядке.Ошибки при сбое в командной консоли Exchange
Я запустил скрипт для уже существующего пользователя, и он показывает ошибку, но он возвращается нормально, как если бы почтовый ящик был создан.
Я нашел this question, который решил «почему», я полагаю, что команда Enable-Mailbox генерирует только неисчерпающие ошибки.
В любом случае, все предлагаемые решения для устранения этих ошибок не срабатывают. Командлет, похоже, игнорирует переменную $ ErrorActionPreference, $? всегда $ true, независимо от того, произошла ли ошибка или нет. $ error всегда содержит что-то, поэтому здесь ничего не нужно проверять.
Это код сценария, который я использую, очень простой.
param([string]$uid, [string]$email)
trap [Exception] {
"ERROR: " + $_.Exception.Message
exit
}
Enable-Mailbox -Identity $uid -Database HaiTest-MBDataBase-01 -PrimarySmtpAddress $email
"SUCCESS: mailbox created successfully"
Это работает со всем остальным, это просто оболочка управления Exchange, которая вызывает проблемы. Среда Exchange - это сервер Exchange 2010.
Есть ли способ проверить командлеты на наличие ошибок?
Ничего себе, передавая ErrorAction непосредственно на командлет, фактически работал. Это очень помогает, спасибо. –