SharePoint Online: PowerShell to Remove User from All Sites

Requirement: Remove User from All Sites in SharePoint Online.

SharePoint Online Delete User from All Sites using PowerShell

PowerShell to remove a User from All SharePoint Online Site Collections:

Do you need to remove a user from all sites and groups? Well, This blog post is to guide you on how to remove a user from all sites in SharePoint Online using PowerShell. If you are a SharePoint administrator, there may come a time when you need to remove a user from all of your SharePoint Online sites. Maybe when you know the user will not be returning, the person has left the company, you have to disable a user temporarily, if an account is hacked, or you are cleaning up user permissions and no longer need a user to have access to any sites. Whatever the reason, this PowerShell script will help you quickly and easily remove users from all of your SharePoint Online sites.

Although you can use the Web browser interface to Remove a user from a site in SharePoint Online, the PowerShell approach is more efficient if your goal is just to delete them from everywhere fast and easily! The following PowerShell script will remove the provided login account from your SharePoint Online site collections. Please note, that you must be a site collection administrator for all site collections of the Office 365 tenant before running this script. 

#Config Parameters
$AdminSiteURL="https://crescent-admin.sharepoint.com"
$UserAccount = "Jacob@crescent.com"
 
#Connect to SharePoint Online Tenant Admin
Connect-SPOService -URL $AdminSiteURL -Credential (Get-Credential)
 
#Get all Site Collections
$SitesCollections = Get-SPOSite -Limit ALL

#Iterate through each site collection
ForEach($Site in $SitesCollections)
{
    Write-host -f Yellow "Checking Site Collection:"$Site.URL
 
    #Get the user from site collection
    $User = Get-SPOUser -Limit All -Site $Site.URL | Where {$_.LoginName -eq $UserAccount}
 
    #Remove the User from site collection
    If($User)
    {
        #Remove the user from the site collection
        Remove-SPOUser -Site $Site.URL -LoginName $UserAccount
        Write-host -f Green "`tUser $($UserAccount) has been removed from Site collection!"
    }
}

This will ensure that the user no longer has access to any content or sites when they are removed.

Delete a User from All SharePoint Online Sites using PnP PowerShell

At times, it’s necessary to remove a user account from all SharePoint Online sites to ensure that the specific user has no access to the organization’s data. Let me show you how to remove a user account from all of your SharePoint Online sites with PnP PowerShell:

#Parameters
$TenantURL =  "https://crescent.sharepoint.com"
$UserID="i:0#.f|membership|sharaz@crescent.com"

#Get Credentials to connect
$Credential = Get-Credential

#Frame Tenant Admin URL from Tenant URL
$TenantAdminURL = $TenantURL.Insert($TenantURL.IndexOf("."),"-admin")
#Connect to PnP Online
Connect-PnPOnline -Url $TenantAdminURL -Credentials $Credential

#Get All Site collections - Filter BOT and MySite Host
$Sites = Get-PnPTenantSite -Filter "Url -like '$TenantURL'"

#Iterate through all sites
$Sites | ForEach-Object { 
    Write-host "Searching in Site Collection:"$_.URL -f Yellow
    #Connect to each site collection
    Connect-PnPOnline -Url $_.URL -Credentials $Credential
    If((Get-PnPUser | Where {$_.LoginName -eq $UserID}) -ne $NULL)
    {
        #Remove user from site collection
        Remove-PnPUser -Identity $UserID -Confirm:$false
        Write-host "`tRemoved the User from Site:"$_.URL -f Green
    }
} 

This PnP PowerShell eliminates the user from all SharePoint Online sites in the tenant.

Here is another post on how to Remove External Users from SharePoint Online with PowerShell – SharePoint Online: Remove External Users using PowerShell

Conclusion:

When a user leaves an organization or changes roles, it can be time-consuming to manually remove that user from all sites they have access to. This is where using SharePoint Online PowerShell comes in handy. By using SharePoint Online PowerShell to remove a user from all sites, You can ensure that your data is secure and that the user no longer has access to sensitive information. This process is quick, efficient, and automated, saving time and ensuring that the process is completed correctly.

Salaudeen Rajack

Salaudeen Rajack - Information Technology Expert with Two-decades of hands-on experience, specializing in SharePoint, PowerShell, Microsoft 365, and related products. He has held various positions including SharePoint Architect, Administrator, Developer and consultant, has helped many organizations to implement and optimize SharePoint solutions. Known for his deep technical expertise, He's passionate about sharing the knowledge and insights to help others, through the real-world articles!

6 thoughts on “SharePoint Online: PowerShell to Remove User from All Sites

  • I had to replace line 20 with Connect-PnPOnline -Url $_.URL -Interactive to make this work (scheduled task using encrypted credentials

    Reply
  • This script is great… however microsoft throttle me after 5 mins with a 429 error 🙁

    Reply
    • Yeah.. That’s the pain on bulk operations. Try to pause and re-execute. I believe the New-PnPBatch will support for such operations in the near future.

      Reply
    • Delete 5,6 line.
      Replace 11 line by this : Connect-PnPOnline -Url $TenantAdminURL -UseWebLogin
      20: Connect-PnPOnline -Url $_.URL -UseWebLogin

      Reply
  • Hi Sir,

    Is there any script to replace specific user on all SharePointOnline sites?

    Thanks,
    V

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *