PowerShell

Was ist PowerShell?

PowerShell ist ein automatisiertes Framework von Microsoft mit einer Befehlszeilenshell und einer in das .NET Framework integrierten Skriptsprache, die in andere Anwendungen eingebettet werden kann. Mit PowerShell können die Stapelverarbeitungen automatisiert und Systemverwaltungstools erstellt werden. Das Framework enthält mehr als 130 Standard-Befehlszeilentools für Funktionen und ermöglicht es Administratoren, Aufgaben auf lokalen und Remote-Windows-Systemen durch Zugriff auf COM (Component Object Model) und Windows Management Instrumentation (WMI) auszuführen. Microsoft hat das Framework entwickelt, um IT-Experten dabei zu helfen, Systeme zu konfigurieren und administrative Aufgaben zu automatisieren.

Die Geschichte der PowerShell

Die Entwicklung von PowerShell geht auf den Microsoft-Techniker Jeffrey Snover zurück. Bevor Snover 1999 zu Microsoft wechselte, arbeitete er bei der Digital Equipment Corp. (DEC) an Systemverwaltungsaufgaben unter Windows. Snover hatte nach eigener Aussage bei diesen Arbeiten immer das Gefühl, dass Windows die Flexibilität zur Automatisierung von unter Unix verfügbaren Aufgaben fehlte. Zu dieser Zeit hatte jedes Microsoft-Betriebssystem – beginnend mit DOS – eine Befehlszeilenschnittstelle, aber es wurden immer nur grundlegende Befehle unterstützt. Die Schnittstellen waren nicht robust genug, um alle Facetten der GUI-Funktionalität handhaben zu können.

Microsoft hatte zwar im Jahr 1998 den Windows Script Host zusammen mit Windows 98 veröffentlicht. Der Befehlszeilen-Host cscript.exe ermöglichte das Schreiben von Skripten in VBScript oder JavaScript. Aber cscript.exe war nicht in die Shell integriert und das Schreiben von Code in VBScript war für Entwickler eine Herausforderung.

Snover entwickelte die Idee, eine standardisierte Plattform zu schaffen, die das .NET-Framework durch Objekte und Automatisierungsaufgaben nutzte. Microsoft hat in der Folge auf der Basis von Snovers Idee eine neue Befehlszeilenschnittstelle zusammen mit einer Shell namens Monad erstellt. Die erste Beta-Version von Monad wurde von Microsoft im Juni 2005 veröffentlicht, gefolgt von einer zweiten und dritten Beta-Version im September 2005 und Januar 2006. Am 25. April 2006 wurde Monad schließlich in Windows PowerShell umbenannt und zu einem Kernstück des Windows-Betriebssystems gemacht.

PowerShell 1.0 wurde im November 2006 von Microsoft für Windows XP SP2, Windows Vista und Windows Server 2003 SP1 veröffentlicht. Für den Windows Server 2008 bot Microsoft PowerShell als optionale Komponente an. Version 2.0 wurde zusammen mit Windows 7 und Windows Server 2008 R2 veröffentlicht. Windows PowerShell 5.0 ist die neueste Version, die standardmäßig in Windows Server 2016 und Windows 10 installiert wird. Bei Windows 8.1-Betriebssystemen ist die Version 4.0 standardmäßig installiert.

Windows PowerShell 5.0 ist kompatibel mit Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Server 2012 und Windows Server 2012 R2. Diese Systeme benötigen jedoch das Windows Management Framework 5.0, das zum Ausführen von PowerShell 5.0 installiert werden muss. Zusätzlich wird für Version 5.0 eine vollständige Installation von Microsoft .NET Framework 4.5. benötigt.

Wichtige PowerShell Funktionen

PowerShell ist eine objektorientierte Automatisierungs-Engine und Skriptsprache mit einer interaktiven Befehlszeilen-Shell, um Systemaufgaben wie die Batch-Verarbeitung zu automatisieren und Systemverwaltungstools für häufig implementierte Prozesse zu erstellen. Die Sprache ähnelt Perl. PowerShell basiert auf dem .NET Framework und bietet mehrere Möglichkeiten zur Automatisierung von Aufgaben: Cmdlets, Skripts, die Kombinationen von Cmdlets und zugehöriger Logik sind, ausführbare Dateien, die eigenständige Tools sind und die Instanziierung von Standard-.NET-Klassen.

Cmdlets

,

Cmdlets sind sehr kleine .NET-Klassen, die als Systembefehle angezeigt werden. Ein Cmdlet führt eine einzelne Funktion aus und ist das häufigste Element für die Automatisierung. Ein Cmdlet wird im Allgemeinen in einer Sprache wie C # geschrieben und kompiliert. Wie alle anderen Befehle führt ein Cmdlet eine Aktion durch und gibt ein .NET-Objekt zurück. Jedes Cmdlet ist einem Hilfeinhalt zugeordnet, der die Details des Cmdlets enthält wie zum Beispiel eine Beschreibung, die Befehlssyntax, Beschreibung der Parameter und ein Beispiel. PowerShell enthält mehr als 200 grundlegende Cmdlets.

PowerShell-Module

Module ermöglichen Administratoren die Wiederverwendung eines Skripts zur Automatisierung einer Aufgabe. Ein Modul kann als eine Reihe von Funktionen definiert werden die gruppiert sind, um alle Aspekte eines bestimmten Bereichs zu verwalten. Mit den Modulen können Administratoren Codes referenzieren, laden, beibehalten und teilen. Ein PowerShell-Modul kann einer von vier Typen sein:

Skriptmodul

Ein Sktriptmodul ist eine PSM1-Datei, die verschiedene Funktionen enthält, mit denen Administratoren Import-, Export- und Verwaltungsfunktionen ausführen können.

Binäres Modul

Ein binäres Modul ist ein NET-Framework-Assembly (DLL-Datei), die kompilierten Code enthält. Normalerweise verwenden Entwickler ein Binärmodul, um Cmdlets mit leistungsstarken Funktionen zu erstellen, die mit einem Skript nicht einfach auszuführen sind.

Manifestmodul

Ein Manifestmodul ist eine Moduldatei (PSM1) mit einer zugehörigen PSD1-Datei (Manifest).

Dynamisches Modul

Ein dynamisches Modul wird dynamisch auf Anforderung von einem Skript erstellt. Es wird nicht gespeichert oder in den persistenten Speicher geladen.

Funktionen in Power Shell

Eine Funktion ähnelt einem Cmdlet mit einigen geringfügigen Unterschieden. Cmdlets werden in einer kompilierten .NET-Sprache wie C # geschrieben, während Funktionen in PowerShell geschrieben und nicht kompiliert werden. Für Entwickler und unabhängige Softwarehersteller ist es einfacher, ein Cmdlet zu packen und bereitzustellen, als dies mit den Paketbibliotheken von Funktionen möglich ist.

Desired State Configuration (DSC)

Mit der Version 4.0 hat Microsoft ein Feature namens Desired State Configuration (DSC) eingeführt, mit dem Administratoren jetzt eine bestimmte Konfiguration für einen Server festlegen können. Nachdem der Administrator die Servereinstellungen definiert hat, stellt Power Shell sicher, dass die Zielknoten den gewünschten Status beibehalten. DSC hat zwei Betriebsmodi: Push-Modus und Pull-Modus.

Im Push-Modus sendet ein Server Benachrichtigungen an die Knoten. Es handelt sich um eine unidirektionale Kommunikation, bei der der Administrator Benachrichtigungen von einer Workstation sendet. Die Setup-Kosten sind hierbei geringer, da das Management von einem Gerät ausgeführt wird. Benachrichtigungen können allerdings verloren gehen, wenn ein Gerät nicht mit dem Netzwerk verbunden ist.

Im Push-Modus erstellt die IT-Abteilung einen Pull-Server mit den Konfigurationsdetails jedes Knotens unter Verwendung einer MOF-Datei. Jeder Knoten kontaktiert den Pull-Server, um nach einer neuen Konfiguration zu suchen. Wenn die neue Konfiguration verfügbar ist, sendet der Pull-Server die Konfiguration an den Knoten. Administratoren können alle Geräte unabhängig von ihrer Netzwerkverbindung verwalten. Wenn ein Gerät eine Verbindung mit dem Netzwerk herstellt, kontaktiert es automatisch den Pull-Server, um nach einer neuen Konfiguration zu suchen.

PowerShell DSC-Ressourcen

DSC-Ressourcen sind die Komponenten eines Konfigurationsskripts. Administratoren können die verfügbaren DSC-Ressourcen auf einem Computer mit dem Befehl Get-DscResource überprüfen. Der Befehl Get-DscResource ruft die verfügbaren Ressourcen für den gewünschten Status auf einem Computer ab.

Administratoren verwenden diese Ressourcen, um Komponenten wie Registrierungsschlüssel und Windows-Dienste zu konfigurieren oder lokale Benutzer über ein Konfigurationsskript zu erstellen und zu verwalten. Beispielsweise verwaltet die Dateiressource Dateien und Ordner, die Umgebungsressource verwaltet Umgebungsvariablen und die Registrierungsressource verwaltet die Registrierungsschlüssel eines Knotens.

PowerShell wird von Microsoft kontinuierlich mit neuen Funktionen erweitert und ist nach wie vor eine der Kernkomponenten in jedem Windows Betriebssystem.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte