Articles

Was ist PowerShell?

  • 22.05.2020
  • 5 Minuten zum Lesen
    • j
    • s
    • s

PowerShell ist ein plattformübergreifendes Framework für die Automatisierung und Konfiguration von Aufgaben, bestehend auseine Befehlszeilen-Shell und Skriptsprache. Im Gegensatz zu den meisten Shells, die Text akzeptieren und zurückgeben,basiert PowerShell auf der .NET Common Language Runtime (CLR) und akzeptiert und gibt diese zurück.NETobjects., Diese grundlegende Änderung bringt völlig neue Werkzeuge und Methoden für die Automatisierung.

Die Ausgabe ist objektbasiert

Im Gegensatz zu herkömmlichen Befehlszeilenschnittstellen sind PowerShell-Cmdlets für den Umgang mit objects.An objekt ist strukturierte Informationen, die mehr als nur die Zeichenfolge auf thescreen angezeigt wird. Die Befehlsausgabe enthält immer zusätzliche Informationen, die Sie bei Bedarf verwenden können.

Wenn Sie in der Vergangenheit Textverarbeitungstools zur Verarbeitung von Daten verwendet haben, werden Sie feststellen, dass sie sich in PowerShell unterschiedlich verhalten., In den meisten Fällen benötigen Sie keine Textverarbeitungstools, um bestimmte Informationen zu extrahieren. Mit Standard PowerShell objectsyntax greifen Sie direkt auf Teile der Daten zu.

Die Befehlsfamilie ist erweiterbar

Schnittstellen wie cmd.exe bieten keine Möglichkeit, das integrierte Befehlssatz direkt zu erweitern. Sie können externe Befehlszeilentools erstellen, die in cmd.exeausgeführt werden. Diese externen Tools verfügen jedoch nicht über Dienste wie die Hilfeintegration. cmd.exe weiß nicht automatisch, dass diese externen Tools gültige Befehle sind.,

Die Befehle in PowerShell werden als cmdlets bezeichnet. Sie können jedes Cmdlet separat verwenden, aber ihrekraft wird realisiert, wenn Sie sie kombinieren, um komplexe Aufgaben auszuführen. Wie viele Shells gibt Powershellsie haben Zugriff auf das Dateisystem auf dem Computer. PowerShell-Anbieter ermöglichen Ihnen den einfachen Zugriff auf andere Datenspeicher, z. B. die Registrierung und die Zertifikatspeicher, sowie den Zugriff auf das Dateisystem.

Sie können Ihr eigenes Cmdlet und Funktionsmodule mit kompiliertem Code oder Skripten erstellen. Module können der Shell Ddlets und Provider hinzufügen., PowerShell unterstützt auch Skripte, die analog zu UNIXshell-Skripten undcmd.exe Batch-Dateien sind.

Unterstützung für Befehlsaliase

PowerShell unterstützt Aliase, um auf Befehle mit alternativen Namen zu verweisen. Mit Aliasing können Benutzer mit Erfahrung in anderen Shells gängige Befehlsnamen verwenden, die sie bereits für ähnliche Operationen in PowerShell kennen.

Aliasing ordnet einen neuen Namen einem anderen Befehl zu. Beispielsweise verfügt PowerShell über eine internalfunction mit dem Namen , die das Ausgabefenster löscht., Sie können entweder den Alias cls oderclear an einer Eingabeaufforderung eingeben. PowerShell interpretiert diese Aliase und führt die Funktion aus.

Diese Funktion hilft Benutzern, PowerShell zu lernen. Erstens, die meisten cmd.exe und Unix-Benutzer haben eine großepertoire von Befehlen, die Benutzer bereits mit Namen kennen. Die Ergebnisse dürften keine negativen Auswirkungen haben. Die Ergebnisse sind jedoch nahe genug, dass Benutzer arbeiten können, ohne den Namen des PowerShell-Befehls zu kennen., „Muskelgedächtnis“ ist eine weitere wichtige Quelle der Frustration beim Lernen eines newcommand Shell. Wenn Sie cmd.exe jahrelang verwendet haben, können Sie reflexartig den Befehl cls eingeben, um den Bildschirm zu löschen. Ohne den Alias für erhalten Sie eine Fehlermeldung und wissen nicht, was Sie tun müssen, um die Ausgabe zu löschen.

PowerShell verarbeitet die Konsoleneingabe und die Anzeige

Wenn Sie einen Befehl eingeben, verarbeitet PowerShell die Befehlszeileneingabe immer direkt. PowerShell formatiert auch die Ausgabe, die Sie auf dem Bildschirm sehen., Dieser Unterschied ist signifikant, weil erreduziert die Arbeit, die für jedes Cmdlet erforderlich ist. Es stellt sicher, dass Sie die Dinge immer auf die gleiche Weise tun könnenmit jedem Cmdlet. Cmdlet-Entwickler müssen keinen Code schreiben, um die Befehlszeilenargumente zu analysieren oder die Ausgabe zu formatieren.

Herkömmliche Befehlszeilentools verfügen über eigene Schemata zum Anfordern und Anzeigen von Hilfe. Einige Befehlszeilentools verwenden /?, um die Hilfsanzeige auszulösen; andere verwenden -?, /H oder sogar//., Einige zeigen Hilfe in einem GUI-Fenster und nicht in der Konsolenanzeige an. Wenn Sie den Parameter thewrong verwenden, ignoriert das Tool möglicherweise, was Sie eingegeben haben, und beginnt automatisch mit der Ausführung einer Aufgabe.Da PowerShell die Befehlszeile automatisch analysiert und verarbeitet, bedeutet der Parameter -? immer „Zeige mir Hilfe für diesen Befehl“.

Hinweis

Wenn Sie eine Grafikanwendung in PowerShell ausführen, wird das Fenster für die Anwendung geöffnet.PowerShell greift nur ein, wenn Sie die von Ihnen bereitgestellte Befehlszeileneingabe verarbeiten oder applicationoutput an das Konsolenfenster zurückgegeben wird., Es hat keinen Einfluss darauf, wie die Anwendung intern funktioniert.

PowerShell hat eine Pipeline

Pipelines sind wohl das wertvollste Konzept, das in Befehlszeilenschnittstellen verwendet wird. Bei unsachgemäßer Verwendung reduzieren Pipelines den Aufwand für die Verwendung komplexer Befehle und erleichtern das Erkennen des Arbeitsablaufs. Jeder Befehl in einer Pipeline übergibt seine Ausgabe Element für Element an den nächsten Befehl. Commandsdon muss nicht mehr als ein Element gleichzeitig verarbeiten. Das Ergebnis ist ein reduzierter Ressourcenverbrauch unddie Fähigkeit, sofort Ausgabe zu erhalten.,

Die Notation für Pipelines ähnelt der Notation in anderen Shells. Auf den ersten Blick ist nicht ersichtlich, wie sich Pipelines in PowerShell unterscheiden. Obwohl Sie Text auf dem Bildschirm sehen, leitet PowerShell Objekte, nicht Text, zwischen Befehlen.,

Wenn Sie beispielsweise das Cmdlet Out-Host verwenden, um eine seitenweise Anzeige der Ausgabe durch einen anderen Befehl zu erzwingen, sieht die Ausgabe genauso aus wie der normale Text, der auf dem Bildschirm angezeigt wird, aufgeteilt inBereiche:

Get-ChildItem | Out-Host -Paging

Paging verringert auch die CPU-Auslastung, da die Verarbeitung auf das Cmdlet Out-Host ithas eine komplette Seite bereit zur Anzeige. Die Cmdlets, die ihm in der Pipeline vorausgehen, unterbrechen die Ausführunguntil Die nächste Ausgabeseite ist verfügbar.,

Objekte in der Pipeline

Wenn Sie ein Cmdlet in PowerShell ausführen, wird eine Textausgabe angezeigt, da Objekte als Text in einem Konsolenfenster dargestellt werden müssen. Die Textausgabe zeigt möglicherweise nicht alle Eigenschaften des auszugebenden Objekts an.

Betrachten Sie beispielsweise das Cmdlet Get-Location. Die Textausgabe ist eine Zusammenfassung von Informationen, nichtvollständige Darstellung des von Get-Locationzurückgegebenen Objekts. Die Überschrift in der Ausgabe wird hinzugefügtdurch den Prozess, der die Daten für die Bildschirmanzeige formatiert.,

Get-Location
Path----C:\

Wenn Sie die Ausgabe an das Cmdlet Get-Member weiterleiten, werden Informationen zu dem vonGet-Locationzurückgegebenen Objekt angezeigt.

Get-Location | Get-Member

Get-Location gibt ein PathInfo-Objekt zurück, das den aktuellen Pfad und andere Informationen enthält.

Integriertes Hilfesystem

Ähnlich wie Unix man – Seiten enthält PowerShell detaillierte Hilfeartikel, in denen PowerShell-Konzepte und Befehlssyntax erläutert werden., Verwenden Sie das Cmdlet Get-Help, um diese Artikel im commandprompt anzuzeigen, oder zeigen Sie die zuletzt aktualisierten Versionen dieser Artikel im PowerShell documentationonline an.

Weitere Informationen zu PowerShell finden Sie im Abschnitt Learning PowerShell dieser Website.