SharePoint 2013 PowerShell Script to Migrate Users from one domain to another

Open PowerShell window in your system.

Paste the below code in your PowerShell window.

Run the script.

Add-PSSnapin Microsoft.SharePoint.PowerShell

  1. #Import data from CSV file    
  2. $UserData = Import-CSV -path "C:\GowthamTestuser.csv"    
  3.    
  4. #Iterate through each Row in the CSV    
  5. foreach ($Row in $UserData)    
  6.  {    
  7.     write-host "Processing user:" $row.Email    
  8.    
  9.     #Site collection URL    
  10.     $siteURL ="https://gowthamSPDEV.microsoft.com"    
  11.     $site = Get-SPSite $siteURL    
  12.      
  13.     foreach($web in $site.AllWebs)    
  14.      {    
  15.         #Get All Users    
  16.         $UserColl = Get-SPUser -web $web.Url    
  17.      
  18.         foreach ($User in $UserColl)    
  19.         {    
  20.             #Get values from CSV File    
  21.             $OldUserID= $Row.OldUserID.Trim()    
  22.             $NewUserID =$Row.NewUserID.Trim()    
  23.             $Email = $Row.Email.Trim()    
  24.    
  25.             #Search for Old User Accounts    
  26.             if($User.UserLogin.Contains($OldUserID))    
  27.              {    
  28.                 #Update the User E-mail    
  29.                 Set-SPUser -Identity $User.UserLogin -Email $Email -Web $web.URL    
  30.      
  31.                 $NewUser = $User.UserLogin.replace($OldUserID, $NewUserID)    
  32.    
  33.                 #Migrate user from Old account to new account - migrate users to new domain    
  34.                 Move-SPUser -Identity $User -NewAlias $NewUser -IgnoreSID -confirm:$false    
  35.                 write-host "User Migrated: $($User.userlogin) at site $($web.Url)"    
  36.              }           
  37.              
  38.         }    
  39.     }    
  40. }    
This PowerShell script migrates users to new domain programmatically.