PowerShell ist sowohl eine Befehlszeilenshell als auch eine Skriptsprache. PowerShell wurde ursprünglich unter Windows verwendet, um administrative Aufgaben zu automatisieren. Jetzt kann es plattformübergreifend ausgeführt und für verschiedene Aufgaben verwendet werden.
PowerShell zeichnet sich dadurch aus, dass es anstelle von Text .NET-Objekte akzeptiert und zurückgibt. Dieses Feature erleichtert das Verknüpfen unterschiedlicher Befehle in einer Pipeline.
Wofür können Sie PowerShell verwenden?
PowerShell wird inzwischen für einen größeren Bereich als nur für Windows verwendet. Es wird noch immer für die Aufgabenautomatisierung unter Windows genutzt, aber heute können Sie es für eine Vielzahl von Aufgaben einsetzen, z. B.:
Cloudverwaltung. PowerShell lässt sich zum Verwalten von Cloudressourcen verwenden. Beispielsweise können Sie Informationen zu Cloudressourcen abrufen und Cloudressourcen aktualisieren oder neue Ressourcen bereitstellen.
CI/CD. PowerShell kann auch als Teil einer Continuous Integration/Continuous Deployment-Pipeline verwendet werden.
Automatisieren von Aufgaben für Active Directory und Exchange. Sie können mit PowerShell fast jede Aufgabe unter Windows automatisieren, z. B. das Erstellen von Benutzern in Active Directory und von Postfächern in Exchange.
Es gibt noch viele weitere Verwendungen. Die obige Liste gibt Ihnen jedoch einen Vorgeschmack, wie sehr sich PowerShell weiterentwickelt hat.
Von wem wird PowerShell verwendet?
PowerShell ist ein leistungsstarkes Tool, das Personen unterstützen kann, die mehrere Rollen erfüllen. Früher wurde PowerShell von der Systemadministratorrolle verwendet, inzwischen wird es jedoch von Personen in den Bereichen DevOps, CloudOps und von Entwicklern genutzt.
PowerShell-Cmdlets
PowerShell bietet Hunderte vorinstallierter Befehle. PowerShell-Befehle werden als „Cmdlets“ (ausgesprochen: Command-Lets) bezeichnet.
Der Name jedes Cmdlets besteht aus einer Kombination von Verb und Substantiv. Beispiel: Get-Process. Diese Namenskonvention erleichtert das Verständnis der Funktion des Cmdlets. Außerdem erleichtert sie die Suche nach dem Befehl, den Sie benötigen. Wenn Sie ein Cmdlet suchen, können Sie nach dem Verb oder dem Nomen filtern.
Verwenden von Cmdlets zum Erkunden von PowerShell
Wenn Sie PowerShell zum ersten Mal verwenden, fühlen Sie sich vielleicht eingeschüchtert, weil Sie glauben, dass Ihnen noch viele Kenntnisse fehlen.
Die PowerShell ist so aufgebaut, dass Sie sie ganz nach Bedarf in kleinen Schritten erlernen können.
PowerShell enthält Cmdlets, die Ihnen helfen, PowerShell zu erkunden. Mit den folgenden vier Cmdlets können Sie ermitteln, welche Befehle verfügbar sind, was sie ausführen und für welche Typen sie verwendet werden.
Get-Verb. Dieser Befehl gibt eine Liste mit Verben zurück, die von den meisten Befehlen verwendet werden. Die Antwort beschreibt, was diese Verben bewirken. Da die meisten Befehle dieser Namenskonvention folgen, gibt ihr Name Aufschluss über ihre Funktionsweise. Das macht es Ihnen leichter, den entsprechenden Befehl auszuwählen oder einen selbst erstellten Befehl zu benennen.
Get-Command. Dieser Befehl ruft eine Liste aller Befehle ab, die auf Ihrem Computer installiert sind.
Get-Member. Mit diesem Befehl lässt sich für die objektbasierte Ausgabe ermitteln, welches Objekt, welche Eigenschaften und welche Methoden für einen Befehl verfügbar sind.
Get-Help. Wenn Sie diesen Befehl mit dem Namen eines Befehls als Argument aufrufen, wird eine Hilfeseite angezeigt, auf der die verschiedenen Teile eines Befehls beschrieben werden.
Mit diesen Befehlen können Sie nahezu alles ermitteln, was Sie über PowerShell wissen müssen.
Verb
Das Verb ist ein wichtiges Konzept in PowerShell. Es ist ein Benennungsstandard, dem die meisten Cmdlets entsprechen. Sie müssen diesen Benennungsstandard auch befolgen, wenn Sie eigene Befehle schreiben. Das Verb bezeichnet, was ausgeführt werden soll, z. B. das Lesen oder Ändern von Daten. PowerShell verfügt über eine standardisierte Liste von Verben. Um eine vollständige Liste aller möglichen Verben abzurufen, verwenden Sie das Cmdlet Get-Verb:
Get-Verb
Das Cmdlet gibt eine lange Liste von Verben zurück. Die Beschreibung stellt Kontext für den Zweck des Verbs bereit. Dies sind die ersten Zeilen der Ausgabe:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Suchen von Befehlen mit „Get-Command“
Mit dem Cmdlet Get-Command wird eine Liste aller verfügbaren Befehle zurückgegeben, die auf Ihrem System installiert sind. Die zurückgegebene Liste ist recht umfangreich. Sie können die Menge der zurückgegebenen Informationen einschränken, indem Sie die Antwort mithilfe von Parametern oder Hilfs-Cmdlets filtern.
Filtern nach Namen
Sie können die Ausgabe von Get-Command mithilfe verschiedener Parameter filtern. Anhand der Filterung können Sie Befehle mit bestimmten Eigenschaften suchen. Mit dem Parameter Name können Sie einen bestimmten Befehl anhand des Namens suchen.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Wie gehen Sie vor, um alle Befehle zu finden, die mit Prozessen funktionieren? Sie können ein Platzhalterzeichen * verwenden, um andere Formen der Zeichenfolge abzugleichen. Beispiel:
Es gibt weitere Parameter, die nach Verb- und Nomenwerten filtern. Das Verb im Namen eines Befehls ist der linke Teil des Befehls. Das Verb sollte einem der vom Get-Verb Cmdlet zurückgegebenen Werte entsprechen. Das Nomen ist der rechte Teil eines Befehls. Ein Nomen kann alles sein.
Filtern nach Verb. Im Befehl Get-Process ist Get das Verb. Verwenden Sie den Parameter Verb, um nach dem Verbteil zu filtern.
Get-Command -Verb 'Get'
In diesem Beispiel werden alle Befehle aufgelistet, die das Verb Get verwenden.
Filtern nach Nomen. Im Befehl Get-Process lautet das Nomen Process. Verwenden Sie den Parameter Nomen, um nach dem Nomen zu filtern. Im folgenden Beispiel werden alle Cmdlets zurückgegeben, die Nomen mit dem Anfangsbuchstaben U enthalten.
Get-Command -Noun U*
Außerdem können Sie Parameter kombinieren, um Ihre Suche einzugrenzen, z. B.:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Verwenden von Hilfs-Cmdlets zum Filtern von Ergebnissen
Sie können auch andere Cmdlets verwenden, um Ergebnisse zu filtern.
Select-Object. Dieser vielseitige Befehl ermöglicht Ihnen die Auswahl bestimmter Eigenschaften eines oder mehrerer Objekte. Sie können auch die Anzahl der Elemente einschränken, die Sie zurückerhalten. Im folgenden Beispiel werden die Eigenschaftswerte Name und Source für die ersten fünf Befehle zurückgegeben, die in der aktuellen Sitzung verfügbar sind.
Weitere Informationen finden Sie unter Select-Object.
Where-Object. Mit diesem Cmdlet können Sie die zurückgegebenen Objekte basierend auf den Werten der Eigenschaften filtern. Der Befehl verwendet einen Ausdruck, der den Wert einer Eigenschaft testen kann. Im folgenden Beispiel werden alle Prozesse zurückgegeben, bei denen ProcessName mit p beginnt.
Das Cmdlet Get-Process gibt eine Auflistung von Prozessobjekten zurück. Um die Antwort zu filtern, reichen Sie die Ausgabe an Where-Object weiter. „Weiterreichen“ bedeutet, dass mehrere Befehle mithilfe eines senkrechten Strichs (|) verbunden werden. Die Ausgabe eines Befehls wird als Eingabe für den nächsten Befehl gesendet. Der Filterausdruck für Where-Object verwendet den -like-Operator, um Prozesse abzugleichen, die mit dem Buchstaben p beginnen.
Untersuchen von Objekten mit „Get-Member“
Nachdem Sie das gewünschte Cmdlet gefunden haben, möchten Sie mehr über die von ihm erzeuge Über das Cmdlet Get-Member werden der Typ, die Eigenschaften und die Methoden eines Objekts angezeigt. Reichen Sie die Ausgabe, die Sie überprüfen möchten, an Get-Member weiter.
Get-Process | Get-Member
Im Ergebnis werden der Rückgabetyp (TypeName) sowie alle Eigenschaften und Methoden des Objekts angezeigt. Dies ist ein Auszug aus einem solchen Ergebnis:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
Mithilfe des Parameters MemberType können Sie die zurückgegebenen Informationen einschränken.
Get-Process | Get-Member -MemberType Method
Standardmäßig zeigt PowerShell nur wenige Eigenschaften an. Im vorherigen Beispiel wurden die Member Name, MemberType und Definition angezeigt. Mithilfe von Select-Object können Sie Eigenschaften angeben, die angezeigt werden sollen. Wenn Sie beispielsweise nur die Eigenschaften Name und Definition anzeigen wollen:
Get-Member hat uns gezeigt, dass Get-Process Objekte vom Typ Process zurückgibt. Mithilfe des Parameters ParameterType von Get-Command können Sie andere Befehle finden, die Process-Objekte als Eingabe verwenden.
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu PowerShell
PowerShell ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
PowerShell verfügt über ein integriertes Hilfesystem. Verwenden Sie die Hilfe, um mehr über einen Befehl zu erfahren, was der Befehl tut und wie Sie ihn aufrufen. Wenn Sie untersuchen, was ein Befehl zurückgibt, können Sie diese Informationen auch verwenden, um die Ausgabe anzupassen, zu bestimmen, welche Befehle logisch gruppiert werden, und um zu bestimmen, wie die Befehle zusammen verwendet werden.
Demonstrieren Sie den geschäftlichen Nutzen und die Produktfunktionen von Microsoft Power Platform, z. B. Power Apps, Datenverbindungen mit Dataverse und Power Automate.