Deployen von SharePoint Add-Ins mit PowerShell

Es gibt mehrere Möglichkeiten um SharePoint Add-Ins zu deployen. Eine Variante hiervon ist das Add-In im App Katalog der Organisation bereitzustellen. Eine weitere Möglichkeit besteht darin, ein Add-In über PowerShell direkt auf einer SiteCollection zu installieren.

Möchte man ein Add-In unter SharePoint On-Premise bereitstellen ist dies über die SharePoint Management Shell, mit den Cmdlets Import-SPAppPackage und Install-SPApp, möglich.

Für die Bereitstellung  von einem Add-In auf SharePoint Online wird allerdings das Client-Side Object Model (CSOM) benötigt.

Um ein Provider Hosted Add-In zu deployen muss das Add-In zunächst im SharePoint registriert werden. Dies ist durch Aufruf der URL „https://MySiteCollection/_layouts/15/AppRegNew.aspx“ möglich.

AppRegNew

Die folgenden Codeausschnitte zeigen, wie ein Add-In auf einer SiteCollection von SharePoint Online bereitgestellt werden kann. Die verwendeten PowerShell Skripte basiert auf den SharePointPnP.PowerShell Commands.

Mithilfe von Import-PnPAppPackage kann ein Add-In in dem angegebenen Web deployed werden. In dem folgenden Beispiel wird über den Parameter Force, vor dem Deployment, das SideLoading Feature aktiviert.

Get-Module -ListAvailable SharePointPnPPowerShell*
Connect-PnPOnline –Url $siteUrl –Credentials Get-Credential
Import-PnPAppPackage -Path $appPackagePath -Web Get-PnPWeb -Force

Das Aktualisieren von einem bereits installierten Add-In ist über das folgende PowerShell Script möglich:

Get-Module -ListAvailable SharePointPnPPowerShell*
Connect-PnPOnline –Url $siteUrl –Credentials Get-Credential

$sideLoadingFeature = "AE3A1339-61F5-4f8f-81A7-ABD2DA956A7D"
Enable-PnPFeature -Identity $sideLoadingFeature

$context = Get-PnPContext
$appStream = New-Object IO.FileStream($appPackagePath,[System.IO.FileMode]::Open, [System.IO.FileAccess]::Read)

$web = Get-PnPWeb
$app = Get-PnPAppInstance -Web $web | ? {$_.Title -eq "SharePointAddIn1"}
$app.Upgrade($appStream)
$context.load($app)
Execute-PnPQuery

Disable-PnPFeature -Identity $sideLoadingFeature

Wenn über das Add-In Rechte auf dem SharePoint beantragt werden muss dem Add In nach dem Deployment vertraut werden.

Dies ist manuell möglich, indem man für das Add-In über die Webseiteninhalte den Menüpunkt „Berechtigungen“ auswählt und anschließend auf „hier“ klickt.

SharePoint Add In vertraut

Eine Anleitung, wie man das Vertrauen von Add-Ins automatisieren kann, gibt es hier.