Condividi tramite


Get-Command

Ottiene tutti i comandi.

Sintassi

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>]

Descrizione

Il Get-Command cmdlet ottiene tutti i comandi installati nel computer, inclusi cmdlet, alias, funzioni, filtri, script e applicazioni. Get-Command ottiene i comandi dai moduli e dai comandi di PowerShell importati da altre sessioni. Per ottenere solo i comandi che sono stati importati nella sessione corrente, usare il parametro ListImported.

Senza parametri, Get-Command ottiene tutti i cmdlet, le funzioni e gli alias installati nel computer. Get-Command * ottiene tutti i tipi di comandi, inclusi tutti i file non PowerShell nella variabile di ambiente Path ($env:Path), che elenca nel tipo di comando Application.

Get-Command che usa il nome esatto del comando, senza caratteri jolly, importa automaticamente il modulo che contiene il comando in modo da poter usare immediatamente il comando. Per abilitare, disabilitare e configurare l'importazione automatica dei moduli, usare la $PSModuleAutoLoadingPreference variabile di preferenza. Per altre informazioni, vedere about_Preference_Variables.

Get-Command ottiene i dati direttamente dal codice del comando, a differenza Get-Helpdi , che ottiene le informazioni dagli argomenti della Guida.

A partire da Windows PowerShell 5.0, i risultati del Get-Command cmdlet visualizzano una colonna Version per impostazione predefinita. È stata aggiunta una nuova proprietà Version alla classe CommandInfo .

Esempio

Esempio 1: Ottenere cmdlet, funzioni e alias

Questo comando ottiene i cmdlet, le funzioni e gli alias di PowerShell installati nel computer.

Get-Command

Esempio 2: Ottenere i comandi nella sessione corrente

Questo comando usa il parametro ListImported per ottenere solo i comandi nella sessione corrente.

Get-Command -ListImported

Esempio 3: Ottenere i cmdlet e visualizzarli nell'ordine

Questo comando ottiene tutti i cmdlet, li dispone in ordine alfabetico in base al sostantivo incluso nel nome del cmdlet e li visualizza in gruppi basati sui sostantivi. Questa visualizzazione consente di individuare i cmdlet per un'attività.

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

Esempio 4: Ottenere i comandi in un modulo

Questo comando usa il parametro Module per ottenere i comandi nei moduli Microsoft.PowerShell.Security e Microsoft.PowerShell.Utility.

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

Esempio 5: Ottenere informazioni su un cmdlet

Questo comando ottiene informazioni sul Get-AppLockerPolicy cmdlet . Importa anche il modulo AppLocker, che aggiunge tutti i comandi nel modulo AppLocker alla sessione corrente.

Get-Command Get-AppLockerPolicy

Quando un modulo viene importato automaticamente, l'effetto corrisponde all'uso del cmdlet Import-Module. Il modulo può aggiungere comandi, tipi e file di formattazione ed eseguire script nella sessione. Per abilitare, disabilitare e configurare l'importazione automatica dei moduli, usare la $PSModuleAutoLoadingPreference variabile di preferenza. Per altre informazioni, vedere about_Preference_Variables.

Esempio 6: Ottenere la sintassi di un cmdlet

Questo comando usa i parametri ArgumentList e Syntax per ottenere la sintassi del Get-ChildItem cmdlet quando viene usato nell'unità Cert: . L'unità Cert: è un'unità di PowerShell che il provider di certificati aggiunge alla sessione.

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

Quando si confronta la sintassi visualizzata nell'output con la sintassi visualizzata quando si omette il parametro Args (ArgumentList), si noterà che il provider di certificati aggiunge un parametro dinamico, CodeSigningCert, al Get-ChildItem cmdlet .

Per altre informazioni sul provider di certificati, vedere about_Certificate_Provider.

Esempio 7: Ottenere parametri dinamici

Il comando nell'esempio usa la Get-DynamicParameters funzione per ottenere i parametri dinamici aggiunti dal provider di certificati al Get-ChildItem cmdlet quando viene usato nell'unità 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

La Get-DynamicParameters funzione in questo esempio ottiene i parametri dinamici di un cmdlet. Si tratta di un'alternativa rispetto al metodo usato nell'esempio precedente. I parametri dinamici possono essere aggiunti a un cmdlet da un altro cmdlet o da un provider.

Esempio 8: Ottenere tutti i comandi di tutti i tipi

Questo comando ottiene tutti i comandi di tutti i tipi nel computer locale, inclusi i file eseguibili nei percorsi della variabile di ambiente Path ($env:path).

Get-Command *

Restituisce un oggetto ApplicationInfo (System.Management.Automation.ApplicationInfo) per ogni file, non un oggetto FileInfo (System.IO.FileInfo).

Esempio 9: Ottenere i cmdlet usando un nome

Questo comando ottiene i cmdlet con un parametro il cui nome include Auth e il cui tipo è AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

È possibile usare un comando simile a questo per trovare i cmdlet che consentono di specificare il metodo usato per autenticare l'utente.

Il parametro ParameterType distingue i parametri che accettano un valore AuthenticationMechanism da quelli che accettano un parametro AuthenticationLevel anche quando presentano nomi simili.

Esempio 10: Ottenere un alias

In questo esempio viene illustrato come usare il Get-Command cmdlet con un alias.

Get-Command dir

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

Anche se viene in genere usato nei cmdlet e nelle funzioni, Get-Command ottiene anche script, funzioni, alias e file eseguibili.

L'output del comando mostra la visualizzazione speciale del valore della proprietà Name per gli alias. La visualizzazione mostra l'alias e il nome del comando completo.

Esempio 11: Ottenere tutte le istanze del comando Blocco note

In questo esempio viene utilizzato il parametro All del Get-Command cmdlet per visualizzare tutte le istanze del comando "Blocco note" nel computer locale.

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

Il parametro All risulta utile quando esistono più comandi con lo stesso nome nella sessione.

A partire da Windows PowerShell 3.0, per impostazione predefinita, quando la sessione include più comandi con lo stesso nome, Get-Command ottiene solo il comando eseguito quando si digita il nome del comando. Con il parametro All , Get-Command ottiene tutti i comandi con il nome specificato e li restituisce nell'ordine di precedenza dell'esecuzione. Per eseguire un comando diverso dal primo nell'elenco, digitare il percorso completo del comando.

Per altre informazioni sulla precedenza dei comandi, vedere about_Command_Precedence.

Esempio 12: Ottenere il nome di un modulo che contiene un cmdlet

Questo comando ottiene il nome del modulo in cui ha avuto origine il Get-Date cmdlet. Il comando usa la proprietà ModuleName di tutti i comandi.

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

Questo formato di comando funziona sui comandi nei moduli di PowerShell, anche se non vengono importati nella sessione.

Esempio 13: Ottenere cmdlet e funzioni con un tipo di output

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

Questo comando ottiene i cmdlet e le funzioni per i quali sono stati definiti un tipo di output e il tipo di oggetti che vengono restituiti.

La prima parte del comando ottiene tutti i cmdlet. Un operatore pipeline (|) invia i cmdlet al Where-Object cmdlet , che seleziona solo quelli in cui viene popolata la proprietà OutputType . Un altro operatore pipeline invia gli oggetti cmdlet selezionati al Format-List cmdlet , che visualizza il nome e il tipo di output di ogni cmdlet in un elenco.

La proprietà OutputType di un oggetto CommandInfo ha un valore non null solo quando il codice del cmdlet definisce l'attributo OutputType per il cmdlet.

Esempio 14: Ottenere i cmdlet che accettano un tipo di oggetto specifico come input

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

Questo comando consente di trovare i cmdlet che accettano oggetti scheda di rete come input. È possibile usare questo formato di comando per trovare i cmdlet che accettano il tipo di oggetti restituito da qualsiasi comando.

Il comando usa la proprietà intrinseca PSTypeNames di tutti gli oggetti, che ottiene i tipi che descrivono l'oggetto. Per ottenere la proprietà PSTypeNames di una scheda di rete e non la proprietà PSTypeNames di una raccolta di schede di rete, il comando usa una notazione di matrice per ottenere la prima scheda di rete restituita dal cmdlet. Per ottenere la proprietà PSTypeNames di una scheda di rete e non la proprietà PSTypeNames di una raccolta di schede di rete, il comando usa una notazione di matrice per ottenere la prima scheda di rete restituita dal cmdlet.

Parametri

-All

Indica che questo cmdlet ottiene tutti i comandi, inclusi i comandi dello stesso tipo con lo stesso nome. Per impostazione predefinita, Get-Command ottiene solo i comandi eseguiti quando si digita il nome del comando.

Per altre informazioni sul metodo usato da PowerShell per selezionare il comando da eseguire quando più comandi hanno lo stesso nome, vedere about_Command_Precedence. Per informazioni sui nomi dei comandi qualificati dal modulo e sull'esecuzione di comandi che non vengono eseguiti per impostazione predefinita a causa di un conflitto di nomi, vedere about_Modules.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

In Windows PowerShell 2.0 ottiene Get-Command tutti i comandi per impostazione predefinita.

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

-ArgumentList

Specifica una matrice di argomenti. Questo cmdlet ottiene informazioni su un cmdlet o una funzione quando viene usata con i parametri specificati ("argomenti"). L'alias per ArgumentList è Args.

Per rilevare i parametri dinamici disponibili solo quando vengono usati determinati altri parametri, impostare il valore di ArgumentList sui parametri che attivano i parametri dinamici.

Per rilevare i parametri dinamici aggiunti da un provider a un cmdlet, impostare il valore del parametro ArgumentList su un percorso nell'unità del provider, ad esempio WSMan:, HKLM:o Cert:. Quando il comando è un cmdlet del provider di PowerShell, immettere un solo percorso in ogni comando. I cmdlet del provider restituiscono solo i parametri dinamici per il primo percorso il valore di ArgumentList. Per informazioni sui cmdlet del provider, vedere about_Providers.

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

-CommandType

Specifica i tipi di comandi che ottiene questo cmdlet. Immettere uno o più tipi di comando. Usare CommandType o il relativo alias Type. Per impostazione predefinita, Get-Command ottiene tutti i cmdlet, le funzioni e gli alias.

I valori validi per questo parametro sono:

  • Alias. Ottiene gli alias di tutti i comandi di PowerShell. Per altre informazioni, vedere about_Aliases.
  • Tutti. Ottiene tutti i tipi di comando. Questo valore di parametro è l'equivalente di Get-Command *.
  • Application. Ottiene file non PowerShell nei percorsi elencati nella variabile di ambiente Path ($env:path), inclusi .txt, .exe e .dll file. Per altre informazioni sulla variabile di ambiente Path , vedere about_Environment_Variables.
  • Cmdlet. Ottiene tutti i cmdlet.
  • ExternalScript. Ottiene tutti i file con estensione ps1 nei percorsi elencati nella variabile di ambiente Path ($env:path).
  • Filtro e funzione. Ottiene tutte le funzioni e i filtri avanzati e semplici di PowerShell.
  • Script. Ottiene tutti i blocchi di script. Per ottenere script di PowerShell (.ps1 file), usare il valore ExternalScript.
  • Flusso di lavoro. Ottiene tutti i flussi di lavoro. Per altre informazioni sui flussi di lavoro, vedere Introducing Windows PowerShell Workflow.
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

Specifica i moduli con nomi specificati sotto forma di oggetti ModuleSpecification , descritti nella sezione Osservazioni del costruttore ModuleSpecification (Hashtable). Ad esempio, il parametro FullyQualifiedModule accetta un nome di modulo specificato in uno dei formati seguenti:

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

ModuleName e ModuleVersion sono obbligatori, mentre Guid è facoltativo.

Non è possibile specificare il parametro FullyQualifiedModule nello stesso comando di un parametro Module . I due parametri si escludono a vicenda.

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

-ListImported

Indica che questo cmdlet ottiene solo i comandi nella sessione corrente.

A partire da PowerShell 3.0, per impostazione predefinita, Get-Command ottiene tutti i comandi installati, inclusi, ma non solo, i comandi nella sessione corrente. In PowerShell 2.0 ottiene solo i comandi nella sessione corrente.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-Module

Specifica una matrice di moduli. Questo cmdlet ottiene i comandi provenienti dai moduli o dagli snap-in specificati. Immettere i nomi dei moduli o degli snap-in.

Questo parametro accetta valori stringa, ma il valore di questo parametro può anche essere un oggetto PSModuleInfo o PSSnapinInfo , ad esempio gli oggetti restituiti dai Get-Modulecmdlet , Get-PSSnapine Import-PSSession .

È possibile fare riferimento a questo parametro in base al relativo nome Module, o al relativo alias, PSSnapin. Il nome del parametro che si sceglie non ha alcun effetto sull'output del comando.

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

-Name

Specifica una matrice di nomi. Questo cmdlet ottiene solo i comandi con il nome specificato. Immettere un nome o un modello di nome. I caratteri jolly sono consentiti.

Per ottenere i comandi con lo stesso nome, usare il parametro All. Quando due comandi hanno lo stesso nome, per impostazione predefinita, Get-Command ottiene il comando che viene eseguito quando si digita il nome del comando.

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

-Noun

Specifica una matrice di sostantivi di comando. Questo cmdlet ottiene i comandi, che includono cmdlet, funzioni e alias, con nomi che includono il sostantivo specificato. Immettere uno o più sostantivi o modelli di sostantivo. I caratteri jolly sono consentiti.

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

-ParameterName

Specifica una matrice di nomi di parametri. Questo cmdlet ottiene i comandi nella sessione con i parametri specificati. Immettere i nomi dei parametri o gli alias dei parametri. I carattere jolly sono supportati.

I parametri ParameterName e ParameterType cercano solo i comandi nella sessione corrente.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-ParameterType

Specifica una matrice di nomi di parametri. Questo cmdlet ottiene i comandi nella sessione con parametri del tipo specificato. Immettere il nome completo o parziale di un tipo di parametro. I carattere jolly sono supportati.

I parametri ParameterName e ParameterType cercano solo i comandi nella sessione corrente.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-ShowCommandInfo

Indica che questo cmdlet visualizza le informazioni sui comandi.

Questo parametro è stato introdotto in Windows PowerShell 5.0.

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

-Syntax

Indica che questo cmdlet ottiene solo i dati specificati seguenti relativi al comando:

  • Alias. Ottiene il nome standard.
  • Cmdlet. Ottiene la sintassi.
  • Funzioni e filtri. Ottiene la definizione della funzione.
  • Script e applicazioni o file. Ottiene il percorso e il nome file.
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

Specifica il numero di comandi da ottenere. È possibile usare questo parametro per limitare l'output di un comando.

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

-Verb

Specifica una matrice di verbi di comando. Questo cmdlet ottiene i comandi, che includono cmdlet, funzioni e alias, con nomi che includono il verbo specificato. Immettere uno o più verbi o modelli di verbo. I caratteri jolly sono consentiti.

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

Input

String

È possibile inviare tramite pipe i nomi dei comandi a questo cmdlet.

Output

CommandInfo

Questo cmdlet restituisce oggetti derivati dalla classe CommandInfo . Il tipo di oggetto restituito dipende dal tipo di comando che Get-Command ottiene.

AliasInfo

Rappresenta gli alias.

ApplicationInfo

Rappresenta applicazioni e file.

CmdletInfo

Rappresenta i cmdlet.

FunctionInfo

Rappresenta funzioni e filtri.

WorkflowInfo

Rappresenta i flussi di lavoro.

Note

  • Quando sono disponibili più comandi con lo stesso nome per la sessione, Get-Command restituisce il comando che viene eseguito quando si digita il nome del comando. Per ottenere i comandi con lo stesso nome, elencati nell'ordine di esecuzione, usare il parametro All . Per altre informazioni, vedere about_Command_Precedence.
  • Quando un modulo viene importato automaticamente, l'effetto equivale all'uso del Import-Module cmdlet . Il modulo può aggiungere comandi, tipi e file di formattazione ed eseguire script nella sessione. Per abilitare, disabilitare e configurare l'importazione automatica dei moduli, usare la $PSModuleAutoLoadingPreference variabile di preferenza. Per altre informazioni, vedere about_Preference_Variables.