Я пытаюсь написать скрипт powershell, который создает почтовый ящик Exchange. Это прекрасно работает, пока почтовый ящик еще не существует, но когда я пытаюсь перехватить любую ошибку и сообщить о ней, сценарий просто запускается, как будто все в порядке.
Я запустил сценарий для уже существующего пользователя, и он показывает ошибку, но он обычно возвращается, как если бы почтовый ящик был создан.
Я нашел этот вопрос , который решил «почему», я думаю, команда 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.
Можно ли проверить командлеты на наличие ошибок?