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 dos módulos do PowerShell e comandos 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 Path ($env:Path), que ela 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 usá-lo 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 da ajuda.

A partir do Windows PowerShell 5.0, os Get-Command resultados do cmdlet exibem uma coluna Versão por padrão. Uma nova propriedade Version foi adicionada à classe CommandInfo .

Exemplos

Exemplo 1: Obter cmdlets, funções e aliases

Este comando obtém os cmdlets, funções e aliases do PowerShell instalados no computador.

Get-Command

Exemplo 2: Obter comandos na sessão atual

Este 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

Este comando obtém todos os cmdlets, classifica-os alfabeticamente pelo substantivo no nome do cmdlet e, em seguida, exibe-os 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 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

Este 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

Este comando usa os parâmetros ArgumentList e Syntax para obter a Get-ChildItem sintaxe do 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 certificado adiciona um parâmetro dinâmico, CodeSigningCert, ao Get-ChildItem cmdlet.

Para obter mais informações sobre o provedor de certificado, 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. Esta é uma alternativa ao método usado no exemplo anterior. O parâmetro dynamic pode ser adicionado a um cmdlet por outro cmdlet ou um provedor.

Exemplo 8: Obter todos os comandos de todos os tipos

Este 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

Este comando obtém cmdlets que têm um parâmetro cujo nome inclui Auth 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 os parâmetros que usam um valor AuthenticationMechanism daqueles que usam um parâmetro AuthenticationLevel , mesmo quando 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 exibição especial do valor da propriedade Name para aliases. A vista 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 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 13: Obter o nome de um módulo que contém um cmdlet

Este 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

Este comando obtém os cmdlets e 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 Where-Object cmdlet, que seleciona apenas aqueles nos quais 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 do adaptador de rede como entrada. Você pode usar esse formato de comando para localizar os cmdlets que aceitam o tipo de objetos retornados por qualquer comando.

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 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 o -UseFuzzyMatching switch, o cmdlet determinou que a melhor correspondência era 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 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
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-ArgumentList

Especifica uma matriz de argumentos. Este 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 detetar parâmetros dinâmicos que estão disponíveis somente quando determinados outros parâmetros são usados, defina o valor de ArgumentList para os parâmetros que acionam os parâmetros dinâmicos.

Para detetar 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 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 o valor de ArgumentList. Para obter informações sobre os cmdlets do provedor, consulte about_Providers.

Tipo:Object[]
Aliases:Args
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CommandType

Especifica os tipos de comandos que esse cmdlet recebe. 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:

  • 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. Este valor de Get-Command *parâmetro é o equivalente a .

  • Application: Obtém arquivos que não são do PowerShell em caminhos listados na variável de ambiente Path ($env:path), incluindo .txt, .exee .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 Path ($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.ps1 (arquivos) do PowerShell, use o ExternalScript valor.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos 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 binary-OR. 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 aceites:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-FullyQualifiedModule

O valor pode ser um nome de módulo, uma especificação de módulo completo 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 procura o módulo especificado no PSModulePath .

Uma especificação de módulo é uma hashtable 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 obrigató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 excluem-se mutuamente.

Tipo:ModuleSpecification[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ListImported

Indica que esse cmdlet recebe 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 limitado 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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-Module

Especifica uma matriz de módulos. Este 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 que os Get-Module cmdlets e Import-PSSession retornam.

Tipo:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-Name

Especifica uma matriz de nomes. Este cmdlet obtém apenas comandos que têm o nome especificado. Insira 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[]
Position:0
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-Noun

Especifica uma matriz de substantivos de comando. Este 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 substantivos. Caracteres curinga são permitidos.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-ParameterName

Especifica uma matriz de nomes de parâmetros. Este cmdlet obtém comandos na sessão que têm os parâmetros especificados. Insira nomes de parâmetros ou aliases de parâmetros. Caracteres curinga são suportados.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:True

-ParameterType

Especifica uma matriz de nomes de parâmetros. Este 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. Caracteres curinga são suportados.

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

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:PSTypeName[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:True

-ShowCommandInfo

Indica que esse cmdlet exibe informações de comando.

Esse parâmetro foi introduzido no Windows PowerShell 5.0.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Syntax

Indica que esse cmdlet obtém apenas os seguintes dados especificados sobre o comando:

  • Pseudónimos. 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 aplicações ou ficheiros. Obtém o caminho e o nome do arquivo.
Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-TotalCount

Especifica o número de comandos a obter. Você pode usar esse parâmetro para limitar a saída de um comando.

Tipo:Int32
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais: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 encontrar corresponde a um caractere maiúsculo no resultado. Ao usar esse tipo de correspondência, qualquer curinga resultará em nenhuma correspondência.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-UseFuzzyMatching

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Verb

Especifica uma matriz de verbos de comando. Este 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 verbais. Caracteres curinga são permitidos.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

Entradas

String

Você pode canalizar nomes de comando para este cmdlet.

Saídas

CommandInfo

Este cmdlet retorna objetos derivados da classe CommandInfo . O tipo de objeto que é 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.

Notas

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, consulte 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.