Set SharePoint Online Site to Read Only using PowerShell

Requirement: Set SharePoint Online site to read only using PowerShell.

How to make a SharePoint Online site read only?

If you have a SharePoint Online site that you would like to make read-only, PowerShell makes it easy! This blog post will show you how to set a SharePoint Online site to read-only using PowerShell.

What are some reasons, why you would like to make sites read-only? Maybe you want to protect sensitive data from being edited or deleted by other people in your organization, or you want to make your site read-only for compliance reasons. Although you can set the site permissions of all users to read-only, This doesn’t stop site collection administrators from altering the content. But putting the site to read-only prevents everyone, including site collection administrators from editing content but still allows them access so that they can view the changes.

During a migrated project, we wanted to set a SharePoint Online site collection to read-only to enforce Data consistency. To make SharePoint Online site collection read-only, use this PowerShell script in SharePoint Online Management Shell.

#Set Parameters
$SiteURL = ""

#Connect to SharePoint Online
Connect-SPOService -Url $AdminCenterURL -Credential (Get-Credential)

#PowerShell to set sharepoint online site to read only
Set-SPOSite -Identity $SiteURL -LockState ReadOnly

Once the execution of the above script is completed, you’ll find a message appearing on top of the site: “SharePoint sites are read-only right now while we do some maintenance. We apologize for the inconvenience.”

Set SharePoint Online Site to Read Only using PowerShell

To unlock the site collection, use:

#Unlock site from read only mode
Set-SPOSite -Identity $SiteURL -LockState Unlock

PnP PowerShell to Set a Site Collection to Read-Only Mode

Here is how to lock SharePoint Online site collection with PnP PowerShell:

$TenantURL = ""
$SiteURL = "" 

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $TenantURL -Interactive

    #Set Site to Read-only
    Set-PnPTenantSite -Url $SiteURL -LockState ReadOnly
    Write-Host "Site set to Read-Only Mode Successfully!" -f Green  
Catch {
    Write-Host -f Red "Error:"$_.Exception.Message

Here is another post on making site read only using site policy: SharePoint Online: Make Site Collection Read only using Site Policies?

Salaudeen Rajack

Salaudeen Rajack - SharePoint Expert with Two decades of SharePoint Experience. Love to Share my knowledge and experience with the SharePoint community, through real-time articles!

2 thoughts on “Set SharePoint Online Site to Read Only using PowerShell

  • Thank you very much! This saved my bread.


Leave a Reply

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