People wrote comments with suggestions (thank you all for that) and I thought I published an updated version that work with Exchange 2010 together with another script that add SMTP addresses.
# Remove proxy addresses # change the Get-Mailbox statement in line 7 to select only a subset of mailboxes $DomainToRemove = "*@olddomain.com" #get mailboxes and iterate through Get-Mailbox -ResultSize Unlimited | foreach { $_.Alias # .emailaddresses returns array # loop each email address for ($i=$_.EmailAddresses.Count;$i -ge 0; $i--) { $address = $_.EmailAddresses[$i] #Write-Host $address # removes all addresses with $DomainToRemove if ($address.SmtpAddress -like $DomainToRemove ) { Write-host("Remove smtp adress: " + $address.AddressString.ToString() ) # remove address in the array $_.EmailAddresses.RemoveAt($i) } } # save changes $_ | Set-Mailbox -EmailAddresses $_.EmailAddresses Write-Host }
And the Add proxy addresses script.
# Add proxy addresses # change the Get-Mailbox statement in line 8 to select only a subset of mailboxes $AddressSearchedFor = "*@domaintocopy.com" $DomainToAdd = "@newdomain.com" #get mailboxes and iterate through Get-Mailbox -ResultSize Unlimited | foreach{ $_.Alias # .emailaddresses returns array # loop each email address for ($i=$_.EmailAddresses.Count;$i -ge 0; $i--) { $address = $_.EmailAddresses[$i] #Write-Host $address # look for SMTP addresses in source if ($address.SmtpAddress -like $AddressSearchedFor ) { # get the left part of address $a = [string] $address $b = $a.indexof("@") $a = $a.substring(5, $b-5 ) #Write-Host $ # Add SMTP address Write-host("Adding smtp adress: " + $a + $DomainToAdd ) # add address in the array $_.EmailAddresses.add("smtp:" + $a + $DomainToAdd) } # save changes $_ | Set-Mailbox -EmailAddresses $_.EmailAddresses } Write-Host }
Excellent pieces. Keep posting such kind of information on your blog. I really impressed by your blog.
ReplyDeleteVee Eee Technologies
is any lost of using these scripts in applications or not?
ReplyDeleteTestKing
You dont loose anything. One script add addresses and the other one remove addresses from user accounts.
ReplyDelete