Die Weiterentwicklung von Softwarelösungen im Microsoft 365 Umfeld können die Benutzerfreundlichkeit und den Umfang der Lösung extrem erhöhen. Allerdings bringt dies auch ein erhebliches Maß an Komplexität mit sich, insbesondere bei Einstellungen, die in Untermenüs versteckt sind und bei der automatisierten Ausführung wiederholender Aufgaben (z.B. Manipulation von SharePoint Elementen). Microsoft hat deshalb PowerShell ein PnP Modul (PowerShell-Modul Patterns and Practices) hinzugefügt, welches Key Usern und Softwareentwicklern diese Aufgaben erleichtert. Bis März 2020 gab es für jede einzelne Microsoft 365 Anwendung jeweils ein PowerShell Modul. Mittlerweile steht mit dem PnP PowerShell Modul ein anwendungsübergreifendes Modul zur Verfügung, welches ich in diesem Beitrag vorstellen möchte.
Mit PowerShell Befehlen auf die Module von Microsoft 365 zugreifen
WAS IST DAS PNP POWERSHELL MODUL?
Ein Modul in PowerShell ist ein Erweiterungspaket, welches unter anderem Befehle und Funktionen beinhaltet. Bei dem PnP PowerShell Modul handelt es sich um eine Erweiterung, die den Zugriff auf die Microsoft 365 Umgebung ermöglicht, um Informationen der verschiedenen Anwendungen abzurufen, anzulegen, zu ändern und zu löschen. Das Modul verfügt über mehr als 650 Cmdlets zur Verwaltung von SharePoint Online, Microsoft Teams, Microsoft Planner und Microsoft Flow. Es wird gemeinsam von Microsoft und der Community gewartet und monatlich mit neuen Updates versehen. Bei diesen Updates handelt es sich zum einen um Bugfixes, zum anderen um Befehle, die den Zugriff auf weitere Informationen ermöglichen. An dieser Stelle ist es wichtig zu erwähnen, dass die vorhandenen Befehle abseits des Dienstes SharePoint Online derzeit noch nicht so ausgeprägt sind, wie es bei den anwendungseigenen Modulen der Fall ist.
POWERSHELL UNTERSTÜTZUNG FÜR SHAREPOINT ONLINE
Mit seiner grafischen Oberfläche bietet SharePoint Online die Möglichkeit Einstellungen vorzunehmen und ermöglicht somit das einfache Anlegen, Aktualisieren und Entfernen einer Website mitsamt Websiteseiten, Listen und Bibliotheken. Einziges Problem an den vielen verschiedenen Einstellungen ist, dass diese teilweise in Untermenüs „versteckt“ und nicht leicht zu finden sind. Beim Vornehmen dieser Einstellungen und bei einmaligen großen Änderungen der Metadaten greife ich daher vielmals auf die PowerShell zurück.
Die Befehle sind unter der Webseite pnp.github.com/powershell gut einsehbar und erklärt sowie mit Beispielen beschrieben. Zusätzlich gibt es Befehle, die weit über das Einstellen hinaus gehen. Wussten Sie, dass Sie die Grundstruktur einer SharePoint Seite mit der PnP PowerShell auslesen und auf eine neue Seite übertragen können? Unter den Begriff der Grundstruktur fallen unter anderem die Listen, Bibliotheken, Websitespalten und Inhaltstypen. Die Übernahme der Grundstruktur ist dann relevant, wenn Sie Ihr vorhandenes System weiterentwickeln, gleichzeitig aber wie gewohnt in einem funktionierendem System arbeiten möchten. Somit können Sie über dieses Tool Bereitstellungsumgebungen erstellen und verwalten.
PRAKTISCHES BEISPIEL
Genug mit der Theorie. Kommen wir nun zur Praxis. Damit das Modul genutzt werden kann, muss dieses zunächst über die PowerShell installiert werden. Für die Verwendung dieses Modules wird die PowerShell 7 empfohlen, die derzeit nicht Bestandteil von Windows ist und manuell installiert werden muss. Die Verwendung mit der PowerShell 5 ist aber dennoch möglich. Mit folgendem Befehl wird die PnP.PowerShell installiert:
Install-Modul -Name PnP.PowerShell -Force
Sollten keine Administratorenrechte vorhanden sein, kann folgender Befehl genutzt werden:
Install-Modul -Name PnP.PowerShell -Scope CurrentUser
Nachdem das Modul installiert ist, kann es benutzt werden. Zu beachten ist dabei, dass bevor ein Befehl ausgeführt werden kann, eine Verbindung zum Tenant bzw. der spezifischen SharePoint-Seite hergestellt werden muss:
Connect-PnPOnline -url <URL des Tenant/SharePoint Seite> -Interactive -ForceAuthetication
Aufgrund des verwendeten Parameter „Interactive" wird ein Anmeldefenster geöffnet, in welchem die Anmeldedaten hinterlegt werden müssen. Der Parameter „ForceAuthentication" erzwingt das Anmeldefenster. Somit können Sie sich auch auf Tenants anmelden, auf dene Sie sich mit Ihrem in Windows angemeldeten Nutzer nicht anmelden können. Dies ist dann hilfreich, wenn sie über Entwicklertenants /-umgebungen oder ähnliches verfügen. Im Paramter „url" hinterlegen Sie normalerweise die Adresse des Tenants auf welchen Sie zugreifen möchten. Sofern Sie auf eine bestimmte SharePoint-Seite zugreifen möchten, müssen Sie diese beim Herstellen der Verbindung direkt mit angeben.
Im Anschluss können Sie auf vielfältige Informationen zurückgreifen. Das folgende Beispiel beschreibt den enormen Vorteil der PnP.PowerShell. Denn mit dieser, und in Verbindung mit einem SharePoint Administratoren Konto, ist es möglich, die schreibgeschützten SharePoint Felder (z.B. Erstellt von) nachträglich zu bearbeiten:
Dieses Skript ist dann hilfreich, wenn hinterlegte Automatismen auf das „Erstellt von“-Feld zurückgreifen und Mitarbeiter beispielsweise aus dem Unternehmen austreten.
FAZIT
Die PnP PowerShell ist ein Modul, welches die Arbeiten in SharePoint Online und weiteren Microsoft 365 Diensten erleichtern kann. Ich selbst greife in meiner täglichen Arbeit viel auf das Modul zurück, vor allem wenn es die Anwendung SharePoint betrifft, um mir mit Skripten die Arbeit zu erleichtern. Abgesehen von dem Dienst SharePoint Online sollte der Einsatz für die weiteren Microsoft 365 Anwendungen aufgrund der zugreifbaren Informationen geprüft werden. Hierbei kann es derzeit noch der Fall sein, dass anwendungsspezifischen Module (u.a. Microsoft PowerApps PowerShell) aufgrund ihres Funktionsumfanges geeigneter sind. In diesem Fall sollten die Weiterentwicklungen im Auge behalten werden, bzw. Erweiterungen im Github beantragt werden, sodass Entwicklungen in diese Richtung möglich sind.
Themen
Informiert bleiben
Erhalten Sie max. einmal im Monat Neuigkeiten zu aktuellen IT-Themen aus den Bereichen IT-Betrieb und Zusammenarbeit in der Cloud.
Feedback
Haben Sie Anregungen zum Blog oder Wünsche für Themen? Dann senden Sie uns Ihr Feedback an
redaktion@intraconnect.de.