gpt4 book ai didi

powershell - 如何防止ManagementObjectNotFoundException打印

转载 作者:行者123 更新时间:2023-12-03 07:54:36 26 4
gpt4 key购买 nike

我正在尝试测试一个为现有用户创建交换邮箱的脚本。最后,我希望有一个小片段可以测试并通知用户是否成功。我所拥有的如下。

$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

任何帮助,将不胜感激。

最佳答案

您可以做的一件事是将-ErrorAction设置为Get-Mailbox

$mailbox = Get-Mailbox asdf@ba.net -ErrorAction SilentlyContinue

该命令的错误将从控制台中消失(但仍然会发生)。如果使用简单的 $mailbox为空,则必须检查 If的值。
If($mailbox){
Write-Host "Good mailbox"
} Else {
Write-Host "Bad mailbox"
}

如果错误未终止,则try块可能不起作用。如果您有一个try块设置, -ErrorAction Stop可能也可以使它工作。

关于powershell - 如何防止ManagementObjectNotFoundException打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26362683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com