Forum Discussion
Exchange Online - Change primary email address, name and alias of a shared mailbox
- Mar 10, 2020
When changing the primary SMTP address, it's usually a good idea to keep the old one as secondary, to avoid unnecessary NDRs. So in the syntax you used, make sure to add it as well, or you can use the -WindowsEmailAddress parameter:
Set-Mailbox user -WindowsEmailAddress newuser@domain.com
which basically changes the primary address to the value you specify, while preserving the old one as secondary. Then do the rest of the attributes as needed.
When changing the primary SMTP address, it's usually a good idea to keep the old one as secondary, to avoid unnecessary NDRs. So in the syntax you used, make sure to add it as well, or you can use the -WindowsEmailAddress parameter:
Set-Mailbox user -WindowsEmailAddress newuser@domain.com
which basically changes the primary address to the value you specify, while preserving the old one as secondary. Then do the rest of the attributes as needed.
VasilMichev Hi, I currently have the same task but when I run the script, I get the error message: "Set-Mailbox: A parameter cannot be found that matches parameter name 'WindowsEmailAddress'."
I also tried -EmailAddresses but still not recognizing...This is the script:
Connect-ExchangeOnline
Set-Mailbox random.dude -WindowsEmailAddress Email address removed
Can you please tell me if I miss a module or anything?
I would really appreciate! 🙂
- VasilMichevApr 01, 2022MVPDon't use the Preview module, or at least make sure to read the release notes before doing so 🙂
In other words, you need to connect via:
Connect-ExchangeOnline -UseRPSSession - LainRobertsonMar 31, 2022Silver Contributor
That's really strange. The WindowsEmailAddress is such an old parameter that even if you had an older module (or the on-prem module), you should still see it.
After running Connect-ExchangeOnline, get the temporary name of the imported Exchange Online module using:
Get-Module -Name tmp_*
Then, check for known instances of the Set-Mailbox command using:
Get-Command -All Set-Mailbox
You should find just one reference, with the "Source" column value being that of the temporary module from the first command (i.e. it'll look something like "tmp_dgzmuyzr.zi3", though the actual value changes with every new Exchange connection.)
If you have more than one module then that may offer some clues on why you're getting that error.
If you only see just one result and it's the temporary Exchange module then you can run the following to see if the WindowsEmailAddress parameter is listed. If it is, then I really have no idea what is going on in your case.
It should be listed right at the end of the list:
(Get-Command Set-Mailbox -ShowCommandInfo).ParameterSets.Parameters.Name | Sort-Object
Cheers,
Lain