Freigeben über


Ermitteln von PowerShell

PowerShell ist eine Befehlszeilenshell und eine Skriptsprache in einer. PowerShell begann mit Windows, um administrative Aufgaben zu automatisieren. Jetzt wird es plattformübergreifend ausgeführt und kann für verschiedene Aufgaben verwendet werden.

Was PowerShell eindeutig macht, besteht darin, dass sie .NET-Objekte anstelle von Text akzeptiert und zurückgibt. Dieses Feature erleichtert das Verbinden verschiedener Befehle in einer Pipeline.

Wofür kann PowerShell verwendet werden?

Zunächst war PowerShell nur Windows. Jetzt ist es plattformübergreifend und kann für verschiedene Aufgaben verwendet werden:

  • Cloudverwaltung. PowerShell kann zum Verwalten von Cloudressourcen verwendet werden. Sie können beispielsweise Informationen abrufen, aktualisieren oder neue Ressourcen bereitstellen.
  • CI/CD. Sie kann auch als Teil einer Pipeline für kontinuierliche Integration/kontinuierliche Bereitstellung verwendet werden.
  • Automatisieren Sie Aufgaben für Active Directory und Exchange. Sie können es verwenden, um fast jede Aufgabe unter Windows zu automatisieren, z. B. das Erstellen von Benutzern in Active Directory und Postfächern in Exchange.

Wer verwendet PowerShell?

PowerShell ist ein leistungsstarkes Tool, das Personen bei der Arbeit in einer Vielzahl von Rollen helfen kann. Traditionell wurde PowerShell von den Systemadministratoren verwendet. Jetzt wird es von Personen verwendet, die sich selbst DevOps, Cloud Ops und sogar Entwickler nennen.

PowerShell Befehle

PowerShell enthält Hunderte vorinstallierter Befehle. PowerShell-Befehle werden als Cmdlets bezeichnet (ausgeprägte Befehls-Lets).

Der Name jedes Cmdlets besteht aus einem Verb-Nomen-Paar . Beispiel: Get-Process. Diese Benennungskonvention erleichtert das Verständnis der Funktionsweise des Cmdlets. Außerdem ist es einfacher, den gesuchten Befehl zu finden. Wenn Sie nach einem zu verwendenden Cmdlet suchen, können Sie nach dem Verb oder Substantiv filtern.

Verwenden von Cmdlets zum Erkunden von PowerShell

Wenn Sie PowerShell zum ersten Mal aufnehmen, fühlt es sich möglicherweise einschüchternd an, da es so viel zu lernen scheint. PowerShell ist so konzipiert, dass Sie bei Bedarf ein wenig lernen können.

PowerShell enthält Cmdlets, mit denen Sie PowerShell ermitteln können. Mithilfe dieser drei Cmdlets können Sie ermitteln, welche Befehle verfügbar sind, was sie tun und welche Typen sie verwenden.

  • Get-Verb. Wenn Sie diesen Befehl ausführen, wird eine Liste der Verben zurückgegeben, die die meisten Befehle einhalten. Die Antwort enthält eine Beschreibung der Funktionsweise dieser Verben. Da die meisten Befehle dieser Benennungskonvention folgen, werden Erwartungen an die Funktionsweise eines Befehls festgelegt. Mit diesem Befehl können Sie das entsprechende Verb auswählen und einen Befehl benennen, wenn Sie eigene Befehle erstellen.
  • Get-Command. Mit diesem Befehl wird eine Liste aller befehle abgerufen, die auf Ihrem Computer installiert sind.
  • Get-Member. Es wird auf objektbasierter Ausgabe ausgeführt und kann ermitteln, welche Objekte, Eigenschaften und 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, die verschiedene Teile eines Befehls beschreibt.

Mit diesen Befehlen können Sie fast alles entdecken, was Sie über PowerShell wissen müssen.

Verb

Verb ist ein wichtiges Konzept in PowerShell. Es ist ein Benennungsstandard, den die meisten Cmdlets befolgen. Es ist auch ein Benennungsstandard, dem Sie beim Schreiben eigener Befehle folgen sollen. Die Idee ist, dass das Verb sagt, was Sie tun möchten, z. B. Lesen oder Ändern von Daten. PowerShell verfügt über eine standardisierte Liste von Verben. Verwenden Sie das Get-Verb Cmdlet, um eine vollständige Liste aller möglichen Verben abzurufen:

Get-Verb

Das Cmdlet gibt eine lange Liste von Verben zurück. Die Beschreibung bietet Kontext für das, was das Verb tun soll. 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

Das Get-Command Cmdlet gibt eine Liste aller verfügbaren Befehle zurück, die auf Ihrem System installiert sind. Die Liste kann groß sein. Sie können die Menge der Informationen einschränken, die zurückgegeben werden, indem Sie die Antwort mithilfe von Parametern oder Hilfs-Cmdlets filtern.

Nach Name filtern

Sie können die Ausgabe der Get-Command Verwendung verschiedener Parameter filtern. Durch das Filtern können Sie Befehle mit bestimmten Eigenschaften suchen. Mit dem Parameter Name können Sie einen bestimmten Befehl anhand des Namens finden.

Get-Command -Name Get-Process
CommandType     Name              Version    Source
-----------     ----              -------    ------
Cmdlet          Get-Process       7.0.0.0    Microsoft.PowerShell.Management

Was geschieht, wenn Sie alle Befehle finden möchten, die mit Prozessen funktionieren? Sie können einen Wildcard * verwenden, um andere Formen der Zeichenfolge abzugleichen. Beispiel:

Get-Command -Name *-Process
CommandType     Name              Version    Source
-----------     ----              -------    ------
Cmdlet          Debug-Process     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Get-Process       7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Start-Process     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Stop-Process      7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Wait-Process      7.0.0.0    Microsoft.PowerShell.Management

Filtern nach Substantiv und Verb

Es gibt weitere Parameter, die nach Verb- und Substantivwerten filtern. Der Verbteil des Befehlsnamens ist der äußerst linke Teil. Das Verb sollte eines der Vom Get-Verb Cmdlet zurückgegebenen Werte sein. Der äußerst rechte Teil eines Befehls ist der Substantivteil. Ein Substantiv kann alles sein.

  • Filtern nach Verb. Im Befehl Get-Processist Getder Verbteil . Verwenden Sie den Verb-Parameter , um nach dem Verbteil zu filtern.

    Get-Command -Verb 'Get'
    

    In diesem Beispiel werden alle Befehle aufgelistet, die das Verb Getverwenden.

  • Filtert nach Substantiv. Im Befehl Get-Processist Processder Substantivteil . Verwenden Sie den Parameter "Noun ", um nach dem Substantiv zu filtern. Im folgenden Beispiel werden alle Cmdlets zurückgegeben, die Mit dem Buchstaben Ubeginnen.

    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. Mit diesem vielseitigen Befehl können Sie bestimmte Eigenschaften aus einem oder mehreren Objekten auswählen. Sie können auch die Anzahl der Elemente einschränken, die Sie zurückholen. Im folgenden Beispiel werden die Werte der Eigenschaft Name und Source für die ersten fünf Befehle zurückgegeben, die in der aktuellen Sitzung verfügbar sind.

    Get-Command | Select-Object -First 5 -Property Name, Source
    
    Name                      Source
    ----                      ------
    Add-AppPackage            Appx
    Add-AppPackageVolume      Appx
    Add-AppProvisionedPackage Dism
    Add-AssertionOperator     Pester
    Add-ProvisionedAppPackage Dism
    

    Weitere Informationen finden Sie unter Select-Object.

  • Where-Object. Mit diesem Cmdlet können Sie die zurückgegebenen Objekte basierend auf den Werten von Eigenschaften filtern. Der Befehl verwendet einen Ausdruck, der den Wert einer Eigenschaft testen kann. Im folgenden Beispiel werden alle Prozesse zurückgegeben, bei denen der ProcessName Vorgang beginnt p.

    Get-Process | Where-Object {$_.ProcessName -like "p*"}
    

    Das Get-Process Cmdlet gibt eine Auflistung von Prozessobjekten zurück. Um die Antwort zu filtern, senden Sie die Ausgabe an Where-Object. Die Rohrleitung bedeutet, dass zwei oder mehr Befehle über ein Rohrzeichen | verbunden sind. Die Ausgabe von einem Befehl wird als Eingabe für den nächsten Befehl gesendet. Der Filterausdruck für Where-Object die Verwendung des -like Operators zum Abgleichen von Prozessen, die mit dem Buchstaben pbeginnen.

Erkunden von Objekten mit Get-Member

Sobald Sie das gewünschte Cmdlet gefunden haben, möchten Sie mehr darüber erfahren, welche Ausgabe sie erzeugt. Das Get-Member Cmdlet zeigt den Typ, die Eigenschaften und Methoden eines Objekts an. Pipen Sie die Ausgabe, an Get-Memberdie Sie prüfen möchten.

Get-Process | Get-Member

Das Ergebnis zeigt den zurückgegebenen Typ als TypeName und alle Eigenschaften und Methoden des Objekts an. Hier ist ein Auszug aus einem solchen Ergebnis:

TypeName: System.Diagnostics.Process

Name        MemberType     Definition
----        ----------     ----------
Handles     AliasProperty  Handles = Handlecount
Name        AliasProperty  Name = ProcessName
...

Mit dem MemberType-Parameter können Sie die zurückgegebenen Informationen einschränken.

Get-Process | Get-Member -MemberType Method

PowerShell zeigt standardmäßig nur einige Eigenschaften an. Im vorherigen Beispiel wurden die NameElemente , MemberTypeund Definition die Elemente angezeigt. Sie können zum Angeben von Eigenschaften verwenden Select-Object , die Sie anzeigen möchten. Sie möchten beispielsweise nur die Name folgenden Definition Eigenschaften anzeigen:

Get-Process | Get-Member | Select-Object Name, Definition

Suchen nach Parametertyp

Get-Member hat uns gezeigt, dass Get-ProcessProcess-Typobjekte zurückgegeben werden. Der ParameterType-Parameter von Get-Command kann verwendet werden, um andere Befehle zu finden, die Process-Objekte als Eingabe verwenden.

Get-Command -ParameterType Process
CommandType     Name                         Version    Source
-----------     ----                         -------    ------
Cmdlet          Debug-Process                7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Enter-PSHostProcess          7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-Process                  7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Get-PSHostProcessInfo        7.1.0.0    Microsoft.PowerShell.Core
Cmdlet          Stop-Process                 7.0.0.0    Microsoft.PowerShell.Managem…
Cmdlet          Wait-Process                 7.0.0.0    Microsoft.PowerShell.Managem…

Wenn Sie den Ausgabetyp eines Befehls kennen, können Sie die Suche nach verwandten Befehlen eingrenzen.

Weitere Ressourcen