Not SQL related today but a good example of PowerShell in action.
I recently migrated my personal email over to Office 365 from Microsoft. The migration itself went very smoothly but I ran into an issue where the primary email address on the account was showing with a @sirsql.onmicrosoft.com address instead of @sirsql.net. This seriously bugged me and I couldn’t find a way to change it in the Office 365 admin interface.
After some digging I found that you could only make a change such as this using PowerShell, and that you couldn’t do it using the account you want to change (makes sense).
So I created a new admin account just for the purpose and initiated a session in Office 365 (entering the admin users credentials when prompted)
Now I had to find the account, easy enough:
This gave me all the details, including the PrimarySmtpAddress
As you can see from the membership properties you can get and set this information, so that’s what I went to do:
And got an error
A positional parameter cannot be found that accepts argument ‘-PrimarySmtpAddress’.
+ CategoryInfo : InvalidArgument: (:) [Set-Mailbox], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Set-Mailbox
Well this made no sense. No matter what I tried I could not do anything other than a get on the PrimarySmtpAddress. Back to the searching and I discovered that Microsoft have not provided the capability to run a set on that particular member object in Office 365 (although it’s available with Exchange). Way to do with that Microsoft.
After some more digging I was able to get the SMTP address changed by setting the WindowsEmailAddress to the correct value
One other note, when using PowerShell to manage O365 and it says to use Identity use the Alias for the account instead or you might up with unintended consequences.