Exchange Server 2007
我需要在所有邮箱中运行命令,以便为每个邮箱插入新的SMTP地址。如果格式相同,则可以轻松运行Get-MailContact
添加新地址。例如域中的FirstName+"."+.LastName
。但是,并非所有SMTP地址都遵循此约定。
我们有一些地址,例如:john.doe@domain.com
,jane.l.smith@domain.com
和jsmith@domain.com
。
我需要保留那些现有的smtp地址,但是添加一个带有新域的新smtp地址并保留前缀格式。因此,我需要将john.doe@newdomain.com
,jane.l.smith@newdomain.com
和jsmith@newdomain.com
添加到这三个邮箱中。
我只是不确定如何扫描包含*@domain.com
的任何地址的所有邮箱并添加*@newdomain.com
我可以在这做什么?
答案 0 :(得分:2)
像这样的东西应该工作,但我还没有对它进行测试,所以我肯定会在破坏你的交换服务器之前在测试环境中对它进行测试......
$NeedsNew = get-mailbox -ResultSize Unlimited | Where-Object { $_.EmailAddresses -like "*@domain.com"
foreach ( $Mailbox in $NeedsNew ) {
$EmailAddresses = $Mailbox.EmailAddresses
$Changed = $false
foreach ( $Address in $EmailAddresses ) {
if ( $Address -like "*@domain.com" ) {
( $prefix, $oldDomain ) = $Address.AddressString.split("@")
$EmailAddresses += "{0}@newdomain.com" -f $prefix
$Changed = $true
}
}
if( $Changed ) {
Set-Mailbox -Identity $Mailbox -EmailAddresses $EmailAddresses
}
}