Powershell 修改 Exchange 2010 中的电子邮件地址
Powershell Modify Emailaddresses in Exchange 2010
我正在尝试在所有电子邮件地址之前添加文本,而不是覆盖并创建最后一个电子邮件地址的副本。知道是什么原因造成的吗?
$UD = Get-Mailbox -Identity $_identity
$SmtpAdd=$UD|select -ExpandProperty EmailAddresses|Select SmtpAddress
foreach($address in $SmtpAdd)
{
$Changed="Disabled_"+$($address.SmtpAddress)
Set-Mailbox $_identity -EmailAddresses $Chnged -EmailAddressPolicyEnabled $true
}
期望输出:Disabled_rave@in.com,Disabled_raj@in.com
但它给出:Disabled_raj@in.com,raj@in.com.
不是在所有邮件中添加Disabled
。
你的实际结果表明$($address.SmtpAddress)是一个字符串。在这种情况下,您正在组合两个字符串:
"a" + "b,c" and the results of this operation will be "ab,c"
所以你需要将 $($address.SmtpAddress) 拆分为 ',' ,为每个元素添加 "Disabled_" ,将所有新的电子邮件地址存储在其中数组,然后使用 ',':
将这些元素作为字符串连接起来
[array]$Changed = $null
$($address.SmtpAddress) -split ',' | % {
$Changed += "Disabled_"+ $_
}
$Changed = $Changed -join ','
Set-Mailbox $_identity -EmailAddresses $Chnged -EmailAddressPolicyEnabled $true
希望对您有所帮助。
我正在尝试在所有电子邮件地址之前添加文本,而不是覆盖并创建最后一个电子邮件地址的副本。知道是什么原因造成的吗?
$UD = Get-Mailbox -Identity $_identity
$SmtpAdd=$UD|select -ExpandProperty EmailAddresses|Select SmtpAddress
foreach($address in $SmtpAdd)
{
$Changed="Disabled_"+$($address.SmtpAddress)
Set-Mailbox $_identity -EmailAddresses $Chnged -EmailAddressPolicyEnabled $true
}
期望输出:Disabled_rave@in.com,Disabled_raj@in.com
但它给出:Disabled_raj@in.com,raj@in.com.
不是在所有邮件中添加Disabled
。
你的实际结果表明$($address.SmtpAddress)是一个字符串。在这种情况下,您正在组合两个字符串:
"a" + "b,c" and the results of this operation will be "ab,c"
所以你需要将 $($address.SmtpAddress) 拆分为 ',' ,为每个元素添加 "Disabled_" ,将所有新的电子邮件地址存储在其中数组,然后使用 ',':
将这些元素作为字符串连接起来[array]$Changed = $null
$($address.SmtpAddress) -split ',' | % {
$Changed += "Disabled_"+ $_
}
$Changed = $Changed -join ','
Set-Mailbox $_identity -EmailAddresses $Chnged -EmailAddressPolicyEnabled $true
希望对您有所帮助。