Get-Command
Ruft grundlegende Informationen zu Cmdlets und anderen Elementen von Windows PowerShell-Befehlen ab.
Syntax
Get-Command [[-Name] <string[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>]
Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>]
Beschreibung
Mit dem Cmdlet "Get-Command" werden grundlegende Informationen über Cmdlets und andere Elemente von Windows PowerShell-Befehlen in der Sitzung abgerufen, beispielsweise Aliase, Funktionen, Filter, Skripts und Anwendungen.
Get-Command ruft die Daten direkt aus dem Code eines Cmdlets, einer Funktion, eines Skripts oder eines Alias ab. Im Gegensatz dazu werden die Informationen mit Get-Help aus den Hilfedateien abgerufen.
Wenn keine Parameter angegeben werden, ruft Get-Command alle Cmdlets und Funktionen in der aktuellen Sitzung ab. Mit "Get-Command*" werden alle Windows PowerShell-Elemente und alle nicht zu Windows PowerShell gehörenden Dateien in der Path-Umgebungsvariablen ("$env:path") abgerufen. Die Dateien im Befehlstyp "Anwendung" werden damit gruppiert.
Mit dem Module-Parameter von Get-Command können Sie die Befehle suchen, die der Sitzung durch Hinzufügen eines Windows PowerShell-Snap-Ins oder durch Importieren eines Moduls hinzugefügt wurden.
Parameter
-ArgumentList <Object[]>
Ruft Informationen zu einem Cmdlet oder einer Funktion ab, wenn diese mit den angegebenen Parametern ("Argumenten") verwendet werden, beispielsweise mit einem Pfad. Der Alias für ArgumentList lautet "Args".
Legen Sie den Wert von ArgumentList auf einen Pfad im Anbieterlaufwerk fest, beispielsweise auf "HKML\Software" oder auf "cert:\my", um Parameter zu bestimmen, die einem Cmdlet hinzugefügt werden, das mit einem bestimmten Anbieter verwendet wird.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-CommandType <CommandTypes>
Ruft nur die angegebenen Befehlstypen ab. Verwenden Sie "CommandType" oder den zugehörigen Alias "Type". Get-Command ruft standardmäßig Cmdlets und Funktionen ab.
Gültige Werte:
– Alias: Alle Windows PowerShell-Aliase in der aktuellen Sitzung.
– All: Alle Befehlstypen. Dies entspricht der Verwendung von "get-command *".
– Application: Alle nicht zu Windows PowerShell gehörenden Dateien in Pfaden, die in der Path-Umgebungsvariablen ($env:path) aufgeführt sind, einschließlich TXT-, EXE- und DLL-Dateien.
– Cmdlet: Die Cmdlets in der aktuellen Sitzung. Der Standardwert ist "Cmdlet".
– ExternalScript: Alle PS1-Dateien in den in der Path-Umgebungsvariablen ($env:path) aufgeführten Pfaden.
– Filter und Function: Alle Windows PowerShell-Funktionen
– Script: Skriptblöcke in der aktuellen Sitzung.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Module <string[]>
Ruft die Befehle aus den angegebenen Modulen oder Snap-Ins ab. Geben Sie die Namen der Module oder Snap-Ins bzw. Snap-In- oder Modulobjekte ein.
Sie können mit dem Namen (Module) oder dem Alias (PSSnapin) auf diesen Parameter verweisen. Der gewählte Parametername wirkt sich nicht auf den Befehl oder seine Ausgabe aus.
Dieser Parameter akzeptiert Zeichenfolgenwerte, Sie können jedoch auch ein PSModuleInfo-Objekt oder ein PSSnapinInfo-Objekt angeben, z. B. die Objekte, die von Get-Module, Get-PSSnapin und Import-PSSession zurückgegeben werden.
Erforderlich? |
false |
Position? |
named |
Standardwert |
Keiner |
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Name <string[]>
Ruft nur Informationen über die Cmdlets oder Befehlselemente mit dem angegebenen Namen ab. <Zeichenfolge> stellt den teilweisen oder vollständigen Namen des Cmdlets oder Befehlselements dar. Platzhalter sind zulässig.
Geben Sie den Befehlsnamen ohne Platzhalterzeichen ein, um Befehle mit gleichem Namen in der Reihenfolge ihrer Ausführung aufzulisten. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue, ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Noun <string[]>
Ruft Cmdlets und Funktionen mit Namen ab, die das angegebene Substantiv enthalten. <String> stellt ein oder mehrere Substantive oder Muster von Substantiven dar, z. B. "process" oder *item*". Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Syntax
Ruft nur die angegebenen Daten zum Befehlselement ab.
* Ruft für Aliase den Standardnamen ab.
* Ruft für Cmdlets die Syntax ab.
* Ruft für Funktionen und Filter die Funktionsdefinition ab.
* Ruft für Skripts und Anwendungen (Dateien) den Pfad und den Dateinamen ab.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-TotalCount <int>
Ruft nur die angegebene Anzahl von Elementen ab. Mit diesem Parameter können Sie die Ausgabe eines Befehls beschränken.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Verb <string[]>
Ruft Informationen zu Cmdlets und Funktionen mit Namen ab, die das angegebene Verb enthalten. <String> stellt ein oder mehrere Verben oder Muster von Verben dar, z. B. "remove" oder *et". Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.String Sie können die angegebenen Noun-Eigenschaften "Name", "Command" und "Verb" oder ein Zeichenfolgenobjekt über die Pipeline an Get-Command übergeben. |
Ausgaben |
Object Der Typ des zurückgegebenen Objekts hängt vom Typ des zurückgegebenen Befehlselements ab. Beispielsweise wird von Get-Command für ein Cmdlet ein CmdletInfo-Objekt abgerufen, während mit Get-Command für eine DLL ein ApplicationInfo-Objekt abgerufen wird. |
Hinweise
Wenn keine Parameter angegeben werden, ruft Get-Command Informationen zu den Cmdlets und Funktionen von Windows PowerShell ab. Qualifizieren Sie die abgerufenen Elemente mithilfe der Parameter.
Während mit Get-Help der Inhalt XML-basierter Hilfedateien angezeigt wird, ruft Get-Command die Cmdlet-Informationen direkt aus dem Cmdlet-Code im System ab.
Get-Command gibt die Befehle in alphabetischer Reihenfolge zurück. Wenn die Sitzung mehrere Befehle mit dem gleichen Namen enthält, gibt Get-Command die Befehle in der Reihenfolge ihrer Ausführung zurück. Der zuerst aufgeführte Befehl ist der Befehl, der ausgeführt wird, wenn Sie den Befehlsnamen ohne Qualifikation eingeben. Weitere Informationen finden Sie unter "about_Command_Precedence".
Beispiel 1
C:\PS>get-command
Beschreibung
-----------
Mit diesem Befehl werden Informationen zu allen Cmdlets und Funktionen von Windows PowerShell abgerufen.
In der Standardanzeige werden der Befehlstyp ("Cmdlet", "Funktion" oder "Filter") sowie der Name des Cmdlets oder der Funktion und die Syntax- oder die Funktionsdefinition aufgeführt.
Beispiel 2
C:\PS>get-command -verb set | format-list
Beschreibung
-----------
Mit diesem Befehl werden Informationen zu allen Cmdlets und Funktionen mit dem Verb "set" abgerufen, und einige der Informationen werden in einer Liste angezeigt.
Die Liste enthält Felder, die in der Tabelle ausgelassen werden, u. a. die vollständige Syntax. Wenn Sie alle Felder (alle Eigenschaften des Objekts) anzeigen lassen möchten, geben Sie "get-command -verb set | format-list *" ein.
Beispiel 3
C:\PS>get-command -type cmdlet | sort-object noun | format-table -group noun
Beschreibung
-----------
Mit diesem Befehl werden alle Cmdlets abgerufen, alphabetisch nach dem Substantiv im Cmdlet-Namen sortiert und anschließend nach Substantiven
in Gruppen angezeigt. Mithilfe dieser Anzeige können Sie die Cmdlets für eine Aufgabe leichter finden.
Standardmäßig werden Elemente von Get-Command in der Reihenfolge angezeigt, in der sie vom System erkannt werden. Dies ist auch die Reihenfolge, in der sie für die Ausführung ausgewählt werden, wenn ein Befehl nicht eindeutig ist.
Beispiel 4
C:\PS>get-command -module Microsoft.PowerShell.Security, TestModule
Beschreibung
-----------
Mit diesem Befehl werden die Befehle im Microsoft.PowerShell.Security-Snap-In sowie in einem Modul "Test-Module" abgerufen.
Der Module-Parameter ruft Befehle ab, die durch Importieren von Modulen oder Hinzufügen von Windows PowerShell-Snap-Ins hinzugefügt wurden.
Beispiel 5
C:\PS>get-command get-childitem -args cert: -syntax
Beschreibung
-----------
Mit diesem Befehl werden Informationen zum Cmdlet "Get-ChildItem" abgerufen, wenn "Get-ChildItem" mit dem Windows PowerShell-Certificate-Anbieter verwendet wird.
Wenn Sie die Syntax aus der Ausgabe mit der Syntax vergleichen, die bei Auslassen des Args (ArgumentList)-Parameters angezeigt wird, stellen Sie fest, dass der Certificate-Anbieter dem Cmdlet "Get-ChildItem" dynamisch den Parameter "CodeSigningCert" hinzufügt.
Beispiel 6
C:\PS>(get-command get-childitem -ArgumentList cert:).parametersets[0].parameters | where-object { $_.IsDynamic }
Beschreibung
-----------
Mit diesem Befehl werden nur Parameter abgerufen, die dem Cmdlet "Get-ChildItem" dynamisch hinzugefügt werden, wenn er mit dem Windows PowerShell-Certificate-Anbieter verwendet wird. Dies stellt eine alternative Methode zu der Methode aus dem vorherigen Beispiel dar.
In diesem Befehl wird "get-command get-childitem -ArgumentList cert:" zuerst verarbeitet. Dabei werden von " Get-Command" Informationen zum Cmdlet "Get-ChildItem" angefordert, wenn der Befehl mit dem Certificate-Anbieter verwendet wird. ".parametersets[0]" wählt die erste Parametergruppe (Gruppe 0) von "get-childitem -argumentList cert:" aus, und ".parameters" wählt die Parameter in dieser Parametergruppe aus. Die erhaltenen Parameter werden über die Pipeline an das Cmdlet "Where-Object" übergeben, um die einzelnen Parameter ("$_.") mit der IsDynamic-Eigenschaft zu testen. Verwenden Sie Get-Member, um nach den Eigenschaften der Objekte in einem Befehl zu suchen.
Beispiel 7
C:\PS>get-command *
Beschreibung
-----------
Mit diesem Befehl werden Informationen über die Cmdlets, Funktionen, Filter, Skripts und Aliase von Windows PowerShell in der aktuellen Konsole abgerufen.
Außerdem werden Informationen über alle Dateien in den Pfaden der Path-Umgebungsvariablen ($env:path) abgerufen. Für jede Datei wird ein ApplicationInfo-Objekt (System.Management.Automation.ApplicationInfo) anstelle eines FileInfo-Objekts (System.IO.FileInfo) zurückgegeben.
Beispiel 8
C:\PS>get-command | where-object {$_.definition -like "*first*"}
CommandType Name Definition
----------- ---- ---------
Cmdlet Select-Object Select-Object [[-Property]
Beschreibung
-----------
Mit diesem Befehl werden Cmdlets oder Funktionen anhand des Namens eines entsprechenden Parameters gesucht. Sie können mit diesem Befehl ein Cmdlet oder eine Funktion identifizieren, wenn Sie sich lediglich an einen entsprechenden Parameter erinnern.
In diesem Fall erinnern Sie sich, dass ein Cmdlet oder eine Funktion einen First-Parameter aufweist, mit dem die ersten "n" Objekte in einer Liste abgerufen werden, Sie können sich jedoch nicht mehr an das genaue Cmdlet erinnern.
In diesem Befehl wird mit dem Cmdlet "Get-Command" ein CmdletInfo-Objekt abgerufen, das die einzelnen Cmdlets und Funktionen in der Sitzung darstellt. Das CmdletInfo-Objekt verfügt über eine Definition-Eigenschaft, die die Syntax des Cmdlets oder der Funktion mit den Parametern enthält.
Der Befehl übergibt das CmdletInfo-Objekt mit einem Pipelineoperator (|) an das Cmdlet "Where-Object", mit dem die Definition (Syntax) der einzelnen Objekte ($_) nach einem Wert mit "first" durchsucht wird.
Das Ergebnis zeigt an, dass der First-Parameter zum Cmdlet "Select-Object" gehört.
Beispiel 9
C:\PS>get-command dir | format-list
Name : dir
CommandType : Alias
Definition : Get-ChildItem
ReferencedCommand : Get-ChildItem
ResolvedCommand : Get-ChildItem
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie das Cmdlet "Get-Command" mit einem Alias verwendet wird. Obwohl es normalerweise mit Cmdlets verwendet wird, zeigt das Cmdlet "Get-Command" auch Informationen über den Code in Skripts, Funktionen, Aliasen und ausführbaren Dateien an.
Dieser Befehl zeigt den Alias "dir" in der aktuellen Konsole an. Mit dem Befehl wird das Ergebnis über die Pipeline an die Format-List-Cmdlets übergeben.
Beispiel 10
C:\PS>get-command notepad
CommandType Name Definition
----------- ---- ----------
Application notepad.exe C:\WINDOWS\system32\notepad.exe
Application NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie mit Get-Command der Befehl bestimmt wird, der von Windows PowerShell ausgeführt wird, wenn der Zugriff auf mehrere Befehle mit dem gleichen Namen möglich ist. Wenn Sie den Name-Parameter ohne Platzhalterzeichen verwenden, werden die Befehle von Get-Command in der Rangfolge ihrer Ausführung aufgelistet.
Dieser Befehl zeigt an, welches Editor-Programm von Windows PowerShell bei Eingabe von "Notepad" ohne vollqualifizierten Pfad ausgeführt wird. Der Befehl verwendet den Name-Parameter ohne Platzhalterzeichen.
In der Beispielausgabe werden die Editor-Befehle in der aktuellen Konsole angezeigt. Die Ausgabe zeigt, dass die Instanz von "Notepad.exe" im Verzeichnis "C:\Windows\System32" von Windows PowerShell ausgeführt wird.
Beispiel 11
C:\PS>(get-command get-date).pssnapin
C:\PS> (get-command remove-gpo).module
Beschreibung
-----------
Diese Befehle zeigen an, wie das Snap-In oder das Modul gesucht werden kann, aus dem ein bestimmtes Cmdlet stammt.
Im ersten Befehl wird das Snap-In mit der PSSnapin-Eigenschaft des CmdletInfo-Objekts gesucht, mit dem das Cmdlet "Get-Date" hinzugefügt wurde.
Im zweiten Befehl wird mit der Module-Eigenschaft des CmdletInfo-Objekts das Modul gesucht, mit dem das Cmdlet "Remove-GPO" hinzugefügt wurde.
Siehe auch
Konzepte
about_Command_Precedence
Get-Help
Get-PSDrive
Get-Member
Import-PSSession
Export-PSSession