Compartilhar via


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 para obter os comandos nos módulos Microsoft.PowerShell.Security e Microsoft.PowerShell.Utility.

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 AppLocker, que adiciona todos os comandos no módulo AppLocker à sessão atual.

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 ArgumentList e sintaxe para obter a sintaxe do cmdlet quando ele é usado na unidade Cert: . A unidade Cert: é uma unidade do PowerShell que o Provedor de Certificado adiciona à sessão.

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 ParameterType distingue parâmetros que levam um valor AuthenticationMechanism daqueles que tomam um parâmetro AuthenticationLevel, mesmo quando eles têm nomes semelhantes.

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"}

ModuleName e ModuleVersion são necessários, mas Guid é opcional.

Não é possível especificar o parâmetro FullyQualifiedModule no mesmo comando que um parâmetro do Módulo . Os dois parâmetros são mutuamente exclusivos.

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-PSSnapine 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 ParameterName e ParameterType pesquisam somente comandos na sessão atual.

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 ParameterName e ParameterType pesquisam somente comandos na sessão atual.

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

String

Você pode canalizar nomes de comando para este cmdlet.

Saídas

CommandInfo

Esse cmdlet retorna objetos derivados da classe CommandInfo. O tipo de objeto retornado depende do tipo de comando que Get-Command obtém.

AliasInfo

Representa aliases.

ApplicationInfo

Representa aplicativos e arquivos.

CmdletInfo

Representa cmdlets.

FunctionInfo

Representa funções e filtros.

WorkflowInfo

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.