Updating Group or Person field in a SharePoint 2013 custom list using a Powershell script

The PS script below loops through an SP 2013 custom list and update the Person or Group field.


#Updating the SP2013 list item on the Group field.
Add-PSSnapin Microsoft.SharePoint.PowerShell

$site = new-object Microsoft.SharePoint.SPSite("<Site URL>") 
$relweburl = '/<relative web url>'
$web = $site.openweb($relweburl)
$list=$web.Lists["<list name>"]
$listItems = $list.Items
$listItemsTotal = $listItems.Count

 if($listItemsTotal -ne 0)
    Write-Host("Number of Items found : "+$listItemsTotal )
    foreach($item in $listItems)
      $currentTitle = $item["<field name>"];
      $newApprover = $web.EnsureUser("<new username>")
      Write-Host("Current approver : "+$currentTitle )
       if($currentTitle -like "*<comparing username value>*") 
           Write-Host("Updated, "+$currentTitle+" with "+$newApprover)
           $item["Approver"] = $newApprover;
  Write-Host("Nothing Found")

In the script above, update the following placeholders:

  1. Site URL
  2. Relative Web URL
  3. List Name
  4. Field Name
  5. New Username
  6. Comparing username value

After editing the script with your values, save the script using (.ps1) extension and type the following line of code in Powershell console to execute the script.

* <path>\scriptname.ps1 

Hit enter to execute.

NB: Execute the script in your dev or test environment first before you execute it in your prod environment.