SharePoint Online: How to Disable "Sync" Button in Document Library?

Requirement: Disable Sync button in SharePoint Online or OneDrive for Business Document Library.
sharepoint online disable document library sync

How to disable sync button in a SharePoint Online Document Library?
To disable sync button for a single library,
  • Go to: Library Settings >> Advanced Settings 
  • Set "No" for "Offline Client Availability"
    sharepoint online disable document library sync
This disables Sync button from the library.


Disable sync in SharePoint Online Site:
If you want to disable sync for your entire site:
  • Go to Site Settings >> Click on "Search and Offline Availability" under "Search" group
  • Set "No" for "Offline Client Availability" setting
    sharepoint online hide sync button
This hides sync button from all libraries in SharePoint Online.

Set Search and Offline Availability using PnP PowerShell
To disable sync button SharePoint Online, use this PowerShell script.
#Parameters
$SiteURL = "https://crescentintranet.sharepoint.com/sites/Marketing"

#Connect to SharePoint Online site
Connect-PnPOnline -Url $SiteURL -UseWebLogin

#Get the Web
$Web = Get-PnPWeb -Includes ExcludeFromOfflineClient

#Set "Allow items from this site to be downloaded to offline clients?" to "No"
$web.ExcludeFromOfflineClient = $True
$web.Update()
Invoke-PnPQuery
Write-Host "Offline Client Availability is Disabled!" -f Green

Please note this setting is at "Site" level, not a site collection level and needs to be set on all site of the site collection, so lets use PowerShell to disable sync on all sites in a SharePoint Online site collection!

PowerShell to Remove Sync Button in All Sites of the Site Collection
Lets hide sync button for a SharePoint Online Site Collection.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

Function Disable-SPOSyncButton([String]$SiteURL)
{  
    Try{
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials

        #Get the Web and Sub Sites
        $Web = $Ctx.Web
        $Ctx.Load($Web)
        $Ctx.Load($Web.Webs)
        $Ctx.ExecuteQuery()

        $Web.ExcludeFromOfflineClient=$true
        $Web.Update()
        $Ctx.ExecuteQuery()
        Write-Host -f Green "Sync Button is Disabled for the Site:" $($SiteURL)

        #Iterate through each subsite of the current web
        ForEach ($Subweb in $Ctx.Web.Webs)
        {
            #Call the function recursively 
            Disable-SPOSyncButton -SiteURL $Subweb.url
        }
    }
    Catch {
        write-host -f Red "Error Disabling Sync Button!" $_.Exception.Message
    }
}

#Set parameter values
$SiteURL="https://crescent.sharepoint.com/"

#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Call the function 
Disable-SPOSyncButton -SiteURL $SiteURL

No comments:

Please Login and comment to get your questions answered!

Powered by Blogger.