2011-12-21 4 views
1

Я пытаюсь написать сценарий 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.

Есть ли способ проверить командлеты на наличие ошибок?

ответ

3

Ошибки ловушки работают только при завершении ошибок, похоже, что ошибка, которую вы получаете от Enable-Mailbox, не является завершающей ошибкой. Вы можете заставить ошибку быть завершающей ошибкой, передав переменной ErrorAction значение «Стоп». Вы также можете использовать try/catch (в PowerShell 2.0) вместо ловушки:

param([string]$uid, [string]$email) 
trap { 
    "ERROR: " + $_.Exception.Message 
    exit 
} 
Enable-Mailbox -Identity $uid -Database HaiTest-MBDataBase-01 -ErrorAction Stop -PrimarySmtpAddress $email 
"SUCCESS: mailbox created successfully" 
+0

Ничего себе, передавая ErrorAction непосредственно на командлет, фактически работал. Это очень помогает, спасибо. –

Смежные вопросы