我正在尝试使用powershell从分发列表中删除一堆成员。我最初使用别名值来指定成员但遇到错误,说有多个成员具有指定的别名。所以我试图用别的东西来唯一地识别这些成员。
根据this文档,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”,我会得到一个不同的错误:
无法在参数'Member'上处理参数转换。不能 转换“4ed0987f-7c86-48e7-8f47-ca9ad731e2fd”类型的值 键入“System.Guid” “Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameter”。 + CategoryInfo:InvalidData:(:) [Remove-DistributionGroupMember],ParameterBindin ... mationException + FullyQualifiedErrorId:ParameterArgumentTransformationError,Remove-DistributionGroupMember
我是否应该以不同的方式解决这个问题? 我是powershell的新手,所以我会为你提供任何额外的建议。感谢
答案 0 :(得分:0)
更新:您可以使用此简化操作。同样,这将删除所有成员,以便在管道连接到Remove-DistributionGroupMember之前更好地进行一些过滤。
Get-DistributionGroupMember $selecteddl | Remove-DistributionGroupMember $selecteddl -Confirm:$false
根据文档,别名应该是合法的价值。我现在无法测试,但这应该有效。请记住,您要删除所有组成员。
foreach ($member in Get-DistributionGroupMember -Identity $selecteddl)
{
Remove-DistributionGroupMember -Identity $selecteddl -Member $member -Confirm:$False
}