Exchange Powershell-向所有邮箱用户批量添加新SMTP地址
ExchangeServer2007 我需要在所有邮箱中运行一个命令,以便在每个邮箱中插入一个新的SMTP地址。运行Exchange Powershell-向所有邮箱用户批量添加新SMTP地址,powershell,exchange-server,exchange-server-2007,Powershell,Exchange Server,Exchange Server 2007,ExchangeServer2007 我需要在所有邮箱中运行一个命令,以便在每个邮箱中插入一个新的SMTP地址。运行Get-MailContact以添加格式相同的新地址非常简单。例如域中的FirstName++.LastName。但是,并非所有SMTP地址都遵循此约定 我们有一些地址,例如:john。doe@domain.com,jane.l。smith@domain.com和jsmith@domain.com 我需要保留那些现有的smtp地址,但添加一个新的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
我可以在这里做什么?类似的东西应该可以工作,但我还没有测试过它,所以在销毁exchange服务器之前,我肯定会在测试环境中测试它
$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
}
}