繁体   English   中英

抑制Office365 Powershell中的异常

[英]Suppress Exception in Office365 powershell

我有一个脚本,可将Active Directory组的成员添加到Office 365通讯组。 AD组的许多成员也将已经是通讯组的成员,这将导致脚本显示错误:

Adding user@domain.com to distribution group GROUP
The recipient "user@domain.com" is already a member of the group "GROUP".
+ CategoryInfo          : NotSpecified: (user@domain.com:RecipientWithAdUserGroupIdParameter`1)
[Add-DistributionGroupMember], MemberAlreadyExistsException
+ FullyQualifiedErrorId : [Server=HKNPR04MB0531,RequestId=84dc77fb-8cf4-4e2f-882e-0ce66b735d08,TimeStamp=9/02/2015 6:55:13 AM] [FailureCategory=Cmdlet-MemberAlreadyExistsException] 7CEFF683,Microsoft.Exchange.Management.RecipientTasks.AddDistributionGroupMember
+ PSComputerName        : pod51055psh.outlook.com

我想抑制这些错误,因为我不在乎成员是否已经存在。

我试图捕获MemberAlreadyExistsException ,设置-ErrorAction SilentlyContinue并捕获所有错误并编写“ Error!”。 而不是实际的例外,但是这似乎没有生效。

当前,我的Try-Catch块如下所示:

try 
{
    Add-DistributionGroupMember -Identity $DistributionGroupName -Member $MemberEmail
}
Catch [System.Management.Automation.RemoteException]
{
    if($_.FullyQualifiedErrorId -match 'AlreadyExists')
    {
        Write-Output "`t   $emailaddress is already a member of $DistributionGroupName."
    }
    else
    {
        Write-Output "`t $_.Exception"
    }
}

我相信当用户已经存在时,这应该会提醒我,但是我仍然收到异常消息。

感谢@mjolinor,我得以捕获异常并提供了更加用户友好的消息。 我的更正代码如下:

try 
{
    Add-DistributionGroupMember -Identity $DistributionGroupName -Member $EmailAddress -ErrorAction Stop
}
Catch [System.Exception]
{
    if($_.FullyQualifiedErrorId -match 'AlreadyExists')
    {
        Write-Output "`t   $emailaddress is already a member of $DistributionGroupName."
    }
    else
    {
        Write-Output "`t $_.Exception"
    }
}

我按照建议添加了-ErrorAction Stop ,这使我可以Catch异常。 我还修改了异常类型以捕获所有异常。 有趣的是(我认为),如果我没有在其中放置异常类型,则Catch块将失败。

程序输出现在是:

Adding user@domain.com to distribution group GROUP
user@domain.com is already a member of GROUP.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM