Ik gebruik een NAS om een backup op te slaan op Sharepoint en dat werkt prima. Oudere bestanden worden dan verwijderd, en komen dus in de prullenbak te staan van die site. Die prullenbak wordt echter niet automatisch geleegd, dus daar had ik een oplossing voor nodig. Tot 24 september 2024 (of daaromtrent) was dat vrij simpel te regelen door middel van de PNP.Powershell module, en dan in te loggen met de credentials van de gebruiker. Dat werkt echter niet meer: je krijgt een foutmelding als:
Connect-PnPOnline : AADSTS700016: Application with identifier '31359c7f-bd7e-475c-86db-fdb8c937548e' was not found in the directory
Da's uiteraard best vervelend. De oplossing is uiteindelijk niet erg lastig, maar er zijn verschillende wegen die naar Rome leiden. Ik kwam Dit artikel tegen, wat een oplossing gaf. Wat ik heb gedaan is het volgende:
(in powershell 7, dus even pwsh.exe starten):
import-module pnp.powershellinstall-module pnp.powershellRegister-PnPEntraIDApp -ApplicationName "PnP PowerShell" -Tenant tenantnaam.onmicrosoft.com -Interactive
Dan log je in met een Global Admin account en voor de appregistratie zijn een paar rechten nodig. Die accepteer je.

Als dat is gedaan wordt er automatisch een .pfx en een .cer aangemaakt. Alle gegevens krijg je te zien bij de uitvoer van het commando:

Het PFX bestand heb je nodig om in te kunnen loggen. Daar zit geen wachtwoord op.
Dit commando maakt de appregistratie aan, maar zet daar ook het certificaat in. Dat certificaat is tien jaar geldig.
Je kunt nu verbinden naar de site met
connect-PnPOnline -url <url naar site> -ClientID <clientID> -Certificatepath <pad naar het .pfx certificaat> -tenant <tenantnaam>.onmicrosoft.com
Dat lukt, en daarna kun je de prullenbak leegmaken met
Clear-PnPRecycleBinItem -all -force -verbose
Voorbeeldscript:
#Config Variables
start-transcript -path .\EmptyBackupOnlineTrashbin.log$OneDriveSiteURL = "https://tenantnaam-my.sharepoint.com/personal/backupaccount_tenantnaam_onmicrosoft_com"$CertificatePath = "C:\Scripts\EmptySharepointTrash\PnP Powershell.pfx"$CertificatePassword = ""Set-PSRepository -Name 'PSGallery' -InstallationPolicy TrustedInstall-Module -Name PnP.PowerShell Import-module -name PnP.Powershellconnect-PnPonline -url $OneDriveSiteURL -clientID "fb1d8axxxxxxxxxxxxxxxxxxxxxxxxxde5" -CertificatePath $CertificatePath -tenant tenantnaam.onmicrosoft.comClear-PnPRecycleBinItem -All -force -verbosestop-transcript
Bronnen:
https://www.sharepointdiary.com/2024/09/aadsts700016-application-with-identifier-31359c7f-bd7e-475c-86db-fdb8c937548e-was-notfound.html
How to connect SharePoint online using certificate? - Microsoft Q&A
Connect-PnPOnline | PnP PowerShell