我试图测试一个为现有用户创建交换邮箱的脚本。最后,我想要一个小块来测试并告知用户它是否成功。我的内容如下。
$mail = Get-Mailbox user@domain.com
$checkmail = @($mail).count
if($checkmail -eq 0)
{
write-host "Does not exist"
}
else
{
write-host "exists"
}
这实际上工作正常,但是当对象不存在时,它也会发出一个巨大的Powershell错误来启动。我只是不希望那部分在那里。我已经在整个事情上尝试过try / catch块,并且由于某种原因它只是忽略了它。错误如下:
Get-Mailbox : The operation could not be performed because object 'user@domain.com' could not
be found on the domain controller 'domainnamehere'
+ $mail = Get-Mailbox user@domain.com
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-Mailbox], ManagementObjectNotFoundException
+ FullyQualifiedErrorID : 3AAE54AC,Microsoft.Exchange.Management.RecipientTasks.Getmailbox
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以做的一件事是为-ErrorAction
Get-Mailbox
$mailbox = Get-Mailbox asdf@ba.net -ErrorAction SilentlyContinue
该命令的错误将从控制台中消除(但仍会发生)。如果$mailbox
为空,则需要检查If
的值,并使用简单的If($mailbox){
Write-Host "Good mailbox"
} Else {
Write-Host "Bad mailbox"
}
。
-ErrorAction Stop
如果错误是非终止的,则try块可能无效。如果你有一个尝试阻止设置{{1}}可能也是如此。