Sdílet prostřednictvím


Get-Command

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

Syntaxe

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[]>]
   [-UseFuzzyMatching]
   [-FuzzyMinimumDistance <UInt32>]
   [-UseAbbreviationExpansion]
   [<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říkazů importovaných z jiných relací. Pokud chcete získat pouze příkazy importované 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 PowerShell v proměnné prostředí Cesta ($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 importuje 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á data přímo z příkazového kódu, na rozdíl od Get-Helptoho, který získá své informace z témat nápovědy.

Ve Windows PowerShellu 5.0 se ve výchozím nastavení ve výsledcích Get-Command rutiny 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, funkce a aliasy PowerShellu 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 jmenné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 pomocí parametru Module získá příkazy 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 . Také naimportuje modul AppLockeru , který do aktuální relace přidá všechny příkazy v modulu AppLockeru .

Get-Command Get-AppLockerPolicy

Když se modul naimportuje automaticky, efekt je stejný jako 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ředvoleb. 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 Syntaxe k získání syntaxe Get-ChildItem rutiny při použití v jednotce Cert: . Certifikát: jednotka je jednotka PowerShellu, kterou zprostředkovatel certifikátu přidá do relace.

Get-Command  -Name 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 Get-DynamicParameters používá 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 -Name $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 lze přidat do rutiny jinou rutinou nebo poskytovatelem.

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ů na 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 a typu parametru

Tento příkaz získá rutiny s parametrem, jehož název zahrnuje ověřování a jehož typ je AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

Pomocí podobného příkazu můžete najít rutiny, které umožňují zadat metodu použitou k ověření uživatele.

Parametr ParameterType rozlišuje parametry, které mají 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 -Name dir

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

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

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

Příklad 11: Získání syntaxe z aliasu

Tento příklad ukazuje, jak získat syntaxi spolu se standardním názvem aliasu.

Výstup příkazu zobrazí označený alias se standardním názvem a syntaxí.

Get-Command -Name dir -Syntax

dir (alias) -> Get-ChildItem

dir [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse]
[-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink]
[-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

dir [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse]
[-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink]
[-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

Příklad 12: Získání všech instancí příkazu Poznámkový blok

Tento příklad používá parametr All rutiny Get-Command k zobrazení všech instancí Notepad příkazu 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 v relaci existuje více než jeden příkaz se stejným názvem.

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

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

Příklad 13: 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 na příkazech v modulech PowerShellu, i když se do relace neimportují.

Příklad 14: Získání rutin a funkcí s výstupním typem

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 vlastnost OutputType naplněna. Jiný operátor kanálu odešle vybrané objekty rutiny Format-List do rutiny, která zobrazí název a výstupní typ každé rutiny v seznamu.

Vlastnost OutputType objektu CommandInfo má nenulovou hodnotu pouze tehdy, když kód rutiny definuje atribut OutputType pro rutinu.

Příklad 15: 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 najde rutiny, které jako vstup přebírají objekty net adapteru. Tento formát příkazu můžete použít k vyhledání rutin, které přijímají typ objektů, které vrací libovolný příkaz.

Příkaz používá vnitřní vlastnost PSTypeNames všech objektů, což získá typy popisované objektu. Pokud chcete získat vlastnost PSTypeNames adaptéru net, a ne vlastnost PSTypeNames kolekce síťových adaptérů, příkaz pomocí zápisu pole získá první síťový adaptér, který rutina vrátí.

Příklad 16: Získání příkazů pomocí přibližné shody

V tomto příkladu má název příkazu záměrně překlep "get-commnd". -UseFuzzyMatching Pomocí přepínače rutina zjistila, že nejlepší shoda byla Get-Command sledována dalšími nativními příkazy v systému, které byly podobné shody.

Get-Command get-commnd -UseFuzzyMatching

CommandType     Name             Version    Source
-----------     ----             -------    ------
Cmdlet          Get-Command      6.2.0.0    Microsoft.PowerShell.Core
Application     getconf          0.0.0.0    /usr/bin/getconf
Application     command          0.0.0.0    /usr/bin/command

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í se načte pouze příkazy, Get-Command které se spustí při zadání názvu příkazu.

Další informace o pořadí, ve které PowerShell hledá příkazy, najdete v tématu about_Command_Precedence. Informace o názvech příkazů kvalifikovaných pro modul a spouštění příkazů, které se nespouštějí ve výchozím nastavení kvůli konfliktu názvů, najdete v tématu about_Modules.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky: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 v případě použití určitých dalších parametrů, nastavte hodnotu ArgumentList na parametry, které aktivují dynamické parametry.

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

Typ:Object[]
Aliasy:Args
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky: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.

  • All: Získá všechny typy příkazů. Tato hodnota parametru je ekvivalentem .Get-Command *

  • Application: Prohledá složky v $env:PATH proměnné prostředí pro jiné spustitelné soubory než PowerShell. Ve Windows mají spustitelné soubory příponu souboru, která je uvedená v $env:PATHEXT proměnné prostředí. Další informace najdete v tématu about_Environment_Variables.

  • Cmdlet: Získá všechny rutiny.

  • ExternalScript: Získá všechny .ps1 soubory v cestách uvedených v proměnné prostředí Path ($env:PATH).

  • Filter a Function: Získá všechny pokročilé a jednoduché funkce a filtry PowerShellu.

  • Script: Získá všechny bloky skriptu. Pokud chcete získat skripty PowerShellu (.ps1 soubory), použijte ExternalScript hodnotu.

Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru CommandType jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru.

Typ:CommandTypes
Aliasy:Type
Přípustné hodnoty:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-FullyQualifiedModule

Hodnota může být název modulu, úplná specifikace modulu nebo cesta k souboru modulu.

Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní. Relativní cesta je vyřešena vzhledem ke skriptu, který obsahuje příkaz using.

Pokud je hodnota název nebo specifikace modulu, PowerShell vyhledá zadaný modul v psModulePath .

Specifikace modulu je hashovatelná tabulka s následujícími klíči.

  • ModuleName - Povinný argument Určuje název modulu.

  • GUID - Volitelné určuje identifikátor GUID modulu.

  • Je také povinné zadat aspoň jeden ze tří následujících klíčů.

    • ModuleVersion – Určuje minimální přijatelnou verzi modulu.

    • MaximumVersion – Určuje maximální přijatelnou verzi modulu.

    • RequiredVersion – Určuje přesnou požadovanou verzi modulu. Tuto možnost nelze použít s jinými klíči verze.

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

Typ:ModuleSpecification[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-FuzzyMinimumDistance

Tento parametr umožňuje filtrovat přibližné výsledky, aby byly více nebo méně přesné. Vzdálenost se vypočítá pomocí algoritmu Damerau Levenshtein Distance, který udává, kolik kroků odpovídá původní hodnotě. Menší vzdálenost je přesnější. Vzdálenost nuly je přesná shoda.

Typ:UInt32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ListImported

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

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

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Module

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

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

Typ:String[]
Aliasy:PSSnapin
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-Name

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

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

Typ:String[]
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-Noun

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

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-ParameterName

Určuje pole názvů parametrů. Tato rutina získá příkazy v relaci se zadanými parametry. Zadejte názvy parametrů nebo aliasy parametrů. Podporují se zástupné znaky.

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

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-ParameterType

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

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

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:PSTypeName[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-ShowCommandInfo

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

Tento parametr byl představen ve Windows PowerShellu 5.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Syntax

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

  • Aliasy. Získá standardní název.
  • Rutiny. Získá syntaxi.
  • Funkce a filtry Získá definici funkce.
  • Skripty a aplikace nebo soubory Získá cestu a název souboru.
Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky: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.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-UseAbbreviationExpansion

Označuje použití shody znaků v příkazu k vyhledání s velkými písmeny v příkazu. Například by se shodoval Import-PowerShellDataFile s jednotlivými znaky, i-psdf které by hledání odpovídaly velkými písmeny ve výsledku. Pokud použijete tento typ shody, nebudou mít žádné zástupné náčiní žádné shody.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-UseFuzzyMatching

Označuje použití přibližného odpovídajícího algoritmu při hledání příkazů. Pořadí výstupu je od nejbližší shody k nejméně pravděpodobné shodě. Zástupné znaky by neměly být použity se přibližnými shodami, protože se pokusí shodovat příkazy, které můžou obsahovat tyto zástupné znaky.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Verb

Určuje pole příkazů. Tato rutina získá příkazy, které zahrnují rutiny, funkce a aliasy, které obsahují názvy, které obsahují zadanou operaci. Zadejte jedno nebo více sloves nebo slovesných vzorů. Jsou povoleny zástupné znaky.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

Vstupy

String

K této rutině můžete generovat názvy příkazů.

Výstupy

CommandInfo

Tato rutina vrací objekty odvozené z CommandInfo třídy. Vrácený typ 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.

Poznámky

PowerShell obsahuje následující aliasy pro Get-Command:

  • Všechny platformy:

    • gcm
  • Pokud je pro relaci k dispozici více než jeden příkaz se stejným názvem, vrátí příkaz, Get-Command 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 Vše . Další informace najdete v tématu about_Command_Precedence.

  • Když se modul naimportuje automaticky, efekt je stejný jako 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ředvoleb. Další informace najdete v tématu about_Preference_Variables.