How to enable external sharing in SharePoint Online with Powershell


Sriram Varadarajan
Enterprise Architect
Published On :   29 Jun 2015
Visit Count
Today :  7    Total :   7866
Plan, Migrate, Secure, Report
SharePoint & Office 365 Tool. Simple & Easy to Use. 15-Day Trial!

SharePoint Office 365 Tool
Simple & Powerful Tool for Migration, Security & Reporting. Free Trial


If you have to collaborative your content with external vendors, clients or external customers, SharePoint online has an option called EXTERNAL SHARING

Who is an external user?

An external user is someone outside of your organization who can access your SharePoint Online sites and documents but does not have a license for your SharePoint Online or Microsoft Office 365 subscription. External users are not employees, contractors, or onsite agents for you or your affiliates.

For more info please refer : https://support.office.com/en-in/article/Manage-external-sharing-for-your-SharePoint-Online-environment-c8a462eb-0723-4b0b-8d0a-70feafe4be85

Requirement: The need was to create a PowerShell script to enable/disable external sharing.

The below powershell will enable/disable the external shareing based on the Site collection URL specified

 $siteCollectionURL = Read-Host "Enter the URL of the site collection"
 Write-Host "1> Don't allow sharing outside your organization"
 Write-Host "2> Allow external users who accept sharing invitations and sign in as authenticated users"
 Write-Host "2> Allow both external users who accept sharing invitations and anonymous guest links"
 $a = Read-Host "Please choose an appropriate option"
 switch($a)
 {
    "1"
    {  
     Set-SPOSite -Identity $siteCollectionURL -SharingCapability Disabled
 	Write-Host "Operation Performed"
    }
 
   "2"
   {
     Set-SPOSite -Identity $siteCollectionURL -SharingCapability ExternalUserSharingOnly
 	Write-Host "Operation Performed"
   }
 
    "3"
    {
      Set-SPOSite -Identity $siteCollectionURL -SharingCapability ExternalUserAndGuestSharing
 	 Write-Host "Operation Performed"
     }
 	default {"Please enter appropriate option"}
 }
 To check whether a particular site collection is externalized:
 $siteCollectionURL = Read-Host "Enter the site collection URL"
 $site = Get-SPOSite -Identity $siteCollectionURL
 if($site.SharingCapability -eq "Disabled")
 {
     Write-Host "Externalization is disabled for"$site.URL -ForegroundColor Green
 }
 else
 {
     Write-Host "Externalization is enabled" -ForegroundColor Yellow
 }
 
SharePoint Usage Reports
Usage reports, collaboration and audit for SharePoint.
Categories

Migratiin Tools for SharePoint