Sdílet prostřednictvím


Get-Command

Získá všechny příkazy.

Syntax

Get-Command
   [-Verb <String[]>]
   [-Noun <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]
Get-Command
   [[-Name] <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-CommandType <CommandTypes>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]

Description

Rutina Get-Command získá všechny příkazy nainstalované v počítači, včetně rutin, aliasů, funkcí, filtrů, skriptů a aplikací. Get-Command získá příkazy z modulů PowerShellu a příkazy, které byly importovány z jiných relací. Pokud chcete získat pouze příkazy, které byly importovány do aktuální relace, použijte parametr ListImported .

Bez parametrů Get-Command získá všechny rutiny, funkce a aliasy nainstalované v počítači. Get-Command * získá všechny typy příkazů, včetně všech souborů mimo Prostředí PowerShell v proměnné prostředí Path ($env:Path), které jsou uvedeny v typu příkazu Aplikace.

Get-Command , který používá přesný název příkazu bez zástupných znaků, automaticky naimportuje modul obsahující příkaz, abyste mohli příkaz okamžitě použít. Pokud chcete povolit, zakázat a nakonfigurovat automatický import modulů, použijte proměnnou $PSModuleAutoLoadingPreference předvoleb. Další informace najdete v tématu about_Preference_Variables.

Get-Command získává data přímo z kódu příkazu, na rozdíl od Get-Help, který získává informace z témat nápovědy.

Od Windows PowerShell 5.0 se ve výsledcích Get-Command rutiny ve výchozím nastavení zobrazí sloupec Verze. Do třídy CommandInfo byla přidána nová vlastnost Version.

Příklady

Příklad 1: Získání rutin, funkcí a aliasů

Tento příkaz získá rutiny PowerShellu, funkce a aliasy nainstalované v počítači.

Get-Command

Příklad 2: Získání příkazů v aktuální relaci

Tento příkaz používá parametr ListImported k získání pouze příkazů v aktuální relaci.

Get-Command -ListImported

Příklad 3: Získání rutin a jejich zobrazení v pořadí

Tento příkaz získá všechny rutiny, seřadí je abecedně podle podstatného jména v názvu rutiny a pak je zobrazí ve skupinách založených na podstatných jménech. Toto zobrazení vám může pomoct najít rutiny pro úlohu.

Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun

Příklad 4: Získání příkazů v modulu

Tento příkaz používá parametr Module k získání příkazů v modulech Microsoft.PowerShell.Security a Microsoft.PowerShell.Utility.

Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility

Příklad 5: Získání informací o rutině

Tento příkaz získá informace o rutině Get-AppLockerPolicy . Importuje také modul AppLocker , který přidá všechny příkazy v modulu AppLockeru do aktuální relace.

Get-Command Get-AppLockerPolicy

Při automatickém importu modulu je efekt stejný jako při použití rutiny Import-Module. Modul může přidávat příkazy, typy a formátovací soubory a spouštět skripty v relaci. Pokud chcete povolit, zakázat a nakonfigurovat automatický import modulů, použijte proměnnou $PSModuleAutoLoadingPreference předvolby. Další informace najdete v tématu about_Preference_Variables.

Příklad 6: Získání syntaxe rutiny

Tento příkaz používá parametry ArgumentList a Syntax k získání syntaxe Get-ChildItem rutiny při použití v jednotce Cert: . Jednotka Cert: je jednotka PowerShellu, kterou poskytovatel certifikátu přidá do relace.

Get-Command Get-Childitem -Args Cert: -Syntax

Když porovnáte syntaxi zobrazenou ve výstupu se syntaxí, která se zobrazí při vynechání parametru Args (ArgumentList), uvidíte, že zprostředkovatel certifikátu přidá do Get-ChildItem rutiny dynamický parametr CodeSigningCert.

Další informace o poskytovateli certifikátů najdete v tématu about_Certificate_Provider.

Příklad 7: Získání dynamických parametrů

Příkaz v příkladu používá Get-DynamicParameters funkci k získání dynamických parametrů, které zprostředkovatel certifikátu přidá do Get-ChildItem rutiny při použití v jednotce Cert: .

function Get-DynamicParameters
{
    param ($Cmdlet, $PSDrive)
    (Get-Command $Cmdlet -ArgumentList $PSDrive).ParameterSets | ForEach-Object {$_.Parameters} | Where-Object { $_.IsDynamic } | Select-Object -Property Name -Unique
}
Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:

Name
----
CodeSigningCert

Funkce Get-DynamicParameters v tomto příkladu získá dynamické parametry rutiny. Toto je alternativa k metodě použité v předchozím příkladu. Dynamický parametr může do rutiny přidat jiná rutina nebo poskytovatel.

Příklad 8: Získání všech příkazů všech typů

Tento příkaz získá všechny příkazy všech typů v místním počítači, včetně spustitelných souborů v cestě proměnné prostředí Path ($env:path).

Get-Command *

Vrátí objekt ApplicationInfo (System.Management.Automation.ApplicationInfo) pro každý soubor, nikoli objekt FileInfo (System.IO.FileInfo).

Příklad 9: Získání rutin pomocí názvu

Tento příkaz získá rutiny, které mají parametr, jehož název zahrnuje Auth a jejichž typ je AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

Pomocí příkazu, jako je tento, můžete najít rutiny, které vám umožní určit metodu, která se použije k ověření uživatele.

Parametr ParameterType rozlišuje parametry, které přebírají hodnotu AuthenticationMechanism , od těch, které přebírají parametr AuthenticationLevel , i když mají podobné názvy.

Příklad 10: Získání aliasu

Tento příklad ukazuje, jak použít rutinu Get-Command s aliasem.

Get-Command dir

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           dir -> Get-ChildItem

I když se obvykle používá v rutinách a funkcích, Get-Command získá také skripty, funkce, aliasy a spustitelné soubory.

Výstup příkazu zobrazuje speciální zobrazení hodnoty vlastnosti Name pro aliasy. V zobrazení se zobrazí alias a úplný název příkazu.

Příklad 11: Získání všech instancí příkazu Poznámkového bloku

Tento příklad používá parametr Get-CommandAll rutiny k zobrazení všech instancí příkazu Poznámkový blok v místním počítači.

Get-Command Notepad -All | Format-Table CommandType, Name, Definition

CommandType     Name           Definition
-----------     ----           ----------
Application     notepad.exe    C:\WINDOWS\system32\notepad.exe
Application     NOTEPAD.EXE    C:\WINDOWS\NOTEPAD.EXE

Parametr All je užitečný, pokud je v relaci více než jeden příkaz se stejným názvem.

Počínaje Windows PowerShell 3.0 ve výchozím nastavení, pokud relace obsahuje více příkazů se stejným názvem, získá pouze příkaz, Get-Command který se spustí při zadání názvu příkazu. Pomocí parametru Get-CommandAll získá všechny příkazy se zadaným názvem a vrátí je v pořadí priority provádění. Pokud chcete spustit jiný příkaz než první příkaz v seznamu, zadejte plně kvalifikovanou cestu k příkazu.

Další informace o prioritě příkazů najdete v tématu about_Command_Precedence.

Příklad 12: Získání názvu modulu, který obsahuje rutinu

Tento příkaz získá název modulu, ze kterého rutina Get-Date pochází. Příkaz používá vlastnost ModuleName všech příkazů.

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

Tento formát příkazu funguje s příkazy v modulech PowerShellu, i když se do relace neimportují.

Příklad 13: Získání rutin a funkcí, které mají typ výstupu

Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType

Tento příkaz získá rutiny a funkce, které mají výstupní typ a typ objektů, které vrací.

První část příkazu získá všechny rutiny. Operátor kanálu (|) odešle rutiny do Where-Object rutiny, která vybere pouze ty, ve kterých je naplněna vlastnost OutputType . Jiný operátor kanálu odešle vybrané objekty rutiny do Format-List rutiny, která zobrazí název a typ výstupu každé rutiny v seznamu.

Vlastnost OutputType objektu CommandInfo má hodnotu nenulovou pouze v případě, že kód rutiny definuje atribut OutputType pro rutinu.

Příklad 14: Získání rutin, které jako vstup přebírají konkrétní typ objektu

Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Disable-NetAdapter                                 NetAdapter
Function        Enable-NetAdapter                                  NetAdapter
Function        Rename-NetAdapter                                  NetAdapter
Function        Restart-NetAdapter                                 NetAdapter
Function        Set-NetAdapter                                     NetAdapter

Tento příkaz vyhledá rutiny, které jako vstup přebírají objekty net adapter. Tento formát příkazu můžete použít k vyhledání rutin, které přijímají typ objektů, které jakýkoli příkaz vrací.

Příkaz používá vnitřní vlastnost PSTypeNames všech objektů, která získá typy, které popisují objekt. Aby příkaz získal vlastnost PSTypeNames síťového adaptéru, nikoli vlastnost PSTypeNames kolekce síťových adaptérů, pomocí maticové notace získá první síťový adaptér, který rutina vrátí. Aby příkaz získal vlastnost PSTypeNames síťového adaptéru, nikoli vlastnost PSTypeNames kolekce síťových adaptérů, pomocí maticové notace získá první síťový adaptér, který rutina vrátí.

Parametry

-All

Označuje, že tato rutina získá všechny příkazy, včetně příkazů stejného typu, které mají stejný název. Ve výchozím nastavení získá pouze příkazy, Get-Command které se spustí při zadání názvu příkazu.

Další informace o metodě, kterou PowerShell používá k výběru příkazu, který se má spustit, když má více příkazů stejný název, najdete v tématu about_Command_Precedence. Informace o názvech příkazů kvalifikovaných pro modul a spuštěných příkazech, které se ve výchozím nastavení nespouštějí kvůli konfliktu názvů, najdete v tématu about_Modules.

Tento parametr byl zaveden v Windows PowerShell 3.0.

V Windows PowerShell 2.0 Get-Command získá ve výchozím nastavení všechny příkazy.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ArgumentList

Určuje pole argumentů. Tato rutina získá informace o rutině nebo funkci při použití se zadanými parametry ("argumenty"). Alias argumentu ArgumentList je Args.

Chcete-li zjistit dynamické parametry, které jsou k dispozici pouze při použití určitých dalších parametrů, nastavte hodnotu ArgumentList na parametry, které aktivují dynamické parametry.

Pokud chcete zjistit dynamické parametry, které zprostředkovatel přidá do rutiny, nastavte hodnotu parametru ArgumentList na cestu v jednotce zprostředkovatele, například WSMan:, HKLM:, nebo Cert:. Pokud je příkaz rutinou zprostředkovatele PowerShellu, zadejte do každého příkazu jenom jednu cestu. Rutiny zprostředkovatele vrací pouze dynamické parametry pro první cestu hodnotu ArgumentList. Informace o rutinách zprostředkovatele najdete v tématu about_Providers.

Type:Object[]
Aliases:Args
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandType

Určuje typy příkazů, které tato rutina získá. Zadejte jeden nebo více typů příkazů. Použijte CommandType nebo jeho alias Type. Ve výchozím nastavení Get-Command získá všechny rutiny, funkce a aliasy.

Tento parametr přijímá tyto hodnoty:

  • Alias. Získá aliasy všech příkazů PowerShellu. Další informace najdete v tématu about_Aliases.
  • Všechny. Získá všechny typy příkazů. Tato hodnota parametru je ekvivalentem Get-Command *hodnoty .
  • Aplikace. Získá jiné než powershellové soubory v cestách uvedených v proměnné prostředí Path ($env:path), včetně souborů .txt, .exe a .dll. Další informace o proměnné prostředí Path najdete v tématu about_Environment_Variables.
  • Rutina. Získá všechny rutiny.
  • ExternalScript. Získá všechny soubory .ps1 v cestách uvedených v proměnné prostředí Path ($env:cesta).
  • Filtr a funkce. Získá všechny pokročilé a jednoduché funkce a filtry PowerShellu.
  • Skript. Získá všechny bloky skriptu. Pokud chcete získat skripty PowerShellu (.ps1 soubory), použijte hodnotu ExternalScript.
  • Pracovního postupu. Získá všechny pracovní postupy. Další informace o pracovních postupech najdete v tématu Představení pracovního postupu Windows PowerShell.
Type:CommandTypes
Aliases:Type
Accepted values:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FullyQualifiedModule

Určuje moduly s názvy, které jsou zadány ve formě ModuleSpecification objekty, které jsou popsány v části Poznámky ModuleSpecification Konstruktor (Hashtable). Například parametr FullyQualifiedModule přijímá název modulu zadaný v jednom z následujících formátů:

  • @{ModuleName = "modulename"; ModuleVersion = "version_number"}
  • @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}

ModuleName a ModuleVersion jsou povinné, ale identifikátor GUID je volitelný.

Parametr FullyQualifiedModule nelze zadat ve stejném příkazu jako parametr modulu . Oba parametry se vzájemně vylučují.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ListImported

Označuje, že tato rutina získá pouze příkazy v aktuální relaci.

Počínaje PowerShellem 3.0 se ve výchozím nastavení Get-Command získávají všechny nainstalované příkazy, včetně příkazů v aktuální relaci. V PowerShellu 2.0 získá jenom příkazy v aktuální relaci.

Tento parametr byl zaveden v Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Module

Určuje pole modulů. Tato rutina získá příkazy, které pocházejí ze zadaných modulů nebo modulů snap-in. Zadejte názvy modulů nebo modulů snap-in.

Tento parametr přebírá řetězcové hodnoty, ale hodnotou tohoto parametru může být také objekt PSModuleInfo nebo PSSnapinInfo , například objekty, které Get-Modulerutiny , Get-PSSnapina Import-PSSession vrací.

Na tento parametr můžete odkazovat jeho názvem Module nebo jeho aliasem PSSnapin. Název parametru, který zvolíte, nemá žádný vliv na výstup příkazu.

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Name

Určuje pole názvů. Tato rutina získá jenom příkazy, které mají zadaný název. Zadejte název nebo vzor názvu. Zástupné znaky jsou povolené.

Pokud chcete získat příkazy se stejným názvem, použijte parametr All . Pokud dva příkazy mají ve výchozím nastavení stejný název, získá příkaz, Get-Command který se spustí při zadání názvu příkazu.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Noun

Určuje pole podstatných jmen příkazů. Tato rutina získá příkazy, které zahrnují rutiny, funkce a aliasy s názvy, které obsahují zadané podstatné jméno. Zadejte jedno nebo více podstatných jmen nebo vzorů podstatných jmen. Zástupné znaky jsou povolené.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-ParameterName

Určuje pole názvů parametrů. Tato rutina získá příkazy v relaci, které mají zadané parametry. Zadejte názvy parametrů nebo aliasy parametrů. Zástupné znaky jsou podporovány.

Parametry ParameterName a ParameterType prohledávají pouze příkazy v aktuální relaci.

Tento parametr byl zaveden v Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ParameterType

Určuje pole názvů parametrů. Tato rutina získá v relaci příkazy, které mají parametry zadaného typu. Zadejte úplný název nebo částečný název typu parametru. Zástupné znaky jsou podporovány.

Parametry ParameterName a ParameterType prohledávají pouze příkazy v aktuální relaci.

Tento parametr byl zaveden v Windows PowerShell 3.0.

Type:PSTypeName[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ShowCommandInfo

Označuje, že tato rutina zobrazuje informace o příkazu.

Tento parametr byl zaveden v Windows PowerShell 5.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Syntax

Označuje, že tato rutina získá pouze následující zadaná data o příkazu:

  • Aliasy. Získá standardní název.
  • Rutin. Získá syntaxi.
  • Funkce a filtry. Získá definici funkce.
  • Skripty a aplikace nebo soubory. Získá cestu a název souboru.
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

Určuje počet příkazů, které se mají získat. Tento parametr můžete použít k omezení výstupu příkazu.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Verb

Určuje pole příkazových sloves. Tato rutina získá příkazy, mezi které patří rutiny, funkce a aliasy, které mají názvy, které obsahují zadané sloveso. Zadejte jedno nebo více sloves nebo vzorů sloves. Zástupné znaky jsou povolené.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Vstupy

String

Do této rutiny můžete zadat názvy příkazů.

Výstupy

CommandInfo

Tato rutina vrací objekty odvozené z třídy CommandInfo . Typ vráceného objektu závisí na typu příkazu, který Get-Command se získá.

AliasInfo

Představuje aliasy.

ApplicationInfo

Představuje aplikace a soubory.

CmdletInfo

Představuje rutiny.

FunctionInfo

Představuje funkce a filtry.

WorkflowInfo

Představuje pracovní postupy.

Poznámky

  • Pokud je pro relaci k dispozici více než jeden příkaz se stejným názvem, Get-Command vrátí příkaz, který se spustí při zadání názvu příkazu. Pokud chcete získat příkazy se stejným názvem, které jsou uvedené v pořadí spuštění, použijte parametr All . Další informace najdete v tématu about_Command_Precedence.
  • Při automatickém importu modulu je efekt stejný jako při použití rutiny Import-Module . Modul může přidávat příkazy, typy a formátovací soubory a spouštět skripty v relaci. Pokud chcete povolit, zakázat a nakonfigurovat automatický import modulů, použijte proměnnou $PSModuleAutoLoadingPreference předvolby. Další informace najdete v tématu about_Preference_Variables.