Forum Discussion
Change email domain in bulk via powershell
Previously I'm able to run this command to mass change email domain via powershell:
------------------------------------------------------------------------------------------------------
Import-CSV C:\temp\MigrateOld2NewDomain.csv | % {
Set-Mailbox $_.ExistDomain -WindowsEmailAddress $_.NewDomain -MicrosoftOnlineServicesID $_.NewDomain
}
------------------------------------------------------------------------------------------------------
But today when i run it, encounter error:
------------------------------------------------------------------------------------------------------
Set-Mailbox : The term 'Set-Mailbox' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
-------------------------------------------------------------------------------------------------------
I connected to Connect-ExchangeOnline, and seems to have issue connect to remote server (not sure whether this is the cause on why the script fail)
-------------------------------------------------------------------------------------------------------
PS C:\WINDOWS\system32> Connect-ExchangeOnline
----------------------------------------------------------------------------
The module allows access to all existing remote PowerShell (V1) cmdlets in addition to the 9 new, faster, and more reliable cmdlets.
|--------------------------------------------------------------------------|
| Old Cmdlets | New/Reliable/Faster Cmdlets |
|--------------------------------------------------------------------------|
| Get-CASMailbox | Get-EXOCASMailbox |
| Get-Mailbox | Get-EXOMailbox |
| Get-MailboxFolderPermission | Get-EXOMailboxFolderPermission |
| Get-MailboxFolderStatistics | Get-EXOMailboxFolderStatistics |
| Get-MailboxPermission | Get-EXOMailboxPermission |
| Get-MailboxStatistics | Get-EXOMailboxStatistics |
| Get-MobileDeviceStatistics | Get-EXOMobileDeviceStatistics |
| Get-Recipient | Get-EXORecipient |
| Get-RecipientPermission | Get-EXORecipientPermission |
|--------------------------------------------------------------------------|
To get additional information, run: Get-Help Connect-ExchangeOnline or check https://aka.ms/exops-docs
Send your product improvement suggestions and feedback to email address removed for privacy reasons. For issues related to the module, contact Microsoft support. Don't use the feedback alias for problems or support issues.
----------------------------------------------------------------------------
New-ExoPSSession : Connecting to remote server outlook.office365.com failed with the following error message : For more information, see the
about_Remote_Troubleshooting Help topic.
-------------------------------------------------------------------------------------------
- You can stop and close powershell, remove C:\Users\adm_acch006350\Documents\WindowsPowerShell\Modules\ExchangeOnlineManagement\2.0.5 and try to install it again using nstall-module ExchangeOnlineManagement
- kevkellyBrass Contributor
As Harm_Veenstra mentions, first ensure that your Exchange Online PowerShell module is upto date:
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation Update-Module -Name ExchangeOnlineManagement
Next would be to check/confirm that the account you're using has the relevant Exchange RBAC permissions:
Get-ManagementRole -Cmdlet Set-Mailbox Get-ManagementRoleAssignment -RoleAssignee <userIdentity>
- AnthonyChan_5mingCopper Contributorkevkelly
Which module should I connect to run Get-ManagementRole?
----------------------------------------------------------------------------------------------
Get-ManagementRole : The term 'Get-ManagementRole' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of
the name, or if a path was included, verify that the path is correct and try again.
-------------------------------------------------------------------------------------------------
- I think you have to update your module. The information you get after connecting should show v3. Update by update-module ExchangeOnlineManagement , it should be version 3.2.0 afterward (Check your current version with get-module ExchangeOnlineManagement
get-module ExchangeOnlineManagement
ModuleType Version PreRelease Name ExportedCommands
---------- ------- ---------- ---- ----------------
Script 3.2.0 ExchangeOnlineManagement {Add-VivaModuleFeaturePolicy, Get-ConnectionInfor…
)- AnthonyChan_5mingCopper Contributor
I've run the update as follow, but still encounter same error:
-----------------------------------------------------------------------------------------------------
PS C:\WINDOWS\system32> update-module ExchangeOnlineManagement
PS C:\WINDOWS\system32> Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
Name : ExchangeOnlineManagement
Version : 3.2.0
InstalledLocation : C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.2.0
PS C:\WINDOWS\system32> C:\Users\admin\OneDrive - XYZ\O365 - Migrate from old to new domain.ps1
Set-Mailbox : The term 'Set-Mailbox' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.-----------------------------------------------------------------------------------------------------
- Did you start a new session and rerun the Connect-ExchangeOnline cmdlet? Afterward, the Set-Mailbox cmdlet should be available