© DrHitch/Shutterstock.com
PowerShell

2 Praxisbeispiele aus dem DevOps-Alltag


Nachdem im vorherigen Kapitel die Grundlagen der PowerShell-Benutzung erklärt wurden, folgen nun die Praxisbeispiele. Dabei liegt der Fokus nicht auf komplexeren Skriptingaufgaben, sondern auf den einfachen, aber mächtigen Tricks, die man im Entwickleralltag mal schnell aus dem Hut ziehen kann. Dieses Kapitel erklärt, wie PowerShell Remoting und die Integration mit COM und WMI/CIM funktioniert. Weiter werden das Providermodell und die Arbeit mit SOAP und REST Web Services vorgestellt. Abgerundet wird der Artikel mit einer Sammlung von PowerShell-Snippets für den Alltag.

Die PowerShell ist ein Kommandozeileninterpreter für Windows. Sie wird mit dem Windows-Betriebssystem ausgeliefert und ist in vielen Produkten, wie SharePoint, TFS oder Exchange Server, integriert. Weil die PowerShell auf dem .NET Framework aufgebaut ist und Schnittstellen zur Windows Management Instrumentation (WMI), dem Component Object Model (COM), der Registry und vielen anderen Komponenten anbietet, können komplexe Aufgaben mithilfe der PowerShell oft mit einem einzigen Befehl erledigt werden. Diese Befehle lassen sich sowohl lokal als auch remote ausführen.

PowerShell-Befehle – auch Commandlet (Cmdlet) genannt – können über den Pipe-Operator | miteinander verbunden werden. Die PowerShell kommt mit einer Fülle von Cmdlets, die beispielsweise zur Formatierung der Ausgabe verwendet werden können.

Folgendes Beispiel zeigt einen Befehl, der vom lokalen Rechner die ersten zehn Windows Services ermittelt und deren Namen und Status als HTML-Datei ausgibt. Das Resultat ist in Abbildung 2.1 zu sehen.

PS C:\> Get-Service | Select-Object Name, Status -First 10 |Sort-Object Status -Descending | ConvertTo-Html | Out-File "D:\ServiceReport.html"
image

Abbildung 2.1: Das Resultat der Get-Service-Abfrage mit „ConvertTo-Html“ im Edge-Browser

Script Execution Policy

Grundsätzlich ist die Ausführung von PowerShell-Skripten abgeschaltet. Mit dem Cmdlet „Set-ExecutionPolicy“ kann die Skriptausführung erlaubt werden. Folgende Werte können gesetzt werden:

  • Restricted: Keine Scripts können ausgeführt werden
  • AllSigned: Nur Skripte, die von einem Trusted Publisher signiert wurden, dürfen ausgeführt werden
  • RemoteSigned: Heruntergeladene Skripte müssen von einem Trusted Publisher signiert sein
  • Unrestricted: Alle Skripte können ausgeführt werden
  • Damit sich die „ExecutionPolicy“ ändern lässt, muss die PowerShell mit administrativer Berechtigung ausgeführt werden.

PowerShell Remoting

Ein großer Anteil der Power in d...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang