抑制Office365 powershell中的异常

抑制Office365 powershell中的异常,powershell,office365,Powershell,Office365,我有一个脚本,可以将Active Directory组的成员添加到Office 365通讯组。广告组的许多成员也将是通讯组的成员,这会导致脚本显示错误: Adding user@domain.com to distribution group GROUP The recipient "user@domain.com" is already a member of the group "GROUP". + CategoryInfo : NotSpecified: (user@do

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

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
块失败了,如果我没有在其中放入异常类型

程序输出现在为:

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

这可能不是终止错误。如果将-ErrorAction Stop添加到add-DitributionGroupMember cmdlet,是否有效?遇到相同的问题。你关于必须将异常类型添加到Catch的提示对我不起作用。简单的接球对我也不起作用。您正在使用哪个版本的Powershell?我的电话号码是5.0.10586.63。谢谢。
$pVersionTable
显示我正在使用5.0.10240.16384。