PowerShell & Scripting
PnP PowerShell
Allgemeine Infos
PnP PowerShell (Modulname PnP.PowerShell) ist ein plattformübergreifendes Open-Source-Modul aus der Microsoft-365-Community „Patterns and Practices“, unterstützt von der .NET Foundation. Es bietet über 600 Cmdlets für SharePoint Online, Microsoft Teams, Planner, Power Automate und Entra ID und deckt damit Aufgaben ab, für die das offizielle SharePoint-Online-Modul keine oder umständliche Befehle hat, etwa Site-Provisioning per Vorlage oder Berechtigungsberichte.
Wichtige Änderung: Am 9. September 2024 wurde die mandantenübergreifende App „PnP Management Shell“ entfernt. Seitdem ist eine eigene App-Registrierung in Microsoft Entra ID Pflicht, auch für interaktive Anmeldungen. Skripte ohne -ClientId funktionieren nicht mehr.
Aktuelle stabile Version ist 3.4.1, Voraussetzung ist PowerShell 7.4.0 oder neuer. Windows PowerShell 5.1 nennt die Projektdoku nicht als unterstützte Plattform. Abgrenzung: Microsoft gibt für PnP PowerShell keinen offiziellen Support und kein SLA, Hilfe gibt es über die Community auf GitHub.
Funktionsweise & Details
Einrichtung und Nutzung:
- Installation mit Install-Module PnP.PowerShell, Nightly Builds mit -AllowPrerelease.
- App registrieren: Register-PnPEntraIDAppForInteractiveLogin legt eine App für interaktive Anmeldung mit MFA und Conditional Access an. Register-PnPEntraIDApp erstellt eine App für App-only-Zugriff und kann dabei ein Zertifikat erzeugen und hochladen.
- Verbinden: Connect-PnPOnline <tenant>.sharepoint.com -ClientId <AppId> -Tenant <tenant>.onmicrosoft.com, für App-only zusätzlich mit -CertificatePath oder -CertificateBase64Encoded.
- Cmdlets wie Get-PnPList, Add-PnPFile oder Invoke-PnPSiteTemplate arbeiten im Kontext der verbundenen Site.
Die App-Registrierung braucht nur die Berechtigungen, die Deine Skripte tatsächlich nutzen. Das war schon vor 2024 empfohlen und ist heute der einzige Weg.
Vorteile & Nutzen
- Funktionsumfang: Viele SharePoint- und Teams-Aufgaben lassen sich mit einem Cmdlet erledigen, für die sonst eigene Graph- oder CSOM-Aufrufe nötig wären
- Site-Provisioning: Vorlagen bilden Listen, Spalten und Seiten reproduzierbar auf neuen Sites ab
- Eigene App-Registrierung: Du steuerst Berechtigungen selbst und siehst Anmeldungen im eigenen Tenant
- Plattformübergreifend: Läuft unter PowerShell 7 auf Windows, Linux, macOS und in Azure Automation
Praxisbeispiel
Ein Projektdienstleister mit 250 Mitarbeitenden legt für jedes Kundenprojekt eine SharePoint-Site mit festen Bibliotheken und Berechtigungsgruppen an. Nach dem September 2024 schlugen die Skripte fehl, weil die PnP Management Shell entfernt wurde. Die IT registriert mit Register-PnPEntraIDApp eine eigene App mit Zertifikat und nur den benötigten SharePoint-Berechtigungen und ergänzt -ClientId in allen Skripten. Neue Projektsites entstehen wieder in wenigen Minuten aus einer Vorlage.
Worauf sollte man achten?
- Ältere Skripte und Dokumentationen prüfen: Anmeldungen ohne -ClientId funktionieren seit September 2024 nicht mehr
- App-Berechtigungen eng fassen, Sites.FullControl.All nur vergeben, wenn es wirklich nötig ist
- Für unbeaufsichtigte Jobs Zertifikate statt Benutzerkonten verwenden
- Vor Updates auf eine neue Hauptversion die Änderungen auf GitHub lesen, weil sich Cmdlet-Namen und Mindestversionen ändern können
- Da es keinen Microsoft-Support gibt, geschäftskritische Abläufe testen und eine Alternative über Graph kennen
Lizenz & Verfügbarkeit
PnP PowerShell ist kostenlos und Open Source, ohne Microsoft-Support oder SLA. Nutzbar ist es mit jedem Microsoft-365-Tenant, der SharePoint Online enthält. Voraussetzung ist eine eigene App-Registrierung in Microsoft Entra ID und PowerShell 7.4 oder neuer. Stand: Oktober 2026.
Fazit
PnP PowerShell ist für SharePoint-Admins oft das produktivste Werkzeug. Seit 2024 gehört eine sauber berechtigte, eigene App-Registrierung zwingend dazu.
Weiterführende Links
Verwandte Artikel
Microsoft 365
SharePoint Online | Standardvorlagen
Microsoft 365
Microsoft 365 | PowerShell Security Audit - Teil 2: Mail-Schutz, Collaboration & Geräte
SharePoint Online
Datenschutz in Microsoft SharePoint Online
SharePoint Online