PowerShell: Script to Update Access Request Settings Email Address on SharePoint Site

Please find below is the PowerShell script to check if the access request settings are enabled on SharePoint Site and update the email address.

Here It will iterate through all the site collection for particular web application given by you.

  1. if ( (Get-PSSnapin -Name "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null )  
  2. {  
  3.     Add-PsSnapin "Microsoft.SharePoint.PowerShell"  
  4. }  
  5.   
  6. $WebapplicationValue = Read-Host "Enter web application URL"   
  7. Write-Host $WebapplicationValue  
  8.   
  9. $webapp = Get-SPWebApplication $WebapplicationValue  
  10. $newEmail = Read-Host "Enter Email address to whom Access request will be sent : "   
  11.   
  12. foreach($site in $webapp.Sites)  
  13. {  
  14.    Write-Host "Site URL is" $site  
  15.    foreach($web in $site.AllWebs)  
  16.    {  
  17.      $url = $web.url  
  18.      Write-host "Site URl"$url  
  19.      if (!$web.HasUniquePerm)  
  20.      {  
  21.             Write-Host "Access Request Settings is inherted from parent."  
  22.      }  
  23.      else  
  24.      {  
  25.        if($web.RequestAccessEnabled)  
  26.        {  
  27.             Write-Host "Access Request Settings is enabled."  
  28.             Write-Host "Email needs to be updated."  
  29.             $web.RequestAccessEmail = $newEmail  
  30.             $web.Update()  
  31.             Write-Host "Email changed successfully!"  
  32.         }  
  33.       }  
  34.       else  
  35.       {  
  36.             Write-Host "Access Request Settings not enabled."  
  37.       }  
  38.    }  
  39. }