Exchange Powershell-向所有邮箱用户批量添加新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地址和一个新的域,并保留前缀

ExchangeServer2007

我需要在所有邮箱中运行一个命令,以便在每个邮箱中插入一个新的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
    }
}