Office 365: SharePoint & PowerShell

 Viele Einstellungen können über die Office 365 Administrationsoberfläche verwaltet werden. Teilweise sind aber nicht alle Einstellungen verfügbar oder es müssen oft gleicharte Administrationsschritte durchgeführt werden. Für diese Zwecke existiert eine kommandozeilenbasierte Verwaltungsschnittstelle mit der Bezeichnung PowerShell (auch Windows PowerShell und PowerShell Core). Die PowerShell löste vor viele Jahren die veraltete Windows Eingabeaufforderung und ermöglicht die verbesserte Verwaltung von Systemen. Im Vergleich zu der alten Eingabeaufforderung ermöglicht aber die PowerShell die Implementierung umfangreicher Skripte analog einer vollständigen Programmiersprache. Gemäß Wikipedia definiert sich die PowerShell wie folgt:

PowerShell (auch Windows PowerShell und PowerShell Core) ist ein plattformübergreifendes Framework von Microsoft zur Automatisierung, Konfiguration und Verwaltung von Systemen, das einen Kommandozeileninterpreter inklusive Skriptsprache bietet.

(Quelle: PowerShell – Wikipedia)

Für SharePoint Online steht für die PowerShell eine entsprechende Erweiterung namens SharePoint Online Management Shell bereit. Diese muss zunächst installiert werden. Um zu prüfen, ob die Erweiterung ggf. schon installiert ist, kann dies in einer PowerShell Sitzung über den Befehl:

Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select Name,Version

geprüft werden. Wurde das Modul noch nicht installiert, kann dies mit dem nachfolgenden Kommando erfolgen:

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

Wurde bereits das Modul installiert und es steht eine aktualisierte Version zur Verfügung, kann diese über das nachstehende Kommando aktualisiert werden:

Update-Module -Name Microsoft.Online.SharePoint.PowerShell

Test des Moduls mit einer SharePoint Verbindung

Wurde das Modul erfolgreich installiert, kann eine Verbindung mit SharePoint Online hergestellt werden. Zunächst ist eine Anmeldung an SharePoint Online möglich, dazu das folgende Kommando innerhalb der SharePoint Online Management Shell absetzen:

Connect-SPOService -Url https://[DOMAIN]-admin.sharepoint.com -Credential (Get-Credential)

Das Kommando verlangt die Zugangsdaten für den Tenant. Erscheint auch mit korrekten Zugangsdaten lediglich die Fehlermeldung:

Connect-SPOService : Current site is not a tenant administration site.

Dann wurde wahrscheinlich dem Domänennamen nicht das Suffix -admin angehängt (siehe oben). Konnte eine Verbindung hergestellt werden, kann zum Beispiel für einen ersten Test das Kommando Get-SPOTenant abesetzt werden. Dieses Kommando gibt eine Liste von Eigenschaften des Tenant aus.

PnP PowerShell Module for SharePoint Online

Mit den zuvor installierten PowerShell Modulen für SharePoint Online können zahlreiche Administrationsaufgaben erledigt werden. Die PnP PowerShell Erweiterungen bringen dazu noch einmal über 600 Befehle (sog. Cmdlets) mit, die für eine vereinfachte Verwaltung der Microsoft 365 Produkte - wie SharePoint Online, Microsoft Teams, Microsoft Planner, Azure Active Directory, Microsoft Flow usw. - eingesetzt werden können. Das neue PnP-PowerShell-Modul PnP.PowerShell ist ein plattformübergreifendes, auf dem .NET-Framework basierendes PowerShell-Produkt, das auf jedem Betriebssystem ausgeführt werden kann, das .net-Core unterstützt, wie Windows, Linux, macOS usw. Dieses Modul ist ein Nachfolger des SharePointPnPPowerShellOnline-Moduls, das jetzt als veraltet betrachtet und nicht mehr unterstützt wird. Bei der Erweiterung handelt sich um eine Open-Source-Komponente und eine von der Community bereitgestellte Bibliothek mit aktiven Community-Mitgliedern, die Support leisten, sodass es aber keine SLA oder direkten Support von Microsoft gibt. Dies ist bei der Verwendung der Erweiterung zu beachten.

Falls bereits schon die veraltete Version der Erweiterung installiert wurde, sollte diese im Vorfeld deinstalliert werden. Dazu den folgenden Befehl absetzen:

Uninstall-Module -Name SharePointPnPPowerShellOnline -Force -AllVersions

Die Installation der PnP Module ist über das nachfolgende Komamndo schnell ereldigt:

Install-Module PnP.PowerShell

Anschließend ist eine Registrierung einer neuen Azure AD Anwendung notwendig. Der letzte Schritt besteht daher darin, dem Mandanten Zugriff auf die mandantenfähige Azure AD-Anwendung der PnP-Verwaltungsshell zu gewähren. Dazu das nachstehende Kommando aufrufen:

Register-PnPManagementShellAccess

Das Kommando (Cmdlet) muss mit einer Identität ausgeführt werden, die über Schreibzugriff auf Azure AD verfügt. Hierbei wird keine neue Anwendung im Sinne von etwas, das in dem Azure AD-Mandanten ausgeführt wird erstellt. Dem Azure AD wird lediglich eine Registrierung hinzugefügt, eine sogenannte „Zustimmung“ für Personen in dem Mandanten, um diese Anwendung verwenden zu können. Die für die Anwendung erforderlichen Zugriffsrechte werden lediglich delegiert, sodass immer Anmeldeinformationen oder eine andere Möglichkeit zur Identifizierung des Benutzers angeben werden muss.

Weitere Informationen zu der PnP Erweiterung: PnP PowerShell | PnP PowerShell

Kommentare

Beliebte Posts aus diesem Blog

Exchange Online: Schutzregel für E-Mail Weiterleitung

Vertikaler Bereich deaktiviert

Power Automate: Abrufen von SharePoint Listenelementen mit ODATA-Filter