0

我正在尝试使用 powershell 从分发列表中删除一堆成员作为交换。我最初使用别名值来指定成员,但遇到错误说有多个具有指定别名的成员。所以我试图用别的东西来唯一地标识这些成员。

根据文档,Get-DistributionGroupMember 在身份下具有许多与Remove-DistributionGroupMember cmdlet 在成员下相同的字段,但我无法让除别名之外的任何字段正常工作。到目前为止,这是我的代码:

foreach ($member in Get-DistributionGroupMember -Identity $selecteddl | Select-Object Alias) {
        Remove-DistributionGroupMember -Identity $selecteddl -Member $member.alias -Confirm:$False
    }

那是产生重复成员错误的代码。如果我将两个“别名”属性都更改为“guid”,我会得到一个不同的错误:

无法处理参数“成员”的参数转换。无法将“System.Guid”类型的“4ed0987f-7c86-48e7-8f47-ca9ad731e2fd”值转换为“Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameter”类型。+ CategoryInfo : InvalidData: (:) [Remove-DistributionGroupMember], ParameterBindin...mationException + FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-DistributionGroupMember

为了解决这个问题,我应该做些什么不同的事情吗?我对powershell很陌生,所以我会为您提供任何其他提示。谢谢

4

1 回答 1

0

更新:您可以使用它来简化操作。同样,这将删除所有成员,因此您最好在管道到 Remove-DistributionGroupMember 之前进行一些过滤。

Get-DistributionGroupMember $selecteddl | Remove-DistributionGroupMember $selecteddl -Confirm:$false

根据文档 Alias 应该是一个合法的值。我现在无法对此进行测试,但这应该可以。请记住,您正在删除所有组成员。

foreach ($member in Get-DistributionGroupMember -Identity $selecteddl) 
{
  Remove-DistributionGroupMember -Identity $selecteddl -Member $member -Confirm:$False
}
于 2012-05-16T19:01:05.697 回答