The default option in SharePoint online to open files stored in document libraries is “Open in Browser”. You can leave it like that as long as you don’t have an specific requirement to change this behavior.
In some cases, end users prefer to open file by client application due to many reasons and they are fair reasons, mostly.
- Client application offers rich capabilities which allows users to get things done effectively and efficiently
- Some organizations using SharePoint as the central document management platform across the entire company. At this point they might prefer to have the files opened by client application as default.
There are various ways to enable this functionality which impact different levels.
- Document library level
- Single site collection level
- Across the entire tenant
If you’d like to set a specific document library to open files in client application by default. Simply log in to your SharePoint online tenant, direct to the desired library and select the radio button under the Advance Settings as you wish (This overrides the setting applied at site collection level and open documents in client application instead of browser)
Navigate to the Document Library –> Click on Settings gear –> Library Settings from the menu.
Under General Settings –> Click on “Advanced Settings”
To enable this for a specific site collection (applies for the entire collection unless you have chosen from individual libraries manually as shown in the screenshot above to opt out)
To do this for an specific site collection, we have to activate a site collection level feature. Simply log in to your SharePoint online tenant, direct to the desired site.
Go to Site Settings –> Site Collection Features
Click on “Activate” button next to “Open Documents in Client Applications by Default” feature
You can use the following PowerShell script to do get the same thing done in a bulk mode across all site collections in the tenant (ORG WIDE).
This is a SharePoint PnP PowerShell script which uses an CSV file as the source for site names.
- First you have to get all the site URLs exported from the SharePoint Admin Centre in Office 365 Admin Portal
- Then save it as an CSV file and point this script to that file (Change the CSV path in the script)
Your CSV should look like this (Site URLs separated in to individual columns, not rows. If you are having hard time getting this format, it’s quite easy, use the Transpose feature under Paste special)
Note: Obviously, this script will only cover the existing site collections of your tenant. For any upcoming new site collection created after running this has to enable it manually again.
$username = Read-Host "Provide the username" $password = Read-Host -Prompt "Password for $username" -AsSecureString $O365credential = New-Object PSCredential($userName,$passWord) # Chnage CSV path here $site = Import-csv C:\Official\Tools\remain.csv Foreach ($URL in $site.URL) { try { Connect-PnPOnline -Url $URL -Credentials $O365credential Write-Host "Connected to " $URL Write-Host "Enabling features on" $URL # Enter Feature Id & scope Enable-PnPFeature -Identity 8a4b8de2-6fd8-41e9-923c-c7c3c00f8295 -Force -Scope Site Write-Host "Disconnecting from " $URL Disconnect-PnPOnline } Catch { Write-Host "Got error" $error } } Write-Host "Completed"