Riceve tutti i comandi.
Sintassi
Get-Command >] >] >] >] <Object>] >] >]
Get-Command <String>] >] >] <Object>] >] >]
Descrizione
La Get-Command
cmdlet ottiene tutti i comandi che sono installati sul computer, inclusi cmdlets, alias, funzioni, filtri, script e applicazioni. Get-Command
ottiene i comandi dai moduli PowerShell e i comandi che sono stati importati da altre sessioni. Per ottenere solo i comandi che sono stati importati nella sessione corrente, usa il parametro ListImported.
Senza parametri, Get-Command
ottiene tutti i cmdlets, funzioni e alias installati sul computer. Get-Command *
ottiene tutti i tipi di comandi, compresi 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 poterlo usare immediatamente. Per abilitare, disabilitare e configurare l’importazione automatica dei moduli, utilizzare la variabile di preferenza $PSModuleAutoLoadingPreference
. Per maggiori informazioni, vedere about_Preference_Variables.
Get-Command
ottiene i suoi dati direttamente dal codice del comando, diversamente da Get-Help
, che ottiene le sue informazioni dagli argomenti della guida.
A partire da Windows PowerShell 5.0, i risultati del Get-Command
cmdlet mostrano una colonna Version per default. Una nuova proprietà Version è stata aggiunta alla classe CommandInfo.
Esempi
Esempio 1: Ottieni cmdlet, funzioni e alias
Questo comando ottiene i cmdlet, le funzioni e gli alias PowerShell che sono installati sul computer.
Get-Command
Esempio 2: Ottieni i comandi nella sessione corrente
Questo comando usa il parametro ListImported per ottenere solo i comandi nella sessione corrente.
Get-Command -ListImported
Esempio 3: Ottieni i cmdlets e visualizzali in ordine
Questo comando ottiene tutti i cmdlets, li ordina in ordine alfabetico in base al nome del cmdlet, e poi li visualizza in gruppi basati sul nome. Questa visualizzazione può aiutarti a trovare i cmdlet per un compito.
Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
Esempio 4: Ottieni i comandi in un modulo
Questo comando usa il parametro Module per ottenere i comandi nelle sezioni Microsoft.PowerShell.Securitye Microsoft.PowerShell.Utility.
Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility
Esempio 5: Ottieni informazioni su un cmdlet
Questo comando ottiene informazioni sul Get-AppLockerPolicy
cmdlet. Importa anche il moduloAppLocker, che aggiunge tutti i comandi del modulo AppLocker alla currentsession.
Get-Command Get-AppLockerPolicy
Quando un modulo viene importato automaticamente, l’effetto è lo stesso dell’utilizzo 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, usate la variabile di preferenza $PSModuleAutoLoadingPreference
. Per maggiori informazioni, vedi 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à PowerShell che il fornitore di certificati aggiunge alla sessione.
Get-Command -Name Get-Childitem -Args Cert: -Syntax
Quando si confronta la sintassi visualizzata nell’output con la sintassi che viene visualizzata quando si omette il parametro Args (ArgumentList), si vedrà che il fornitore di certificati aggiunge un parametro dinamico, CodeSigningCert, alla Get-ChildItem
cmdlet.
Per maggiori informazioni sul fornitore di certificati, vedere about_Certificate_Provider.
Esempio 7: Ottenere i parametri dinamici
Il comando nell’esempio usa la funzione Get-DynamicParameters
per ottenere i parametri dinamici che il fornitore di certificati aggiunge alla Get-ChildItem
cmdlet quando viene usata nell’unità 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
La funzione Get-DynamicParameters
in questo esempio ottiene i parametri dinamici di un cmdlet. Questa è un’alternativa al metodo usato nell’esempio precedente. Il parametro dinamico può essere aggiunto ad 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 sul computer locale, compresi i file eseguibili nei percorsi della variabile di ambiente Path ($env:path
).
Get-Command *
Ritorna un oggetto ApplicationInfo (System.Management.Automation.ApplicationInfo) per ogni file, non un oggetto FileInfo (System.IO.FileInfo).
Esempio 9: Ottenere cmdlets utilizzando un nome e un tipo di parametro
Questo comando ottiene cmdlets che hanno un parametro il cui nome include Auth e il cui tipo èAuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Puoi usare un comando come questo per trovare le cmdlets che ti permettono di specificare il metodo usato per autenticare l’utente.
Il parametro ParameterType distingue i parametri che prendono un valore AuthenticationMechanism da quelli che prendono un parametro AuthenticationLevel, anche quando hanno nomi simili.
Esempio 10: Ottenere un alias
Questo esempio mostra come usare la cmdlet Get-Command
con un alias.
Get-Command -Name dirCommandType Name ModuleName----------- ---- ----------Alias dir -> Get-ChildItem
Anche se è tipicamente usato su cmdlet e funzioni, Get-Command
ottiene anche script, funzioni, alias e file eseguibili.
L’output del comando mostra la vista speciale del valore della proprietà Name per gli alias. La vista mostra l’alias e il nome completo del comando.
Esempio 11: ottenere la sintassi da un alias
Questo esempio mostra come ottenere la sintassi insieme al nome standard di un alias.
L’output del comando mostra l’alias etichettato con il nome standard, seguito dalla sintassi.
Get-Command -Name dir -Syntaxdir (alias) -> Get-ChildItemdir <string>] <string>] >] >] >] dir <string>] -LiteralPath <string> >] >] >]
Esempio 12: Ottenere tutte le istanze del comando Notepad
Questo esempio usa il parametro Tutti del Get-Command
cmdlet per mostrare tutte le istanze delNotepad
comando sul computer locale.
Get-Command Notepad -All | Format-Table CommandType, Name, DefinitionCommandType Name Definition----------- ---- ----------Application notepad.exe C:\WINDOWS\system32\notepad.exeApplication NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE
Il parametro All è utile quando c’è più di un comando con lo stesso nome nella sessione.
A partire da Windows PowerShell 3.0, per default, quando la sessione include più comandi con lo stesso nome, Get-Command
ottiene solo il comando che viene eseguito quando si scrive il nome del comando. Con il parametro All, Get-Command
ottiene tutti i comandi con il nome specificato e li restituisce in ordine di precedenza di esecuzione. Per eseguire un comando diverso dal primo della lista, digita il percorso completo del comando.
Per maggiori informazioni sulla precedenza dei comandi, vedi about_Command_Precedence.
Esempio 13: Ottenere il nome di un modulo che contiene un cmdlet
Questo comando ottiene il nome del modulo in cui il Get-Date
cmdlet ha origine.Il comando usa la proprietà ModuleName di tutti i comandi.
(Get-Command Get-Date).ModuleNameMicrosoft.PowerShell.Utility
Questo formato di comando funziona sui comandi nei moduli PowerShell, anche se non sono importati nella sessione.
Esempio 14: Ottieni cmdlets e funzioni che hanno un tipo di output
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
Questo comando ottiene i cmdlets e le funzioni che hanno un tipo di output e il tipo di oggetti che restituiscono.
La prima parte del comando ottiene tutti i cmdlets. Un operatore di pipeline (|
) invia i cmdlets alWhere-Object
cmdlet, che seleziona solo quelli in cui la proprietà OutputType è popolata. Un altro operatore della pipeline invia gli oggetti cmdlet selezionati al Format-List
cmdlet, che visualizza il nome e il tipo di output di ogni cmdlet in una lista.
La proprietà OutputType di un oggetto CommandInfo ha un valore non nullo solo quando il cmdletcode definisce l’attributo OutputType per il cmdlet.
Esempio 15: Ottieni i cmdlet che prendono un tipo di oggetto specifico come input
Get-Command -ParameterType (((Get-NetAdapter)).PSTypeNames)CommandType Name ModuleName----------- ---- ----------Function Disable-NetAdapter NetAdapterFunction Enable-NetAdapter NetAdapterFunction Rename-NetAdapter NetAdapterFunction Restart-NetAdapter NetAdapterFunction Set-NetAdapter NetAdapter
Questo comando trova i cmdlet che prendono come input gli oggetti net adapter. Puoi usare questo comando per trovare le cmdlets che accettano il tipo di oggetti che qualsiasi comando restituisce.
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 un adattatore di rete, e non la proprietàPSTypeNames di una collezione di adattatori di rete, il comando usa la notazione di array per ottenere il primo adattatore di rete che la cmdlet restituisce.
Esempio 16: Ottenere comandi usando una corrispondenza fuzzy
In questo esempio, il nome del comando ha deliberatamente un refuso come ‘get-commnd’.Usando lo switch -UseFuzzyMatching
, il cmdlet ha determinato che la migliore corrispondenza era Get-Command
seguita da altri comandi nativi sul sistema che avevano una corrispondenza simile.
Get-Command get-commnd -UseFuzzyMatchingCommandType Name Version Source----------- ---- ------- ------Cmdlet Get-Command 6.2.0.0 Microsoft.PowerShell.CoreApplication getconf 0.0.0.0 /usr/bin/getconfApplication command 0.0.0.0 /usr/bin/command
Parametri
Indica che questa cmdlet ottiene tutti i comandi, compresi quelli dello stesso tipo che hanno lo stesso nome. Per impostazione predefinita, Get-Command
ottiene solo i comandi che vengono eseguiti quando si digita il nome del comando.
Per maggiori informazioni sul metodo che PowerShell utilizza 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 default a causa di un conflitto di nome, vedi about_Modules.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
In Windows PowerShell 2.0, Get-Command
ottiene tutti i comandi per default.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Specifica un array di argomenti. Questo cmdlet ottiene informazioni su un cmdlet o una funzione quando viene utilizzato con i parametri specificati (“argomenti”). L’alias di ArgumentList è Args.
Per rilevare i parametri dinamici che sono disponibili solo quando vengono usati certi altri parametri, impostate il valore di ArgumentList sui parametri che attivano i parametri dinamici.
Per rilevare i parametri dinamici che un provider aggiunge a un cmdlet, impostate il valore del parametroArgumentList su un percorso nel drive del provider, come WSMan:, HKLM:, o Cert:. Quando il comando è una cmdlet del provider PowerShell, inserisci solo un percorso in ogni comando. Le cmdlet provider restituiscono solo i parametri dinamici per il primo percorso il valore di ArgumentList. Per informazioni sulle cmdlet provider, vedi about_Providers.
Tipo: | Oggetto |
Alias: | Args |
Posizione: | 1 |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Specifica i tipi di comandi che questa cmdlet riceve. Inserisci uno o più tipi di comando. UsaCommandType o il suo alias, Type. Per impostazione predefinita, Get-Command
ottiene tutti i cmdlet, le funzioni e gli alias.
I valori accettabili per questo parametro sono:
- Alias. Ottiene gli alias di tutti i comandi PowerShell. Per maggiori informazioni, vedi about_Aliases.
- Tutti. Ottiene tutti i tipi di comando. Questo valore di parametro è l’equivalente di
Get-Command *
. - Application. Ottiene i file non-PowerShell nei percorsi elencati nella variabile d’ambiente Path ($env:path), inclusi i file .txt, .exe e .dll. Per maggiori informazioni sulla variabile d’ambiente Path, vedi about_Environment_Variables.
- Cmdlet. Ottiene tutti i cmdlet.
- ExternalScript. Ottiene tutti i file .ps1 nei percorsi elencati nella variabile d’ambiente Path ($env:path).
- Filtro e funzione. Ottiene tutte le funzioni e i filtri PowerShell avanzati e semplici.
- Script. Ottiene tutti i blocchi di script. Per ottenere gli script PowerShell (file .ps1), usa il valore ExternalScript.
Type: | CommandTypes |
Aliases: | Type |
Valori accettati: | Alias, Funzione, Filtro, Cmdlet, ExternalScript, Applicazione, Script, Flusso di lavoro, Configurazione, Tutti |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input pipeline: | Vero |
Accetta caratteri jolly: | False |
Specifica i moduli con nomi che sono specificati nella forma di oggetti ModuleSpecification, descritti nella sezione Remarks diModuleSpecification Constructor (Hashtable).Per esempio, il parametro FullyQualifiedModule accetta un nome di modulo specificato in uno dei seguenti formati:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName e ModuleVersion sono richiesti, ma Guid è opzionale.
Non si può specificare il parametro FullyQualifiedModule nello stesso comando come Moduleparameter. I due parametri si escludono a vicenda.
Type: | ModuleSpecification |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Indica che questa cmdlet ottiene solo comandi nella sessione corrente.
A partire da PowerShell 3.0, per impostazione predefinita, Get-Command
ottiene tutti i comandi installati, compresi, 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.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Specifica un array di moduli. Questo cmdlet ottiene i comandi che provengono dai moduli specificati.Inserire i nomi dei moduli o degli oggetti modulo.
Questo parametro accetta valori stringa, ma il valore di questo parametro può anche essere un PSModuleInfoobject, come gli oggetti che i cmdlets Get-Module
e Import-PSSession
restituiscono.
Tipo: | Stringa |
Alias: | PSSnapin |
Posizione: | Nominato |
Valore di default: | Nessuno |
Accetta input pipeline: | Vero |
Accetta caratteri jolly: | True |
Specifica un array di nomi. Questa cmdlet ottiene solo i comandi che hanno il nome specificato. Inserisci un nome o un modello di nome. I caratteri jolly sono permessi.
Per ottenere i comandi che hanno lo stesso nome, usa il parametro All. Quando due comandi hanno lo stesso nome, per default, Get-Command
ottiene il comando che viene eseguito quando si digita il nome del comando.
Tipo: | Stringa |
Posizione: | 0 |
Valore predefinito: | Nessuno |
Accetta input pipeline: | Vero |
Accetta caratteri jolly: | Vero |
Specifica un array di nomi di comandi. Questo cmdlet ottiene i comandi, che includono cmdlets, funzioni e alias, che hanno nomi che includono il nome specificato. Inserisci uno o più nomi o modelli di nomi. I caratteri jolly sono permessi.
Tipo: | Stringa |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Vero |
Specifica un array di nomi di parametri. Questo cmdlet ottiene i comandi nella sessione che hanno i parametri specificati. Inserisci i nomi dei parametri o gli alias dei parametri. I caratteri 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 |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Falso |
Accetta caratteri jolly: | Vero |
Specifica un array di nomi di parametri. Questo cmdlet ottiene i comandi nella sessione che hanno parametri del tipo specificato. Inserisci il nome completo o parziale di un tipo di parametro. Sono supportati i caratteri jolly.
I parametri ParameterName e ParameterType cercano solo i comandi nella sessione corrente.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | PSTypeName |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Falso |
Accetta caratteri jolly: | Vero |
Indica che questa cmdlet visualizza le informazioni sul comando.
Questo parametro è stato introdotto in Windows PowerShell 5.0.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Indica che questa cmdlet ottiene solo i seguenti dati specifici sul comando:
- Alias. Ottiene il nome e la sintassi standard.
- Cmdlets. Ottiene la sintassi.
- Funzioni e filtri. Ottiene la definizione della funzione.
- Script e applicazioni o file. Ottiene il percorso e il nome del file.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Specifica il numero di comandi da ottenere. Puoi usare questo parametro per limitare l’output di un comando.
Tipo: | Int32 |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Indica l’utilizzo della corrispondenza dei caratteri nel comando per trovare con caratteri maiuscoli in un comando. Per esempio, i-psdf
corrisponderebbe a Import-PowerShellDataFile
poiché ciascuno dei caratteri da trovare corrisponde a un carattere maiuscolo nel risultato. Quando si usa questo tipo di corrispondenza, qualsiasi carattere jolly non darà luogo a nessuna corrispondenza.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Indica l’utilizzo di un algoritmo di corrispondenza fuzzy quando si trovano i comandi. L’ordine dell’output è dal match più vicino al match meno probabile. I caratteri jolly non dovrebbero essere usati con l’abbinamento fuzzy poiché tenterà di abbinare i comandi che possono contenere tali caratteri jolly.
Tipo: | SwitchParameter |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Specifica un array di verbi di comando. Questo cmdlet ottiene i comandi, che includono cmdlets, funzioni e alias, che hanno nomi che includono il verbo specificato. Inserisci uno o più verbi o verbpattern. I caratteri jolly sono permessi.
Tipo: | Stringa |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta input della pipeline: | Vero |
Accetta caratteri jolly: | Vero |
Inputs
Stringa
È possibile inserire i nomi dei comandi in questa cmdlet.
Outputs
CommandInfo
Questa cmdlet restituisce oggetti derivati dalla classe CommandInfo. Il tipo di oggetto che viene 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.
Note
- Quando più di un comando con lo stesso nome è disponibile per la sessione,
Get-Command
restituisce il comando che viene eseguito quando si scrive il nome del comando. Per ottenere i comandi che hanno lo stesso nome, elencati in ordine di esecuzione, usate il parametro All. Per maggiori informazioni, vedereabout_Command_Precedence. - Quando un modulo viene importato automaticamente, l’effetto è lo stesso dell’utilizzo 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, utilizzare la variabile di preferenza$PSModuleAutoLoadingPreference
. Per maggiori informazioni, vedereabout_Preference_Variables.
- Export-PSSession
- Get-Help
- Get-Member
- Get-PSDrive
- Import-PSSession
- about_Command_Precedence