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

Description

O Get-Command cmdlet 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 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 Caminho ($env:Path), que ele lista no tipo de comando Aplicativo.

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 ativar, desativar e configurar a importação automática de módulos, use a $PSModuleAutoLoadingPreference variável de preferência. Para obter mais informações, consulte about_Preference_Variables.

Get-Command obtém seus dados diretamente do código de comando, ao contrário Get-Helpdo , que obtém suas informações de tópicos de ajuda.

A partir do Windows PowerShell 5.0, os Get-Command resultados do cmdlet exibem uma coluna Version 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, os classifica em ordem alfabética pelo substantivo no nome do cmdlet e, em seguida, os exibe em grupos baseados no substantivo. Essa exibição pode ajudar a localizar 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

Esse comando usa o parâmetro Module 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 Get-AppLockerPolicy cmdlet. 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 ativar, desativar e configurar a importação automática de módulos, use a $PSModuleAutoLoadingPreference variável de preferência. 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 Syntax para obter a sintaxe do Get-ChildItem cmdlet quando ele é usado na unidade Cert:. A unidade Cert: é uma unidade do PowerShell que o Provedor de Certificados adiciona à sessão.

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

Ao comparar 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 Get-ChildItem cmdlet.

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 Get-DynamicParameters função para obter os parâmetros dinâmicos que o provedor de certificado adiciona ao Get-ChildItem cmdlet quando ele é usado na unidade 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

A Get-DynamicParameters função 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 por 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 ($env: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 e um tipo de parâmetro

Esse comando obtém cmdlets que têm um parâmetro cujo nome inclui Auth e cujo tipo é AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

É possível usar um comando como este para localizar cmdlets que permitem que você especifique o método usado para autenticar o usuário.

O parâmetro ParameterType distingue os parâmetros que usam um valor AuthenticationMechanism daqueles que usam um parâmetro AuthenticationLevel , mesmo quando eles têm nomes semelhantes.

Exemplo 10: Obter um alias

Este exemplo mostra como usar o Get-Command cmdlet com um alias.

Get-Command -Name 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 visualização especial do valor da propriedade Name para aliases. O modo de exibição mostra o alias e o nome completo do comando.

Exemplo 11: Obter sintaxe de um alias

Este exemplo mostra como obter a sintaxe junto com o nome padrão de um alias.

A saída do comando mostra o alias rotulado com o nome padrão, seguido pela sintaxe.

Get-Command -Name dir -Syntax

dir (alias) -> Get-ChildItem

dir [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

dir [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

Exemplo 12: Obter todas as instâncias do comando Bloco de Notas

Este exemplo usa o parâmetro All do Get-Command cmdlet para mostrar todas as instâncias do Notepad comando 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 que é 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 em ordem de precedência de execução. Para executar um comando que não seja o 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 13: Obter o nome de um módulo que contém um cmdlet

Esse comando obtém o nome do módulo no qual o Get-Date cmdlet 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 14: 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 funções que têm um tipo de saída e os tipos de objetos que eles retornam.

A primeira parte do comando obtém todos os cmdlets. Um operador de pipeline (|) envia os cmdlets para o Where-Object cmdlet, que seleciona apenas aqueles em que a propriedade OutputType é preenchida. Outro operador de pipeline envia os objetos de cmdlet selecionados para o Format-List cmdlet, 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 15: Obter cmdlets que usam 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

Este comando localiza cmdlets que usam objetos de adaptador de rede como entrada. Você pode usar esse formato de comando para localizar os cmdlets que aceitam o tipo de objeto que qualquer comando retorna.

O comando usa a propriedade intrínseca PSTypeNames 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 retornado pelo cmdlet.

Exemplo 16: Obter comandos usando uma correspondência difusa

Neste exemplo, o nome do comando deliberadamente tem um erro de digitação como 'get-commnd'. Usando a -UseFuzzyMatching opção, o cmdlet determinou que a melhor correspondência foi Get-Command seguida por outros comandos nativos no sistema que eram uma correspondência semelhante.

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

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 têm o mesmo nome, consulte about_Command_Precedence. Para obter informações sobre nomes de comandos qualificados por módulo e comandos em execução que não são executados por padrão devido a um conflito de nome, consulte about_Modules.

Este 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 ele é usado com os parâmetros especificados ("argumentos"). O alias para ArgumentList é Args.

Para detectar parâmetros dinâmicos que estão disponíveis somente quando determinados outros parâmetros são usados, defina o valor de ArgumentList como 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 como um caminho na unidade do provedor, como WSMan:, HKLM: ou Cert:. Quando o comando for um cmdlet de 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, o 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 esse parâmetro são:

  • Alias: Obtém os aliases de todos os comandos do PowerShell. Para obter mais informações, consulte about_Aliases.

  • All: Obtém todos os tipos de comando. Esse valor de Get-Command *parâmetro é equivalente a .

  • Application: Obtém arquivos que não são do PowerShell em caminhos listados na variável de ambiente Caminho ($env:path), incluindo .txt, .exe, e .dll arquivos. Para obter mais informações sobre a variável de ambiente Path , consulte about_Environment_Variables.

  • Cmdlet: Obtém todos os cmdlets.

  • ExternalScript: Obtém todos os .ps1 arquivos nos caminhos listados na variável de ambiente Caminho ($env:path).

  • Filter e Function: Obtém todas as funções e filtros avançados e simples do PowerShell.

  • Script: Obtém todos os blocos de script. Para obter scripts do PowerShell (.ps1 arquivos), use o ExternalScript valor.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro CommandType como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação OR binária. Passar valores como uma matriz é a opção mais simples e também permite que você use o preenchimento de tabulação nos valores.

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

O valor pode ser um nome de módulo, uma especificação completa do módulo ou um caminho para um arquivo de módulo.

Quando o valor é um caminho, o caminho pode ser totalmente qualificado ou relativo. Um caminho relativo é resolvido em relação ao script que contém a instrução using.

Quando o valor é um nome ou especificação de módulo, o PowerShell pesquisa o PSModulePath para o módulo especificado.

Uma especificação de módulo é uma tabela de hash que tem as seguintes chaves.

  • ModuleName - Obrigatório Especifica o nome do módulo.

  • GUID - Opcional Especifica o GUID do módulo.

  • Também é necessário especificar pelo menos uma das três chaves abaixo.

    • ModuleVersion - Especifica uma versão mínima aceitável do módulo.

    • MaximumVersion - Especifica a versão máxima aceitável do módulo.

    • RequiredVersion - Especifica uma versão exata e necessária do módulo. Isso não pode ser usado com as outras chaves de versão.

Não é possível especificar o parâmetro FullyQualifiedModule no mesmo comando que um parâmetro Module . 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

-FuzzyMinimumDistance

Este parâmetro permite que a filtragem de resultados difusos seja mais ou menos precisa. A distância é calculada usando o algoritmo Damerau Levenshtein Distance, que indica quantos passos é a correspondência do valor original. Uma distância menor é mais precisa. Uma distância de zero é uma correspondência exata.

Tipo:UInt32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
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 se limitando a, os comandos na sessão atual. No PowerShell 2.0, ele obtém apenas comandos na sessão atual.

Este 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 que vieram dos módulos especificados. Insira os nomes dos módulos ou objetos de módulo.

Esse parâmetro usa valores de cadeia de caracteres, mas o valor desse parâmetro também pode ser um objeto PSModuleInfo , como os objetos retornados pelos Get-Module cmdlets e Import-PSSession .

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. Digite um nome ou 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 de substantivo. 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âmetros. Esse cmdlet obtém comandos na sessão que têm os parâmetros especificados. Insira nomes de parâmetros ou aliases de parâmetros. Há suporte para caracteres curinga.

Os parâmetros ParameterName e ParameterType pesquisam apenas comandos na sessão atual.

Este 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âmetros. Esse cmdlet obtém comandos na sessão que têm parâmetros do tipo especificado. Digite o nome completo ou parcial de um tipo de parâmetro. Há suporte para caracteres curinga.

Os parâmetros ParameterName e ParameterType pesquisam apenas comandos na sessão atual.

Este 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 da 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

-UseAbbreviationExpansion

Indica o uso da correspondência dos caracteres no comando para localizar com caracteres maiúsculos em um comando. Por exemplo, i-psdf corresponderia Import-PowerShellDataFile como cada um dos caracteres a serem encontrados corresponde a um caractere maiúsculo no resultado. Ao usar esse tipo de correspondência, qualquer curinga resultará em nenhuma correspondência.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-UseFuzzyMatching

Indica o uso de um algoritmo de correspondência difusa ao localizar comandos. A ordem da saída é da correspondência mais próxima para a correspondência menos provável. Os curingas não devem ser usados com correspondência difusa, pois tentará corresponder comandos que podem conter esses caracteres curinga.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
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 verbos. 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 esse cmdlet.

Saídas

CommandInfo

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

AliasInfo

Representa aliases.

ApplicationInfo

Representa aplicativos e arquivos.

CmdletInfo

Representa cmdlets.

FunctionInfo

Representa funções e filtros.

Observações

O PowerShell inclui os seguintes aliases para Get-Command:

  • Todas as plataformas:

    • gcm
  • Quando mais de um comando com o mesmo nome estiver 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 All . Para obter mais informações, confira about_Command_Precedence.

  • Quando um módulo é importado automaticamente, o efeito é o mesmo que usar o Import-Module cmdlet. O módulo pode adicionar comandos, tipos e arquivos de formatação e executar scripts na sessão. Para ativar, desativar e configurar a importação automática de módulos, use a $PSModuleAutoLoadingPreference variável de preferência. Para obter mais informações, consulte about_Preference_Variables.