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-Help
do , 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 deGet-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
,.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 Path ($env:path
).Filter
eFunction
: 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 oExternalScript
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
Você pode canalizar nomes de comando para este cmdlet.
Saídas
Este cmdlet retorna objetos derivados da classe CommandInfo . O tipo de objeto que é retornado depende do tipo de comando que Get-Command
obtém.
Representa aliases.
Representa aplicativos e arquivos.
Representa cmdlets.
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.