How to enable side loading of apps on SharePoint site
Sideloading apps is
insecure. The main reason for blocking sideloading by default on non-developer
sites is the risk that faulty apps pose to their host web/host site collection.
Apps have the potential to destroy data and make sites or, given enough
permissions, can even make site collections unusable. Therefore, apps should only be sideloaded in dev/test
environments and never in
production.
In order to enable
sideloading please use following script on a site which has sideloading blocked
$programFiles = [environment]::getfolderpath("programfiles")
add-type -Path $programFiles'\SharePoint Online
Management Shell\' + `
'Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll'
Write-Host `
'To enable SharePoint app sideLoading, ' + `
'enter Site Url, username and password'
$siteurl = Read-Host 'Site Url'
$username = Read-Host "User Name"
$password = Read-Host -AsSecureString 'Password'
if ($siteurl -eq '') {
$siteurl
= 'https://mytenant.sharepoint.com/sites/mysite'
$username = 'me@mytenant.onmicrosoft.com'
$password = ConvertTo-SecureString -String 'mypassword!'`
-AsPlainText -Force
}
$outfilepath = $siteurl -replace ':', '_' -replace '/', '_'
try
{
[Microsoft.SharePoint.Client.ClientContext]$cc = `
New-Object Microsoft.SharePoint.Client.ClientContext($siteurl)
[Microsoft.SharePoint.Client.SharePointOnlineCredentials]$spocreds = `
New-Object `
Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$cc.Credentials = $spocreds
$sideLoadingEnabled = `
[Microsoft.SharePoint.Client.appcatalog]::IsAppSideloadingEnabled($cc);
$cc.ExecuteQuery()
if($sideLoadingEnabled.value -eq $false) {
Write-Host -ForegroundColor Yellow `
'SideLoading feature is not
enabled on the site:' $siteurl
$site = $cc.Site;
$sideLoadingGuid = `
new-object System.Guid
"AE3A1339-61F5-4f8f-81A7-ABD2DA956A7D"
$site.Features.Add($sideLoadingGuid, $false, `
[Microsoft.SharePoint.Client.FeatureDefinitionScope]::None);
$cc.ExecuteQuery();
Write-Host -ForegroundColor Green `
'SideLoading feature enabled on
site' $siteurl
}
Else {
Write-Host -ForegroundColor Green `
'SideLoading feature is already
enabled on site' $siteurl
}
}
Catch {
Write-Host -ForegroundColor Red `
'Error encountered when trying to
enable SideLoading feature' `
$siteurl, ':' $Error[0].ToString();
}
$programFiles = [environment]::getfolderpath("programfiles")
add-type -Path $programFiles'\SharePoint Online Management Shell\' + `
Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll'
Write-Host 'To disable sideLoading, enter Site Url, username and password'
$siteurl = Read-Host 'Site Url'
$username = Read-Host "User Name"
$password = Read-Host -AsSecureString 'Password'
if ($siteurl -eq '') {
$siteurl = 'https://mytenant.sharepoint.com/sites/mysite'
$username = 'me@mytenant.onmicrosoft.com'
$password = ConvertTo-SecureString -String 'mypassword!' `
-AsPlainText -Force
}
Try {
[Microsoft.SharePoint.Client.ClientContext]$cc = `
New-Object Microsoft.SharePoint.Client.ClientContext($siteurl)
[Microsoft.SharePoint.Client.SharePointOnlineCredentials]$spocreds = `
New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$cc.Credentials = $spocreds
$site = $cc.Site;
$sideLoadingEnabled = `
[Microsoft.SharePoint.Client.appcatalog]::IsAppSideloadingEnabled($cc);
$cc.ExecuteQuery()
if($sideLoadingEnabled.value -eq $false)
{
Write-Host -ForegroundColor Green `
'SideLoading is alreday disabled on site' $siteurl
}
else
{
Write-Host -ForegroundColor Yellow `
'Disabling SideLoading feature on site' $siteurl
$sideLoadingGuid = `
new-object System.Guid "AE3A1339-61F5-4f8f-81A7-ABD2DA956A7D"
$site.Features.Remove($sideLoadingGuid, $true);
$cc.ExecuteQuery();
Write-Host -ForegroundColor Green `
'SideLoading disabled on site' $siteurl
}
} catch {
Write-Host -ForegroundColor Red `
'Error encountered when trying to disable side loading features' `
$siteurl, ':' $Error[0].ToString();
}
Comments
Post a Comment