在Exchange 2010(版本14.3 Build 123.4)环境中,如何将新用户添加到“ManagedBy”属性并通过PowerShell同时删除另一个用户? (我将这样做使用foreach多个列表)
在此TechNet博客文章中, http://blogs.technet.com/b/dstrome/archive/2011/05/29/multivalued-properties-in-exchange-2010.aspx数组语法(我已尝试添加之前删除,相同的结果):
Set-DistributionGroup Sales -ManagedBy @{Remove="David"; Add="Gerald"}
导致消息:
All groups must have at least one owner who manages membership, message approval, and other settings for the group.
什么是从Exchange 2010通讯组添加和删除pipe理器的正确方法?
如果最终结果是将“David”replace为“Gerald”作为所有者,请完全避免添加/replace语法:
Set-DistributionGroup Sales -ManagedBy "Gerald"
如果您必须以primefaces方式执行这两个操作(如果您有可能不想replace现有值的情况),请将其分为两个不同的操作:
Set-DistributionGroup Sales -ManagedBy @{Add="Gerald"} Set-DistributionGroup Sales -ManagedBy @{Remove="David"}
ManagedBy是一个MultiValuedProperty参数。
要添加,请使用加号(+)操作,请参阅下面的示例。 要减去,使用减等于( – =)操作,请参阅下面的第二个例子。
添加用户的示例:
$mgr = get-user gerald foreach ($thing in $things) { $group = Get-DistributionGroup $thing $managers = $group.ManagedBy $newmanagers = $managers+$mgr Set-DistributionGroup -BypassSecurityGroupManagerCheck -ManagedBy $newmanagers -Identity $thing }
而且,要删除一个用户(使用DistinguishedName):
$removethis = "CN=David,OU=Houston,DC=company,DC=com"
同时遍历$ managers的列表(参见上文):
foreach ($manager in $managers) { $dn = $manager.DistinguishedName if ($dn -eq $removethis) { $modifiedmanagers = ($managers -= $removethis) } }
然后在cmdlet中使用它:
Set-DistributionGroup -BypassSecurityGroupManagerCheck -ManagedBy $modifiedmanagers -Identity $thing