Author Posts

July 3, 2017 at 2:22 pm

Hello,
I am looking for some assistance with a powershell script that will search an OU that contains my Exchange Contacts based off of "@domain.com" value and then replaces only the "@domain.com" with "@newdomain.com" When looking in the exchange properties of the contact the value is "External email address" Any assistance on this is greatly appreciated.
Thank You,

July 3, 2017 at 4:33 pm

Hi

One way to query contacts from AD is

Get-ADObject -LDAPFilter "ObjectClass=Contact"

Link for more: https://technet.microsoft.com/en-us/library/ee617198.aspx

Here you can use -SearchBase if you know the AD OU and pipe it to Where-Object and look only those "external email address" users. Then pipe it to Set-ADObject and -replace the domain. I think you might need to do a little bit splitting here also on the mailaddress.

Regards

Jarkko

July 3, 2017 at 6:40 pm

Thanks for the reply,

I was able to get this working with the following exchange powershell:

$users = Get-MailContact -OrganizationalUnit "Domain/User Accounts/test" |
where ExternalEmailAddress -like "*@olddoman.com*"

foreach($user in $users){
Set-MailContact $user.name -ExternalEmailAddress `
($user.ExternalEmailAddress -replace "olddomain.com","newdomain.com") -Verbose
}