Meister aller Klassen: Verwalten von Office 365 mit Windows PowerShell

Wenn Sie nie geglaubt hätten, dass Sie für die Verwaltung von Cloud-Anwendungen wie Office 365 Windows PowerShell benötigen, dann finden Sie hier eine Schnellstart-Anleitung für Anfänger.

Greg Shields

Mein Unternehmen, Concentrated Technology, hat vor kurzem den Wechsel von Google Apps for Business zu Microsoft Office 365 durchgeführt. Mittels der einfachen Lösung eines Drittanbieters konnten wir unsere Daten mit nur wenig mehr als zwei Kennwörtern und einem Mausklick pro Benutzer zur neuen Plattform migrieren.

Plötzlich befanden wir uns mitten in einer völlig neuen Infrastruktur mit völlig neuen Regeln. Obwohl wir über einige Erfahrung mit Microsoft-Technologien verfügen, waren wir nicht auf den Umfang der Verwendung von Windows PowerShell in Office 365 vorbereitet. Die Vorstellung einer Kombination von Windows PowerShell und Office 365 kann etwas widersprüchlich erscheinen. Lösungen wie Office 365 werden eingeführt, weil Menschen nach einfachen Lösungen suchen.

Die Durchführung von Aufgaben mittels Windows PowerShell ist zwar nicht notwendigerweise komplex, jedoch sicherlich nicht trivial. Die ersten Schritte sind wahrscheinlich der schwierigste Teil. Diesen Monat habe ich also eine übersichtliche Schnellstart-Anleitung für die Verwendung von Windows PowerShell für Office 365 für Anfänger erstellt. Wenn Sie diese Schritte befolgen und einige wenige wichtige Cmdlets lernen, werden Sie möglicherweise feststellen, dass die Begriffe "leistungsfähig" und "einfach" einander nicht ausschließen müssen.

Schritt 1: Machen Sie sich mit der (wirklichen) Remoteausführung vertraut

Windows PowerShell ist tatsächlich ein leistungsfähiges Tool. Es gibt jedoch einen Punkt in der Lernkurve, an dem Anfänger häufig den Faden verlieren. Dies passiert in der Regel nach dem Erlernen der einfachsten Cmdlets und bevor die Erstellung nützlicher Lösungen vollständig verstanden worden ist. Es ist eine Sache, wenn Sie Get-Process ausführen und sehen, wie die Prozesse auf Ihrem lokalen Computer ausgeführt werden. Es ist jedoch eine ganz andere Sache, eine Reihe von Cmdlets in eine Pipeline für einen Remotecomputer einzureihen, um eine Aktion in der Praxis auszuführen.

Mein Rat besteht darin, einige gut investierte Zeit damit zu verbringen, sich mit der PowerShell-Remoteausführung in Ihrem lokalen LAN vertraut zu machen. Sie werden erfahren, dass der Parameter -computerName nur mit einigen Cmdlets funktioniert, während für andere Cmdlets der Parameter Invoke-Command erforderlich ist. Machen Sie sich mit Get-Help und dessen enorm nützlichem Switch -exa vertraut, um Beispiele anzuzeigen.

Sie werden diese Kenntnisse benötigen, da Office 365 diese auf Arten erweitert, für deren Verständnis eine solide Wissensgrundlage erforderlich ist. Mit Office 365 führen Sie Aktionen auf Microsoft-Servern und nicht auf Ihren eigenen Servern aus. Sie senden Befehle über das Internet und nicht über Ihr LAN. Dieses Konzept erfordert zwar einiges Umdenken Ihrerseits, bringt jedoch Vorteile. Wenn Sie sich mit diesem Konzepten vertraut machen, werden Sie von diesen profitieren, wenn Sie Ihren Aha-Moment erleben.

Schritt 2: Bereiten Sie Ihre PowerShell vor

Windows PowerShell spricht nicht sofort die Office 365-Sprache, wenn Sie es installieren. Sie müssen einige Vorbereitungen treffen, damit Ihr Windows 7-Desktop die Sprache von Office 365 lernt.

Navigieren Sie zur Seite Verwenden von Windows PowerShell für die Verwaltung von Office 365, und installieren Sie die Office 365-Cmdlets. Diese werden als Teil des Microsoft Online Services-Moduls für Windows PowerShell installiert. Es gibt x86- und x64-Editionen. Vor der Installation der Cmdlets müssen Sie auch den Assistenten für die Anmeldung bei Microsoft Online Services, Windows PowerShell und das .NET Framework 3.5.1 installieren und auf dem Desktopcomputer aktivieren.

Schritt 3: Importieren Sie das Modul, erstellen Sie die Sitzung, und importieren Sie die Befehle

Die Installation der Windows PowerShell-Cmdlets stellt lediglich die Umgebung bereit. Damit stellen Sie noch keine Verbindung mit der Microsoft Office 365-Cloud her. Die Verbindung mit der Cloud erfolgt mittels eines zwar lästigen, jedoch einfachen Prozesses in fünf Schritten:

1. Importieren des neu installierten Online Services-Moduls

2. Eingeben der Office 365-Anmeldeinformationen

3. Erstellen einer Remotesitzung

4. Importieren der Befehle dieser Sitzung in Ihre lokale Windows PowerShell-Sitzung

5. Herstellen der Verbindung mit Office 365-Diensten

Die fünf Befehle für die Durchführung sehen folgendermaßen aus:

Import-Module MSOnline $O365Cred = Get-Credential $O365Session = New-PSSession -ConfigurationNameMicrosoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection Import-PSSession $O365Session Connect-MsolService –Credential $O365Cred

Diese Struktur erscheint auf den ersten Blick vielleicht kompliziert, aber bedenken Sie Folgendes: Windows PowerShell ist dafür konzipiert, jedem alles zu bieten. Daher sind einige Befehle einfach umfangreicher als andere. Sie sollten verstehen, dass diese Struktur fünf Dinge vollbringt: Zunächst verwendet sie Import-Module, um Ihrer Sitzung die Office 365-Cmdlets hinzuzufügen, sodass die lokale Sitzung die Sprache von Office 365 spricht.

Als Zweites wird ein Dialogfeld geöffnet, in dem Sie nach Ihrem Benutzernamen und Ihrem Kennwort für Office 365 gefragt werden (diese sehen ungefähr wie folgt aus: username@domain.onmicrosoft.com). Diese Zugangsinformationen werden in der Variablen $O365Cred gespeichert, die es Ihnen ermöglicht, sie später wieder zu verwenden.

Und hier wird es wirklich interessant. Der dritte und der vierte Befehl erstellen eine neue Windows PowerShell-Sitzung in der Cloud unter https://ps.outlook.com/powershell. Anschließend importieren sie die Cmdlets aus dieser Sitzung in Ihre lokale Sitzung. Stellen Sie sich einfach vor, dass Sie mit PSExec auf die Befehlszeile eines entfernten Servers zugreifen. Der große Unterschied liegt darin, dass sich der Remoteserver irgendwo in der Cloud befindet. Seine Remotesitzung wird in Ihre lokale Sitzung eingefügt (vgl. Abbildung 1).

Creating a remote Office 365 session

Abbildung 1 Erstellen einer Office 365-Remotesitzung.

Sehen Sie sich erneut den gelben Text in Abbildung 1 an. Was Sie sehen, sieht etwa so aus:

WARNING: Your connection has been redirected to the following URI: "https://pod51018psh.outlook.com/PowerShell-LiveID?PSVersion=2.0" WARNING: Your connection has been redirected to the following URI: "https://sn2prd0702psh.outlook.com/PowerShell-LiveID?PSVersion=2.0"

Die URI, die Sie sehen, wird hiervon leicht abweichen. Durch die Verbindungsherstellung einer Remotesitzung mit https://ps.outlook.com/powershell wird diese automatisch zu dem Server weitergeleitet, der Ihre Office 365-Ressourcen hostet. In meinem Fall sind dies die Server pod51018psh.outlook.com und sn2prd0702psh.outlook.com.

Ihre werden andere sein. Dies sind die Server, mit denen Sie direkt interagieren, wenn Sie später Office 365 Windows PowerShell-Befehle aufrufen.

Schritt 4: Respektieren Sie Ihre neue Befehlsbibliothek

Sobald Sie eine Verbindung initiiert haben, sind Sie bereit, Ihre Office 365-Assets zu verwalten. An dieser Stelle ist Windows PowerShell nur für Office 365- und Exchange-Ressourcen zugänglich. SharePoint wird bald ebenfalls dazu gehören.

Wenn Sie "Get-Command -module MSOnline" eingeben, wird Ihnen eine Liste verfügbarer Office 365-Cmdlets angezeigt. Darüber hinaus finden Sie hier eine hilfreiche Tabelle dieser Befehle mit kurzen Beschreibungen.

Hier ist ein besonders nützliches Cmdlet, das ein Office 365-Kennwort ändert. Es setzt das Kennwort zurück auf "P@ssword!". Sie können auch den Parameter -NewPassword auslassen, um automatisch ein zufälliges Kennwort zu generieren:

Set-MsolUserPassword -UserPrincipalNameusername@domain.onmicrosoft.com-NewPasswordP@ssword!

Diese Cmdlets beziehen sich alle auf Office 365-Objekte. Dazu kommt ein zweiter Satz, der die Exchange-Ressourcen verwaltet, mit denen diese Objekte interagieren. Es gibt eine überwältigend große Anzahl von Cmdlets. Eine nützliche Übersicht darüber finden Sie hier.

Schritt 5: Profile machen das Leben leichter

Die fünf Befehle aus Schritt 3, die Sie mit der Cloud verbinden, sind ein wirklich großer Textblock. Diesen Textblock bei jeder Anmeldung neu eingeben zu müssen, macht die Arbeit mit Windows PowerShell mühsamer, als dies uns wert sein sollte. Aber bei Windows PowerShell – und allgemein beim Shell-Scripting – dreht sich alles darum, Dinge nur einmal tun zu müssen und dann für immer davon zu profitieren.

Jedes Mal, wenn eine Windows PowerShell-Sitzung beginnt, führt sie alle Befehle aus, die sie in einer von der Variablen $profile referenzierten Datei findet. Führen Sie in der Shell "dir $profile" aus, um zu sehen, wo sich diese Datei befindet.

Mein $profile ist die Datei Microsoft.PowerShell_profile.ps1 (vgl. Abbildung 2) im Ordner C:\Users\gshields\Documents\WindowsPowerShell. Sie können dieses Dokument im Texteditor Ihrer Wahl bearbeiten und die fünf Verbindungsbefehle ergänzen. Jetzt müssen Sie bei jedem Start von Windows PowerShell nur Ihren Benutzernamen und Ihr Kennwort eingeben, um automatisch mit Office 365 bzw. allen anderen Einrichtungen in Ihrem Netzwerk verbunden zu werden.

The $profile view

Abb. 2: Die $profile-Ansicht.

Mit der Macht kommt auch die Verantwortung

Sie können diese Schritte befolgen, um einen nahtlos zusammengeführten Arbeitsbereich zu schaffen, in dem Sie Ihre lokalen und Ihre Remoteressourcen verwalten können. Dieser Arbeitsbereich kann jedoch auch mindestens so gefährlich wie nützlich sein.

Wenn Sie schmunzeln mussten, als Sie die ersten Ergebnisse von Get-Process | Stop-Process gesehen haben (Tipp: Tun Sie's nicht), dann werden Sie erschauern, wenn Sie sich klar machen, was Get-MsolUser | Remove-MsolUser bewirken könnte. Gehen Sie also vorsichtig mit Ihrer neuen Macht zu Werke. Denken Sie immer daran, verantwortungsbewusst vorzugehen.

Greg Shields

Greg Shields, MVP, ist Partner bei Concentrated Technology. Weitere Tipps und Tricks aus der Kolumne von Greg Shields finden Sie unter ConcentratedTech.com.

Verwandter Inhalt