Get-Command

Hämtar alla kommandon.

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[]>]
   [-UseFuzzyMatching]
   [<CommonParameters>]

Description

Cmdleten Get-Command hämtar alla kommandon som är installerade på datorn, inklusive cmdletar, alias, funktioner, filter, skript och program. Get-Command hämtar kommandona från PowerShell-moduler och kommandon som har importerats från andra sessioner. Om du bara vill hämta kommandon som har importerats till den aktuella sessionen använder du parametern ListImported .

Utan parametrar Get-Command hämtar alla cmdletar, funktioner och alias installerade på datorn. Get-Command * hämtar alla typer av kommandon, inklusive alla icke-PowerShell-filer i variabeln Sökvägsmiljö ($env:Path), som visas i programkommandotypen.

Get-Command som använder det exakta namnet på kommandot, utan jokertecken, importerar automatiskt modulen som innehåller kommandot så att du kan använda kommandot omedelbart. Om du vill aktivera, inaktivera och konfigurera automatisk import av moduler använder du $PSModuleAutoLoadingPreference inställningsvariabeln. Mer information finns i about_Preference_Variables.

Get-Command hämtar sina data direkt från kommandokoden, till skillnad från Get-Help, som hämtar sin information från hjälpavsnitt.

Från och med Windows PowerShell 5.0 visar resultatet av cmdleten Get-Command en versionskolumn som standard. En ny versionegenskap har lagts till i klassen CommandInfo .

Exempel

Exempel 1: Hämta cmdletar, funktioner och alias

Det här kommandot hämtar PowerShell-cmdletar, funktioner och alias som är installerade på datorn.

Get-Command

Exempel 2: Hämta kommandon i den aktuella sessionen

Det här kommandot använder parametern ListImported för att endast hämta kommandona i den aktuella sessionen.

Get-Command -ListImported

Exempel 3: Hämta cmdletar och visa dem i ordning

Det här kommandot hämtar alla cmdletar, sorterar dem alfabetiskt efter substantiv i cmdletens namn och visar dem sedan i substantivbaserade grupper. Den här visningen kan hjälpa dig att hitta cmdletarna för en uppgift.

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

Exempel 4: Hämta kommandon i en modul

Det här kommandot använder modulparametern för att hämta kommandona i modulerna Microsoft.PowerShell.Security och Microsoft.PowerShell.Utility.

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

Exempel 5: Hämta information om en cmdlet

Det här kommandot hämtar information om cmdleten Get-AppLockerPolicy . Den importerar även AppLocker-modulen , som lägger till alla kommandon i AppLocker-modulen till den aktuella sessionen.

Get-Command Get-AppLockerPolicy

När en modul importeras automatiskt är effekten samma som med hjälp av cmdleten Import-Module. Modulen kan lägga till kommandon, typer och formateringsfiler och köra skript i sessionen. Om du vill aktivera, inaktivera och konfigurera automatisk import av moduler använder du $PSModuleAutoLoadingPreference inställningsvariabeln. Mer information finns i about_Preference_Variables.

Exempel 6: Hämta syntaxen för en cmdlet

Det här kommandot använder parametrarna ArgumentList och Syntax för att hämta cmdletens Get-ChildItem syntax när den används i cert:-enheten. Certifikatenheten: är en PowerShell-enhet som certifikatprovidern lägger till i sessionen.

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

När du jämför syntaxen som visas i utdata med syntaxen som visas när du utelämnar parametern Args (ArgumentList) ser du att certifikatprovidern lägger till en dynamisk parameter, CodeSigningCert, i cmdleten Get-ChildItem .

Mer information om certifikatprovidern finns i about_Certificate_Provider.

Exempel 7: Hämta dynamiska parametrar

Kommandot i exemplet använder Get-DynamicParameters funktionen för att hämta de dynamiska parametrar som certifikatprovidern lägger till i cmdleten Get-ChildItem när den används i cert:-enheten.

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

Funktionen Get-DynamicParameters i det här exemplet hämtar dynamiska parametrar för en cmdlet. Detta är ett alternativ till den metod som användes i föregående exempel. Dynamisk parameter kan läggas till i en cmdlet av en annan cmdlet eller en provider.

Exempel 8: Hämta alla kommandon av alla typer

Det här kommandot hämtar alla kommandon av alla typer på den lokala datorn, inklusive körbara filer i sökvägarna för variabeln Sökvägsmiljö ($env:path).

Get-Command *

Det returnerar ett ApplicationInfo-objekt (System.Management.Automation.ApplicationInfo) för varje fil, inte ett FileInfo-objekt (System.IO.FileInfo).

Exempel 9: Hämta cmdletar med hjälp av ett parameternamn och en typ

Det här kommandot hämtar cmdletar som har en parameter vars namn inkluderar Auth och vars typ är AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

Du kan använda ett kommando som det här för att hitta cmdletar som gör att du kan ange den metod som används för att autentisera användaren.

Parametern ParameterType skiljer parametrar som tar ett AuthenticationMechanism-värde från de som tar en AuthenticationLevel-parameter, även om de har liknande namn.

Exempel 10: Hämta ett alias

Det här exemplet visar hur du använder cmdleten Get-Command med ett alias.

Get-Command dir

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

Även om det vanligtvis används på cmdletar och funktioner, Get-Command hämtar även skript, funktioner, alias och körbara filer.

Kommandots utdata visar den särskilda vyn för egenskapsvärdet Namn för alias. Vyn visar aliaset och det fullständiga kommandonamnet.

Exempel 11: Hämta alla instanser av kommandot Anteckningar

I det här exemplet används parametern Alla för cmdleten Get-Command för att visa alla instanser av kommandot "Anteckningar" på den lokala datorn.

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

Parametern Alla är användbar när det finns fler än ett kommando med samma namn i sessionen.

Från och med Windows PowerShell 3.0 får sessionen som standard endast det kommando som körs när du skriver kommandonamnet när sessionen innehåller flera kommandon med samma namnGet-Command. Med parametern Get-CommandAlla hämtar du alla kommandon med det angivna namnet och returnerar dem i körningsprioritetsordning. Om du vill köra ett annat kommando än det första i listan skriver du den fullständigt kvalificerade sökvägen till kommandot.

Mer information om kommandoprioritet finns i about_Command_Precedence.

Exempel 12: Hämta namnet på en modul som innehåller en cmdlet

Det här kommandot hämtar namnet på modulen där cmdleten Get-Date har sitt ursprung. Kommandot använder egenskapen ModuleName för alla kommandon.

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

Det här kommandoformatet fungerar på kommandon i PowerShell-moduler, även om de inte importeras till sessionen.

Exempel 13: Hämta cmdletar och funktioner som har en utdatatyp

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

Det här kommandot hämtar de cmdletar och funktioner som har en utdatatyp och den typ av objekt som de returnerar.

Den första delen av kommandot hämtar alla cmdletar. En pipelineoperator (|) skickar cmdletarna till cmdleten Where-Object , som endast väljer de som egenskapen OutputType är ifylld i. En annan pipelineoperator skickar de valda cmdlet-objekten till cmdleten Format-List , som visar namn och utdatatyp för varje cmdlet i en lista.

Egenskapen OutputType för ett CommandInfo-objekt har endast ett värde som inte är null när cmdlet-koden definierar attributet OutputType för cmdleten.

Exempel 14: Hämta cmdletar som använder en viss objekttyp som indata

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

Det här kommandot hittar cmdletar som tar net adapter-objekt som indata. Du kan använda det här kommandoformatet för att hitta de cmdletar som accepterar den typ av objekt som ett kommando returnerar.

Kommandot använder den inbyggda egenskapen PSTypeNames för alla objekt, som hämtar de typer som beskriver objektet. För att hämta egenskapen PSTypeNames för ett nätkort, och inte egenskapen PSTypeNames för en samling nätkort, använder kommandot matrisnotation för att hämta det första nettokortet som cmdleten returnerar.

Exempel 15: Hämta kommandon med en fuzzy-matchning

I det här exemplet har namnet på kommandot avsiktligt ett skrivfel som "get-commnd". Med hjälp av växeln -UseFuzzyMatching fastställde cmdleten att den bästa matchningen följdes Get-Command av andra interna kommandon i systemet som var en liknande matchning.

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

Parametrar

-All

Anger att denna cmdlet hämtar alla kommandon, inklusive kommandon av samma typ som har samma namn. Som standard Get-Command hämtar endast de kommandon som körs när du skriver kommandonamnet.

Mer information om den metod som PowerShell använder för att välja kommandot som ska köras när flera kommandon har samma namn finns i about_Command_Precedence. Information om modulkvalificerade kommandonamn och kommandon som inte körs som standard på grund av en namnkonflikt finns i about_Modules.

Den här parametern introducerades i Windows PowerShell 3.0.

I Windows PowerShell 2.0 Get-Command hämtar alla kommandon som standard.

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

-ArgumentList

Anger en matris med argument. Den här cmdleten hämtar information om en cmdlet eller funktion när den används med de angivna parametrarna ("argument"). Aliaset för ArgumentList är Args.

Om du vill identifiera dynamiska parametrar som endast är tillgängliga när vissa andra parametrar används anger du värdet för ArgumentList till de parametrar som utlöser de dynamiska parametrarna.

Om du vill identifiera de dynamiska parametrar som en provider lägger till i en cmdlet anger du värdet för parametern ArgumentList till en sökväg i providerenheten, till exempel WSMan:, HKLM:eller Cert:. När kommandot är en PowerShell-provider-cmdlet anger du bara en sökväg i varje kommando. Provider-cmdletarna returnerar endast de dynamiska parametrarna för den första sökvägen till värdet för ArgumentList. Information om provider-cmdletar finns i about_Providers.

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

-CommandType

Anger vilka typer av kommandon som denna cmdlet hämtar. Ange en eller flera kommandotyper. Använd CommandType eller dess alias, Typ. Som standard Get-Command hämtar alla cmdletar, funktioner och alias.

De acceptabla värdena för den här parametern är:

  • Alias. Hämtar alias för alla PowerShell-kommandon. Mer information finns i about_Aliases.
  • Alla. Hämtar alla kommandotyper. Det här parametervärdet motsvarar Get-Command *.
  • Program. Hämtar icke-PowerShell-filer i sökvägar som anges i miljövariabeln Sökväg ($env:path), inklusive .txt-, .exe- och .dll-filer. Mer information om miljövariabeln Sökväg finns i about_Environment_Variables.
  • Cmdlet. Hämtar alla cmdletar.
  • ExternalScript. Hämtar alla .ps1 filer i sökvägarna som anges i miljövariabeln Sökväg ($env:path).
  • Filter och funktion. Hämtar alla avancerade och enkla funktioner och filter i PowerShell.
  • Skript. Hämtar alla skriptblock. Om du vill hämta PowerShell-skript (.ps1 filer) använder du värdet ExternalScript.
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

Anger moduler med namn som anges i form av ModuleSpecification-objekt , som beskrivs i avsnittet Anmärkningar i ModuleSpecification Constructor (Hashtable). Parametern FullyQualifiedModule accepterar till exempel ett modulnamn som anges i något av följande format:

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

ModuleName och ModuleVersion krävs, men Guid är valfritt.

Du kan inte ange parametern FullyQualifiedModule i samma kommando som en modulparameter . De två parametrarna utesluter varandra.

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

-ListImported

Anger att denna cmdlet endast hämtar kommandon i den aktuella sessionen.

Från och med PowerShell 3.0 hämtar som standard Get-Command alla installerade kommandon, inklusive, men inte begränsat till, kommandona i den aktuella sessionen. I PowerShell 2.0 hämtas endast kommandon i den aktuella sessionen.

Den här parametern introducerades i Windows PowerShell 3.0.

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

-Module

Anger en matris med moduler. Den här cmdleten hämtar de kommandon som kom från de angivna modulerna. Ange namnen på moduler eller modulobjekt.

Den här parametern tar strängvärden, men värdet för den här parametern kan också vara ett PSModuleInfo-objekt , till exempel de objekt som Get-Module cmdletarna och Import-PSSession returnerar.

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

-Name

Anger en matris med namn. Den här cmdleten hämtar endast kommandon som har det angivna namnet. Ange ett namn- eller namnmönster. Jokertecken tillåts.

Om du vill hämta kommandon som har samma namn använder du parametern Alla . När två kommandon har samma namn hämtar som standard Get-Command kommandot som körs när du skriver kommandonamnet.

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

-Noun

Anger en matris med kommando substantiv. Den här cmdleten hämtar kommandon, som omfattar cmdletar, funktioner och alias, som har namn som innehåller det angivna substantivet. Ange ett eller flera substantiv- eller substantivmönster. Jokertecken tillåts.

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

-ParameterName

Anger en matris med parameternamn. Den här cmdleten hämtar kommandon i sessionen som har de angivna parametrarna. Ange parameternamn eller parameteralias. Jokertecken stöds.

Parametrarna ParameterName och ParameterType söker bara efter kommandon i den aktuella sessionen.

Den här parametern introducerades i Windows PowerShell 3.0.

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

-ParameterType

Anger en matris med parameternamn. Den här cmdleten hämtar kommandon i sessionen som har parametrar av den angivna typen. Ange det fullständiga namnet eller det partiella namnet på en parametertyp. Jokertecken stöds.

Parametrarna ParameterName och ParameterType söker bara efter kommandon i den aktuella sessionen.

Den här parametern introducerades i Windows PowerShell 3.0.

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

-ShowCommandInfo

Anger att denna cmdlet visar kommandoinformation.

Den här parametern introducerades i Windows PowerShell 5.0.

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

-Syntax

Anger att denna cmdlet endast hämtar följande angivna data om kommandot:

  • Alias. Hämtar standardnamnet.
  • Cmdlets. Hämtar syntaxen.
  • Funktioner och filter. Hämtar funktionsdefinitionen.
  • Skript och program eller filer. Hämtar sökvägen och filnamnet.
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

Anger antalet kommandon som ska hämtas. Du kan använda den här parametern för att begränsa utdata för ett kommando.

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

-UseFuzzyMatching

Anger att du använder en fuzzy-matchningsalgoritm när du söker efter kommandon. Utdataordningen är från närmaste matchning till minsta sannolika matchning. Jokertecken bör inte användas med fuzzy-matchning eftersom det försöker matcha kommandon som kan innehålla dessa jokertecken.

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

-Verb

Anger en matris med kommandoverb. Den här cmdleten hämtar kommandon, som innehåller cmdletar, funktioner och alias, som har namn som innehåller det angivna verbet. Ange ett eller flera verb- eller verbmönster. Jokertecken tillåts.

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

Indata

String

Du kan skicka kommandonamn till den här cmdleten.

Utdata

CommandInfo

Den här cmdleten returnerar objekt som härletts från klassen CommandInfo . Vilken typ av objekt som returneras beror på vilken typ av kommando som Get-Command hämtas.

AliasInfo

Representerar alias.

ApplicationInfo

Representerar program och filer.

CmdletInfo

Representerar cmdletar.

FunctionInfo

Representerar funktioner och filter.

Kommentarer

  • När fler än ett kommando med samma namn är tillgängligt för sessionen Get-Command returnerar det kommando som körs när du skriver kommandonamnet. Om du vill hämta kommandon som har samma namn, som anges i körningsordning, använder du parametern Alla . Mer information finns i about_Command_Precedence.
  • När en modul importeras automatiskt är effekten densamma som med cmdleten Import-Module . Modulen kan lägga till kommandon, typer och formateringsfiler och köra skript i sessionen. Om du vill aktivera, inaktivera och konfigurera automatisk import av moduler använder du $PSModuleAutoLoadingPreference inställningsvariabeln. Mer information finns i about_Preference_Variables.