Powershell

Definition - Was bedeutet PowerShell?

PowerShell ist ein automatisiertes Task-Framework von Microsoft mit einer Befehlszeilen-Shell und einer in das .NET-Framework integrierten Skriptsprache, die in andere Anwendungen eingebettet werden kann. Es automatisiert die Stapelverarbeitung und erstellt Systemverwaltungstools. Es enthält mehr als 130 Standard-Befehlszeilentools für Funktionen und ermöglicht Administratoren die Ausführung von Aufgaben auf lokalen und Remote-Windows-Systemen durch Zugriff auf das Komponentenobjektmodell (COM) und die Windows-Verwaltungsinstrumentierung (WMI).

Technische.me erklärt PowerShell

Windows PowerShell führt vier Arten von Befehlen aus:

  • Cmdlets
  • PowerShell-Funktionen
  • PowerShell-Skripte
  • Ausführbare Programme

PowerShell automatisiert Aufgaben mithilfe von Cmdlets. Hierbei handelt es sich um API-Klassen (.NET Application Programming Interface), die als Systembefehle angezeigt werden und bestimmte Funktionen implementieren. Sie sind die nativen Befehle in PowerShell und verarbeiten Objekte einzeln. Sie werden als Empfänger in einer Pipeline verwendet und empfangen und geben Ergebnisse als Objekte aus. Cmdlets für jedes Objekt in einer Sammlung werden von PowerShell in einer Sequenz aufgerufen. Sie werden von den Basisklassen Cmdlet oder PsCmdlet abgeleitet. Wenn ein Cmdlet ausgeführt wird, werden die Methoden ProcessRecord (), BeginProcessing () und EndProcessing () aufgerufen. Die Klasse, die das Cmdlet implementiert, enthält ein .NET-Attribut und das Cmdlet-Attribut, das den Namen des Cmdlets angibt. Cmdlets verwenden .NET-Datenzugriffs-APIs direkt oder verwenden möglicherweise die Power Shell-Infrastruktur, um den Datenspeicher über bestimmte Pfade verfügbar zu machen.

PowerShell verfügt über eine interaktive Befehlszeilenschnittstelle. Mit PowerShell kann der Benutzer Aliase für Cmdlets erstellen, die von PowerShell in die ursprünglichen Befehle konvertiert werden.

Pipeline ist ein wichtiges Konzept in PowerShell. Die Ausgabe eines Befehls wird mit einem | an einen anderen Befehl übergeben Operator. Im Gegensatz zum Unix-Pipelining sind die übergebenen Befehle typisierte Objekte mit einer konsistenten Schnittstelle, die während des Prozesses ihre Struktur beibehalten und kein zusätzliches Parsen erfordern. Diese Objekte kapseln Funktionen, die an enthaltenen Daten arbeiten. Das Ausgabeobjekt des letzten Cmdlets wird an ein Out-Default-Cmdlet weitergeleitet, das das Objekt in einen Stream von Formatobjekten konvertiert und auf dem Bildschirm rendert.

Microsoft hat PowerShell 2 veröffentlicht, das standardmäßig unter Windows 7 und Windows Server 2008 R2 installiert ist. PowerShell V2 enthält ca. 240 Cmdlets sowie Änderungen in der Skriptsprache und der Hosting-API. In PowerShell V2 wurden folgende neue Funktionen hinzugefügt:

  • Datensprache: Dies ist eine Teilmenge der PowerShell-Skriptsprache. Damit können Datendefinitionen von den Skripten getrennt und Zeichenfolgenressourcen zur Laufzeit in das Skript importiert werden.
  • PowerShell Remoting: Hiermit werden Cmdlets und Skripts auf Remotecomputern mithilfe der Workstation-Verwaltung aufgerufen.
  • Skript-Debugging: Dies ermöglicht Haltepunkte für Skripte und Funktionen zum einfachen Auffinden von Befehlen.
  • Hintergrundjobs: Hiermit werden Befehlssequenzen asynchron aufgerufen.
  • Netzwerkdateiübertragung: Asynchrone Übertragung von Dateien zwischen Computern.
  • Module: Diese organisieren und partitionieren Skripte in wiederverwendbaren Einheiten.
  • Transaktion: Hierbei handelt es sich um Transaktions-Cmdlets zum Starten, Festschreiben und Zurücksetzen von Transaktionen.
  • Skript-Cmdlets: Dies sind Cmdlets, die mit der PowerShell-Skriptsprache erstellt wurden.
  • Eventing: Hiermit werden Systemereignisse abgehört, weitergeleitet und bearbeitet.
  • Integrierte Skriptumgebung: Dies ermöglicht die Ausführung nur ausgewählter Teile des Skripts und bietet eine GUI-basierte PowerShell mit Syntaxhervorhebung, integriertem Debugger und Tab-Vervollständigung.