SharePoint-hosted Add-in aus Office 365 SiteCollection entfernen
Contents
Problemstellung
Beim Entwickeln von SharePoint-hosted Add-in (s) lassen sich ab und zu die Add-ins nicht mehr korrekt aus der SiteCollection und dem Papierkorb (RecycleBin) löschen.
Das Deployen aus Visual Studio wirft auch einen Hinweis, dass die AppInstance (GUID) bereits vergeben ist. Möchte man das Add-In dann manuell löschen, ist dieses nicht mehr in den WebsiteInhalten verfügbar. Es befindet sich scheinbar die letzte Instanz im Papierkorb. Will man diesen leeren, erhält man einen Fehler.
Lösung
Im Netz gibt es Hinweise und Vorschläge eine neuen GUID der App zuzuweisen. Dies löst aus meiner Sicht aber das Problem nicht und lässt den „Unrat“ im System.
Der zweite Lösungsansatz ist das Löschen des Papierkorbs via Powershell.
Dazu wird die Powershell ISE geöffnet und mit Office 365 SharePoint Online verbunden.
$username = "ANMELDE_EMAIL"
$password = "PASSWORT"
$url = "https://DEINE_O365DOMAIN.sharepoint.com/sites/SITENAME/";
$password = ConvertTo-SecureString $password -AsPlainText -Force
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$ctx.Credentials = $credentials
$site = $ctx.Web
$recycleBinItems = $site.RecycleBin
$ctx.Load($site)
$ctx.Load($recycleBinItems)
$ctx.ExecuteQuery()
Write-Host "Elemente im Papierkorb:" $recycleBinItems.Count
Write-Host 'Titel:' $site.Title;
Write-Host 'Url:' $site.Url;
#wenn Ihr wirklich löschen wollt und den richtigen Papierkorb gefunden habt können die zwei Codezeilen auskommentiert werden
#$RecycleBinItems.DeleteAll()
#$ctx.ExecuteQuery()
Write-Host "Ende";
Wenn das Script ausgeführt wird (natürlich auskommentiert), ist danach der Papierkorb leer und die AppInstance verschwunden.
Es ist wieder ein sauberer Zustand hergestellt.