Get-Command
Obtém todos os comandos.
Sintaxe
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
O cmdlet Get-Command
obtém todos os comandos instalados no computador, incluindo cmdlets, aliases, funções, filtros, scripts e aplicativos.
Get-Command
obtém os comandos de módulos e comandos do PowerShell que foram importados de outras sessões. Para obter apenas os comandos que foram importados para a sessão atual, use o parâmetro ListImported.
Sem parâmetros, Get-Command
obtém todos os cmdlets, funções e aliases instalados no computador.
Get-Command *
obtém todos os tipos de comandos, incluindo todos os arquivos que não são do PowerShell na variável de ambiente Path ($env:Path
), que ele lista no tipo de comando Application.
Get-Command
que usa o nome exato do comando, sem caracteres curinga, importa automaticamente o módulo que contém o comando para que você possa usar o comando imediatamente. Para habilitar, desabilitar e configurar a importação automática de módulos, use a variável de preferência $PSModuleAutoLoadingPreference
. Para obter mais informações, consulte about_Preference_Variables.
Get-Command
obtém seus dados diretamente do código de comando, ao contrário de Get-Help
, que obtém suas informações de tópicos de ajuda.
A partir do Windows PowerShell 5.0, os resultados do cmdlet Get-Command
exibem uma versão coluna por padrão. Uma nova propriedade Version foi adicionada à classe CommandInfo.
Exemplos
Exemplo 1: Obter cmdlets, funções e aliases
Esse comando obtém os cmdlets, funções e aliases do PowerShell instalados no computador.
Get-Command
Exemplo 2: Obter comandos na sessão atual
Esse comando usa o parâmetro ListImported para obter apenas os comandos na sessão atual.
Get-Command -ListImported
Exemplo 3: Obter cmdlets e exibi-los em ordem
Esse comando obtém todos os cmdlets, classifica-os em ordem alfabética pelo substantivo no nome do cmdlet e os exibe em grupos baseados em substantivos. Essa exibição pode ajudá-lo a encontrar os cmdlets para uma tarefa.
Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
Exemplo 4: Obter comandos em um módulo
Este comando usa o parâmetro módulo
Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility
Exemplo 5: obter informações sobre um cmdlet
Esse comando obtém informações sobre o cmdlet Get-AppLockerPolicy
. Ele também importa o módulo
Get-Command Get-AppLockerPolicy
Quando um módulo é importado automaticamente, o efeito é o mesmo que usar o cmdlet Import-Module.
O módulo pode adicionar comandos, tipos e arquivos de formatação e executar scripts na sessão. Para habilitar, desabilitar e configurar a importação automática de módulos, use a variável de preferência $PSModuleAutoLoadingPreference
. Para obter mais informações, consulte about_Preference_Variables.
Exemplo 6: Obter a sintaxe de um cmdlet
Esse comando usa os parâmetros
Get-Command Get-Childitem -Args Cert: -Syntax
Quando você compara a sintaxe exibida na saída com a sintaxe exibida quando você omite o parâmetro Args (ArgumentList), verá que o provedor de certificados adiciona um parâmetro dinâmico, CodeSigningCert, ao cmdlet Get-ChildItem
.
Para obter mais informações sobre o provedor de certificados, consulte about_Certificate_Provider.
Exemplo 7: Obter parâmetros dinâmicos
O comando no exemplo usa a função Get-DynamicParameters
para obter os parâmetros dinâmicos que o provedor de certificado adiciona ao cmdlet Get-ChildItem
quando ele é usado na unidade 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
A função Get-DynamicParameters
neste exemplo obtém os parâmetros dinâmicos de um cmdlet. Essa é uma alternativa ao método usado no exemplo anterior. O parâmetro dinâmico pode ser adicionado a um cmdlet por outro cmdlet ou um provedor.
Exemplo 8: Obter todos os comandos de todos os tipos
Esse comando obtém todos os comandos de todos os tipos no computador local, incluindo arquivos executáveis nos caminhos da variável de ambiente path
Get-Command *
Ele retorna um objeto ApplicationInfo (System.Management.Automation.ApplicationInfo) para cada arquivo, não um objeto FileInfo (System.IO.FileInfo).
Exemplo 9: Obter cmdlets usando um nome
Esse comando obtém cmdlets que têm um parâmetro cujo nome inclui Autenticação e cujo tipo é AuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Você pode usar um comando como este para localizar cmdlets que permitem especificar o método usado para autenticar o usuário.
O parâmetro
Exemplo 10: Obter um alias
Este exemplo mostra como usar o cmdlet Get-Command
com um alias.
Get-Command dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
Embora normalmente seja usado em cmdlets e funções, Get-Command
também obtém scripts, funções, aliases e arquivos executáveis.
A saída do comando mostra a exibição especial do valor da propriedade Name para aliases. A exibição mostra o alias e o nome do comando completo.
Exemplo 11: Obter todas as instâncias do comando bloco de notas
Este exemplo usa o parâmetro All do cmdlet Get-Command
para mostrar todas as instâncias do comando "Bloco de Notas" no computador local.
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
O parâmetro All é útil quando há mais de um comando com o mesmo nome na sessão.
A partir do Windows PowerShell 3.0, por padrão, quando a sessão inclui vários comandos com o mesmo nome, Get-Command
obtém apenas o comando executado quando você digita o nome do comando. Com o parâmetro All, Get-Command
obtém todos os comandos com o nome especificado e os retorna na ordem de precedência de execução. Para executar um comando diferente do primeiro da lista, digite o caminho totalmente qualificado para o comando.
Para obter mais informações sobre precedência de comando, consulte about_Command_Precedence.
Exemplo 12: Obter o nome de um módulo que contém um cmdlet
Esse comando obtém o nome do módulo no qual o cmdlet Get-Date
se originou.
O comando usa a propriedade ModuleName de todos os comandos.
(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility
Esse formato de comando funciona em comandos em módulos do PowerShell, mesmo que eles não sejam importados para a sessão.
Exemplo 13: Obter cmdlets e funções que têm um tipo de saída
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
Esse comando obtém os cmdlets e as funções que têm um tipo de saída e o tipo de objetos que eles retornam.
A primeira parte do comando obtém todos os cmdlets.
Um operador de pipeline (|) envia os cmdlets para o cmdlet Where-Object
, que seleciona apenas os que propriedade OutputType é preenchida.
Outro operador de pipeline envia os objetos de cmdlet selecionados para o cmdlet Format-List
, que exibe o nome e o tipo de saída de cada cmdlet em uma lista.
A propriedade OutputType de um objeto CommandInfo tem um valor não nulo somente quando o código do cmdlet define o atributo OutputType para o cmdlet.
Exemplo 14: Obter cmdlets que tomam um tipo de objeto específico como entrada
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
Esse comando localiza cmdlets que tomam objetos do adaptador de rede como entrada. Você pode usar esse formato de comando para localizar os cmdlets que aceitam o tipo de objetos que qualquer comando retorna.
O comando usa a propriedade PSTypeNames intrínseca de todos os objetos, que obtém os tipos que descrevem o objeto. Para obter a propriedade PSTypeNames de um adaptador de rede e não a propriedade PSTypeNames de uma coleção de adaptadores de rede, o comando usa a notação de matriz para obter o primeiro adaptador de rede que o cmdlet retorna. Para obter a propriedade PSTypeNames de um adaptador de rede e não a propriedade PSTypeNames de uma coleção de adaptadores de rede, o comando usa a notação de matriz para obter o primeiro adaptador de rede que o cmdlet retorna.
Parâmetros
-All
Indica que esse cmdlet obtém todos os comandos, incluindo comandos do mesmo tipo que têm o mesmo nome. Por padrão, Get-Command
obtém apenas os comandos que são executados quando você digita o nome do comando.
Para obter mais informações sobre o método que o PowerShell usa para selecionar o comando a ser executado quando vários comandos tiverem o mesmo nome, consulte about_Command_Precedence. Para obter informações sobre nomes de comando qualificados por módulo e comandos em execução que não são executados por padrão devido a um conflito de nomes, consulte about_Modules.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
No Windows PowerShell 2.0, Get-Command
obtém todos os comandos por padrão.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-ArgumentList
Especifica uma matriz de argumentos. Esse cmdlet obtém informações sobre um cmdlet ou função quando é usado com os parâmetros especificados ("argumentos"). O alias para ArgumentList é Args.
Para detectar parâmetros dinâmicos disponíveis somente quando determinados outros parâmetros forem usados, defina o valor de ArgumentList para os parâmetros que disparam os parâmetros dinâmicos.
Para detectar os parâmetros dinâmicos que um provedor adiciona a um cmdlet, defina o valor do parâmetro ArgumentList para um caminho na unidade do provedor, como WSMan:, HKLM:ou Cert:. Quando o comando for um cmdlet do provedor do PowerShell, insira apenas um caminho em cada comando. Os cmdlets do provedor retornam apenas os parâmetros dinâmicos para o primeiro caminho do valor de ArgumentList. Para obter informações sobre os cmdlets do provedor, consulte about_Providers.
Tipo: | Object[] |
Aliases: | Args |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CommandType
Especifica os tipos de comandos que esse cmdlet obtém. Insira um ou mais tipos de comando. Use commandType ou seu alias, Type. Por padrão, Get-Command
obtém todos os cmdlets, funções e aliases.
Os valores aceitáveis para este parâmetro são:
- Cognome. Obtém os aliases de todos os comandos do PowerShell. Para obter mais informações, consulte about_Aliases.
- Todo. Obtém todos os tipos de comando. Esse valor de parâmetro é equivalente a
Get-Command *
. - Aplicação. Obtém arquivos que não são do PowerShell em caminhos listados na variável de ambiente caminho
($env:path), incluindo arquivos .txt, .exee .dll. Para obter mais informações sobre a variável de ambiente caminho, consulte about_Environment_Variables. - Cmdlet. Obtém todos os cmdlets.
- ExternalScript. Obtém todos os arquivos de .ps1 nos caminhos listados na variável de ambiente caminho
($env:path). - Filtrar e função. Obtém todas as funções e filtros avançados e simples do PowerShell.
- Roteiro. Obtém todos os blocos de script. Para obter scripts do PowerShell (arquivos.ps1), use o valor externalScript.
- Fluxo de trabalho. Obtém todos os fluxos de trabalho. Para obter mais informações sobre fluxos de trabalho, consulte Introdução ao fluxo de trabalho do Windows PowerShell.
Tipo: | CommandTypes |
Aliases: | Type |
Valores aceitos: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-FullyQualifiedModule
Especifica módulos com nomes especificados na forma de objetos ModuleSpecification, descritos na seção Comentários do construtor ModuleSpecification (Hashtable). Por exemplo, o parâmetro FullyQualifiedModule aceita um nome de módulo especificado em um dos seguintes formatos:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
Não é possível especificar o parâmetro
Tipo: | ModuleSpecification[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-ListImported
Indica que esse cmdlet obtém apenas comandos na sessão atual.
A partir do PowerShell 3.0, por padrão, Get-Command
obtém todos os comandos instalados, incluindo, mas não limitados a, os comandos na sessão atual. No PowerShell 2.0, ele obtém apenas comandos na sessão atual.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Module
Especifica uma matriz de módulos. Esse cmdlet obtém os comandos provenientes dos módulos ou snap-ins especificados. Insira os nomes de módulos ou snap-ins.
Esse parâmetro usa valores de cadeia de caracteres, mas o valor desse parâmetro também pode ser um objeto PSModuleInfo ou PSSnapinInfo, como os objetos que os cmdlets Get-Module
, Get-PSSnapin
e Import-PSSession
retornam.
Você pode consultar esse parâmetro por seu nome, Móduloou por seu alias, PSSnapin. O nome do parâmetro escolhido não tem efeito na saída do comando.
Tipo: | String[] |
Aliases: | PSSnapin |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-Name
Especifica uma matriz de nomes. Esse cmdlet obtém apenas comandos que têm o nome especificado. Insira um nome ou um padrão de nome. Caracteres curinga são permitidos.
Para obter comandos com o mesmo nome, use o parâmetro All. Quando dois comandos têm o mesmo nome, por padrão, Get-Command
obtém o comando que é executado quando você digita o nome do comando.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-Noun
Especifica uma matriz de substantivos de comando. Esse cmdlet obtém comandos, que incluem cmdlets, funções e aliases, que têm nomes que incluem o substantivo especificado. Insira um ou mais substantivos ou padrões substantivos. Caracteres curinga são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-ParameterName
Especifica uma matriz de nomes de parâmetro. Esse cmdlet obtém comandos na sessão que têm os parâmetros especificados. Insira nomes de parâmetro ou aliases de parâmetro. Há suporte para caracteres curinga.
Os parâmetros
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-ParameterType
Especifica uma matriz de nomes de parâmetro. Esse cmdlet obtém comandos na sessão que têm parâmetros do tipo especificado. Insira o nome completo ou o nome parcial de um tipo de parâmetro. Há suporte para caracteres curinga.
Os parâmetros
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | PSTypeName[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-ShowCommandInfo
Indica que esse cmdlet exibe informações de comando.
Esse parâmetro foi introduzido no Windows PowerShell 5.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Syntax
Indica que esse cmdlet obtém apenas os seguintes dados especificados sobre o comando:
- Aliases. Obtém o nome padrão.
- Cmdlets. Obtém a sintaxe.
- Funções e filtros. Obtém a definição de função.
- Scripts e aplicativos ou arquivos. Obtém o caminho e o nome do arquivo.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-TotalCount
Especifica o número de comandos a serem obtidos. Você pode usar esse parâmetro para limitar a saída de um comando.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Verb
Especifica uma matriz de verbos de comando. Esse cmdlet obtém comandos, que incluem cmdlets, funções e aliases, que têm nomes que incluem o verbo especificado. Insira um ou mais verbos ou padrões de verbo. Caracteres curinga são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
Entradas
Você pode canalizar nomes de comando para este cmdlet.
Saídas
Esse cmdlet retorna objetos derivados da classe CommandInfo. O tipo de objeto retornado depende do tipo de comando que Get-Command
obtém.
Representa aliases.
Representa aplicativos e arquivos.
Representa cmdlets.
Representa funções e filtros.
Representa fluxos de trabalho.
Observações
- Quando mais de um comando que tem o mesmo nome está disponível para a sessão,
Get-Command
retorna o comando que é executado quando você digita o nome do comando. Para obter comandos com o mesmo nome, listados em ordem de execução, use o parâmetro Todos os. Para obter mais informações, consulte about_Command_Precedence. - Quando um módulo é importado automaticamente, o efeito é o mesmo que usar o cmdlet
Import-Module
. O módulo pode adicionar comandos, tipos e arquivos de formatação e executar scripts na sessão. Para habilitar, desabilitar e configurar a importação automática de módulos, use a variável de preferência$PSModuleAutoLoadingPreference
. Para obter mais informações, consulte about_Preference_Variables.