Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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-ProcessistGetder 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-ProcessistProcessder Substantivteil . Verwenden Sie den Parameter "Noun ", um nach dem Substantiv zu filtern. Im folgenden Beispiel werden alle Cmdlets zurückgegeben, die Mit dem BuchstabenUbeginnen.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, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismWeitere 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 derProcessNameVorgang beginntp.Get-Process | Where-Object {$_.ProcessName -like "p*"}Das
Get-ProcessCmdlet gibt eine Auflistung von Prozessobjekten zurück. Um die Antwort zu filtern, senden Sie die Ausgabe anWhere-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ürWhere-Objectdie Verwendung des-likeOperators zum Abgleichen von Prozessen, die mit dem Buchstabenpbeginnen.
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.