Verwenden von Windows PowerShell
Obwohl GUI-Verwaltungstools oft einfacher zu bedienen sind als Befehlszeilentools, ist der Leiter der IT-Abteilung von Contoso der Meinung, dass man viele Verwaltungsaufgaben mit einem einfachen Skript oder einem einzigen Befehl schneller erledigen kann. Zum Beispiel kann der Prozess der Aktualisierung der gleichen Informationen für mehrere Benutzerkonten unter Verwendung von Active Directory-Benutzern und -Computern zeitaufwändig sein. Durch die Verwendung des Active Directory-Moduls in Windows PowerShell kann ein Administrator diese sich wiederholende Aufgabe jedoch schnell ausführen. Sie beschließen, die Auswirkungen der Verwendung von Windows PowerShell zur Verwaltung der Serverinfrastruktur bei „Contoso“ zu untersuchen.
Übersicht
Windows PowerShell ist eine Befehlszeilen- und Skripterstellungsumgebung, mit der Sie alle Aspekte des Windows-Betriebssystems verwalten können. Windows PowerShell verwendet spezielle Befehle, so genannte Cmdlets, die aus Verb-Nomen-Paaren bestehen, z. B. Restart-Computer.
Sie können Windows PowerShell auch verwenden, um eine Remoteverbindung zu anderen Computern herzustellen, und sogar Windows PowerShell-Cmdlets auf eine Liste von Computern anwenden und so mithilfe einer einzigen Befehlszeilenanweisung Aktionen für mehrere Computer ausführen.
Windows PowerShell-Befehle und -Cmdlets
Befehle sind Bausteine, die Sie mithilfe der Skriptsprache von Windows PowerShell kombinieren können. Sie stellen die Hauptfunktionalität von Windows PowerShell bereit. Mithilfe von Befehlen können Sie benutzerdefinierte Lösungen für komplexe administrative Probleme erstellen.
Cmdlets sind die grundlegenden Komponenten von Befehlen. Es stehen Tausende von Windows PowerShell-Cmdlets für Windows-Betriebssysteme und andere Microsoft-Produkte zur Verfügung. Wie bereits erwähnt, bestehen Cmdlets aus einem Verb-Nomen-Paar.
Cmdlet-Verben
Der Verb-Teil des Cmdlet-Namens gibt an, welche Aktion das Cmdlet ausführt. Es gibt eine Reihe zulässiger Verben, die Schöpfer von Cmdlets verwenden, wodurch konsistente Cmdlet-Namen entstehen. Häufige Verben werden in der folgenden Tabelle erläutert.
| Verb | Erklärung |
|---|---|
| Herunterladen | Ruft eine Ressource ab, z. B. eine Datei oder einen Benutzer. |
| Set | Ändert die einer Ressource zugeordneten Daten, z. B. eine Eigenschaft einer Datei oder eines Benutzers. |
| Neu | Erstellt eine Ressource, z. B. eine Datei oder einen Benutzer. |
| Hinzufügen | Fügt einem Container mit mehreren Ressourcen eine Ressource hinzu. |
| Remove (Entfernen) | Löscht eine Ressource aus einem Container mit mehreren Ressourcen. |
Cmdlet-Nomen
Der Nomen-Teil des Cmdlet-Namens gibt an, auf welche Arten von Ressourcen oder Objekten sich das Cmdlet auswirkt. Alle Cmdlets, die für dieselbe Ressource ausgeführt werden, sollten dasselbe Nomen verwenden. Das Nomen Service wird z. B. für Cmdlets verwendet, die Windows-Dienste betreffen, und das Nomen Process wird für die Verwaltung von Prozessen auf einem Computer verwendet.
Parameterformat
Parameter ändern die Aktionen, die von einem Cmdlet durchführt werden. Jedes Cmdlet kann über keine, einen Parameter oder viele Parameter verfügen. Parameternamen beginnen mit einem Bindestrich (-). Ein Leerzeichen trennt den Wert, den Sie übergeben möchten, vom Parameternamen. Wenn der Wert, den Sie übergeben, Leerzeichen enthält, müssen Sie den Text in Anführungszeichen einschließen. Einige Parameter akzeptieren mehrere Werte, die durch Kommas und (ohne Leerzeichen) voneinander getrennt sind.
Beispiele
Anhand der folgenden Beispiele können Sie herausfinden, wie Sie Windows PowerShell verwenden können, um allgemeine Verwaltungsaufgaben auszuführen. Mit dem folgenden Befehl wird eine Liste der Dienste angezeigt, die gerade ausgeführt werden.
Get-Service | Where-Object {$_.Status -eq "Running"}
Mit dem folgenden Befehl wird eine Liste der Dienste angezeigt, deren Name mit „win“ beginnt, und der Dienst „WinRM“ ausgeschlossen.
Get-Service -Name "win*" -Exclude "WinRM"
Der nächste Befehl gibt eine Liste aller Dienste in eine Textdatei aus, die für die HTML-Ausgabe formatiert ist.
Get-Service | ConvertTo-Html > File.html
Eine Variation des vorangehenden Befehls gibt nur ausgewählte Daten über Dienste aus und exportiert die Ausgabe dann in eine CSV-Datei.
Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv
Der folgende Befehl ruft die angegebenen Informationen (Bürotelefonnummer und Benutzerprinzipalname) über Active Directory-Benutzer ab.
Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName
Dieses letzte Beispiel ruft eine Teilmenge der AD DS-Benutzer ab (die Benutzer in der Organisationseinheit „Marketing“) und ändert ihre Eigenschaften, indem jedem Konto eine Beschreibung hinzugefügt wird.
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"
Windows PowerShell ISE
Die ISE ist eine vollständig grafische Umgebung, die einen Skript-Editor, Debuggingfunktionen, eine interaktive Konsole und mehrere Tools bereitstellt, mit denen Sie neue Windows PowerShell-Befehle entdecken und erlernen können. Dieses Modul vermittelt ein grundlegendes Wissen über die Funktionsweise der ISE.
Bereiche
Die ISE bietet zwei Hauptbereiche: einen Skriptbereich (bzw. Skript-Editor) und einen Konsolenbereich. Sie können diese in einem Layout mit zwei Bereichen übereinander oder nebeneinander positionieren. Sie können auch einen Bereich maximieren und zwischen den Fenstern hin- und herwechseln. Standardmäßig wird auch ein Befehls-Add-On-Bereich angezeigt, in dem Sie nach verfügbaren Befehlen suchen oder diese durchsuchen sowie Parameter für einen ausgewählten Befehl überprüfen und eingeben können. Es gibt auch ein unverankertes Befehlsfenster, das die gleiche Funktionalität bietet.
Anpassen der Ansicht
Die ISE bietet mehrere Möglichkeiten, die Ansicht anzupassen. Ein Schieberegler im unteren rechten Bereich des Fensters ändert die aktive Schriftgröße. Im Dialogfeld „Optionen“ können Sie Schriftart und Farbauswahl für viele verschiedene Windows PowerShell-Textelemente anpassen, z. B. für Schlüsselwörter und Zeichenfolgenwerte. Die ISE unterstützt die Erstellung von visuellen Designs. Ein Design ist eine Sammlung von Schriftart- und Farbeinstellungen, die Sie als Gruppe anwenden können, um die Darstellung der ISE anzupassen. Es gibt mehrere integrierte Designs, die Anpassungen für bestimmte Zwecke zusammenfassen, z. B. für Präsentationen. Die ISE bietet Ihnen auch die Möglichkeit benutzerdefinierten Designs zu erstellen. Weitere Features sind:
- Eine integrierte, erweiterbare Codeausschnittbibliothek, mit der Sie häufig verwendete Befehle speichern können.
- Die Möglichkeit, von Microsoft oder Drittanbietern erstellte Add-Ins zu laden, die zusätzliche Funktionen bereitstellen.
- Integration in die Debuggingfunktionen von Windows PowerShell.
Windows PowerShell-Remotenutzung
Der Zweck von Windows PowerShell-Remoting besteht darin, eine Verbindung mit Remotecomputern herzustellen, damit Sie Befehle auf diesen Computern ausführen und die Ergebnisse dann zurück an den lokalen Computer weiterleiten können. Dies ermöglicht Ihnen, Windows PowerShell-Befehle auf mehreren Computern in Ihrem Netzwerk von Ihrem Clientcomputer aus auszuführen, anstatt mit jedem Computer eine Verbindung herzustellen zu müssen.
Ein wichtiges Ziel von Windows PowerShell-Remoting besteht darin, die Batchverwaltung zu aktivieren. Dadurch können Sie Befehle für eine Gruppe von Remotecomputern gleichzeitig ausführen. Remoting kann auf eine von drei Arten verwendet werden, die in der folgenden Tabelle beschrieben werden.
| Methode | BESCHREIBUNG |
|---|---|
| 1:1-Remoting | Im 1:1-Remotingszenario (auch als interaktives Remoting bezeichnet) stellen Sie eine Verbindung zu einem einzelnen Remotecomputer her und führen Windows PowerShell-Befehle auf diesem Computer aus, genau so, als ob Sie sich auf dem Computer angemeldet und ein Windows PowerShell-Fenster geöffnet hätten. |
| 1:n-Remoting | Im 1:n-Remotingszenario (auch als Fan-Out-Remoting bezeichnet) geben Sie einen Befehl aus, der auf einem oder mehreren Remotecomputern parallel ausgeführt wird. Sie arbeiten nicht interaktiv mit jedem Remotecomputer. Stattdessen werden Ihre Befehle in einem Stapel ausgegeben und ausgeführt, und die Ergebnisse werden zur Weiterverwendung an Ihren Computer zurückgegeben. |
| n:1-Remoting | Im n:1-Remotingszenario (auch als Fan-In-Remoting bezeichnet) stellen mehrere Administratoren Remoteverbindungen mit einem einzelnen Computer her. Normalerweise verfügen diese Administratoren über unterschiedliche Berechtigungen für denselben Remotecomputer und arbeiten möglicherweise in einer eingeschränkten Windows PowerShell-Sitzung. |
Achtung
Wenn Sie Befehle auf mehreren Computern ausführen, beachten Sie die Unterschiede zwischen den Remotecomputern, wie z. B. unterschiedliche Betriebssysteme, Dateisystemstrukturen und Systemregistrierungen.
PowerShell Direct
Viele Administratoren führen einige Ihrer Server in virtualisierten Umgebungen aus. Um eine einfachere Verwaltung von Hyper-V-VMs mit Windows 10 oder Windows Server zu ermöglichen, können Sie ein Feature namens PowerShell Direct verwenden.
Mit PowerShell Direct können Sie ein Windows PowerShell-Cmdlet oder -Skript innerhalb einer VM vom Hostbetriebssystem aus ausführen, unabhängig von Netzwerk-, Firewall- und Remoteverwaltungskonfigurationen.