【发布时间】:2012-01-25 05:17:09
【问题描述】:
我正在尝试编写一个用于创建 Exchange 邮箱的 powershell 脚本。只要邮箱不存在,它就可以正常工作,但是当我尝试捕获任何错误并将其报告回来时,脚本就会运行,就好像一切都很好。
我在一个已经存在的用户上运行脚本,它显示了错误,但它正常返回,就像创建邮箱一样。
我找到this question,解决了“为什么”,我猜Enable-Mailbox命令只会抛出非终止错误。
无论如何,所有用于捕获这些错误的建议解决方案都失败了。该 cmdlet 似乎忽略了 $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 服务器。
有什么方法可以检查 cmdlet 是否有错误?
【问题讨论】:
标签: powershell exchange-server