Get-Command
Obtiene todos los comandos.
Sintaxis
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
El Get-Command
cmdlet obtiene todos los comandos instalados en el equipo, incluidos cmdlets, alias, funciones, filtros, scripts y aplicaciones. Get-Command
obtiene los comandos de los módulos y comandos de PowerShell que se importaron desde otras sesiones. Para obtener solo los comandos que se han importado en la sesión actual, use el parámetro ListImported .
Sin parámetros, Get-Command
obtiene todos los cmdlets, funciones y alias instalados en el equipo. Get-Command *
obtiene todos los tipos de comandos, incluidos todos los archivos que no son de PowerShell en la variable de entorno Path ($env:PATH
), que se muestra en el tipo de comando Application.
Get-Command
que usa el nombre exacto del comando, sin caracteres comodín, importa automáticamente el módulo que contiene el comando para que pueda usar el comando inmediatamente. Para habilitar, deshabilitar y configurar la importación automática de módulos, use la $PSModuleAutoLoadingPreference
variable de preferencia. Para obtener más información, consulte about_Preference_Variables.
Get-Command
obtiene sus datos directamente desde el código de comando, a diferencia Get-Help
de , que obtiene su información de los temas de ayuda.
A partir de Windows PowerShell 5.0, los resultados del Get-Command
cmdlet muestran una columna Versión de forma predeterminada. Se ha agregado una nueva propiedad Version a la clase CommandInfo .
Ejemplos
Ejemplo 1: Obtener cmdlets, funciones y alias
Este comando obtiene los cmdlets, las funciones y los alias de PowerShell que están instalados en el equipo.
Get-Command
Ejemplo 2: Obtener comandos en la sesión actual
Este comando usa el parámetro ListImported para obtener solo los comandos de la sesión actual.
Get-Command -ListImported
Ejemplo 3: Obtener cmdlets y mostrarlos en orden
Este comando obtiene todos los cmdlets, los ordena alfabéticamente por el nombre del cmdlet en el nombre del cmdlet y, a continuación, los muestra en grupos basados en nombres. Esta pantalla puede ayudarle a encontrar los cmdlets para una tarea.
Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
Ejemplo 4: Obtener comandos en un módulo
Este comando usa el parámetro Module para obtener los comandos de los módulos Microsoft.PowerShell.Security y Microsoft.PowerShell.Utility.
Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility
Ejemplo 5: Obtener información sobre un cmdlet
Este comando obtiene información sobre el Get-AppLockerPolicy
cmdlet . También importa el módulo appLocker, que agrega todos los comandos del módulo de AppLocker a la sesión actual.
Get-Command Get-AppLockerPolicy
Cuando se importa automáticamente un módulo, el efecto es el mismo que el uso del cmdlet Import-Module.
El módulo puede agregar comandos, tipos y archivos de formato y ejecutar scripts en la sesión. Para habilitar, deshabilitar y configurar la importación automática de módulos, use la $PSModuleAutoLoadingPreference
variable de preferencia. Para obtener más información, consulte about_Preference_Variables.
Ejemplo 6: Obtención de la sintaxis de un cmdlet
Este comando usa los parámetros ArgumentList y Syntax para obtener la sintaxis del Get-ChildItem
cmdlet cuando se usa en la unidad Cert: . La unidad Cert: es una unidad de PowerShell que el proveedor de certificados agrega a la sesión.
Get-Command -Name Get-Childitem -Args Cert: -Syntax
Al comparar la sintaxis mostrada en la salida con la sintaxis que se muestra al omitir el parámetro Args (ArgumentList), verá que el proveedor de certificados agrega un parámetro dinámico, CodeSigningCert, al Get-ChildItem
cmdlet .
Para obtener más información sobre el proveedor de certificados, consulte about_Certificate_Provider.
Ejemplo 7: Obtener parámetros dinámicos
El comando del ejemplo usa la Get-DynamicParameters
función para obtener los parámetros dinámicos que el proveedor de certificados agrega al Get-ChildItem
cmdlet cuando se usa en la unidad 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
La Get-DynamicParameters
función de este ejemplo obtiene los parámetros dinámicos de un cmdlet. Esta es una alternativa al método usado en el ejemplo anterior. El parámetro dinámico se puede agregar a un cmdlet mediante otro cmdlet o un proveedor.
Ejemplo 8: Obtener todos los comandos de todos los tipos
Este comando obtiene todos los comandos de todos los tipos del equipo local, incluidos los archivos ejecutables en las rutas de acceso de la variable de entorno Path ($env:PATH
).
Get-Command *
Devuelve un objeto ApplicationInfo (System.Management.Automation.ApplicationInfo) para cada archivo, no un objeto FileInfo (System.IO.FileInfo).
Ejemplo 9: Obtención de cmdlets mediante un nombre de parámetro y un tipo
Este comando obtiene cmdlets que tienen un parámetro cuyo nombre incluye Auth y cuyo tipo es AuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Puede usar un comando como este para buscar cmdlets que le permitan especificar el método que se usa para autenticar al usuario.
El parámetro ParameterType distingue los parámetros que toman un valor AuthenticationMechanism de los que toman un parámetro AuthenticationLevel , incluso cuando tienen nombres similares.
Ejemplo 10: Obtener un alias
En este ejemplo se muestra cómo usar el Get-Command
cmdlet con un alias.
Get-Command -Name dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
Aunque normalmente se usa en cmdlets y funciones, Get-Command
también obtiene scripts, funciones, alias y archivos ejecutables.
La salida del comando muestra la vista especial del valor de la propiedad Name para alias. La vista muestra el alias y el nombre de comando completo.
Ejemplo 11: Obtener todas las instancias del comando Bloc de notas
En este ejemplo se usa el parámetro All del Get-Command
cmdlet para mostrar todas las instancias del Notepad
comando en el equipo 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
El parámetro All es útil cuando hay más de un comando con el mismo nombre en la sesión.
A partir de Windows PowerShell 3.0, de forma predeterminada, cuando la sesión incluye varios comandos con el mismo nombre, Get-Command
obtiene solo el comando que se ejecuta al escribir el nombre del comando. Con el parámetro All , Get-Command
obtiene todos los comandos con el nombre especificado y los devuelve en orden de precedencia de ejecución. Para ejecutar un comando que no sea el primero de la lista, escriba la ruta de acceso completa al comando.
Para obtener más información sobre la precedencia de comandos, consulte about_Command_Precedence.
Ejemplo 12: Obtención del nombre de un módulo que contiene un cmdlet
Este comando obtiene el nombre del módulo en el que se originó el Get-Date
cmdlet.
El comando usa la propiedad ModuleName de todos los comandos.
(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility
Este formato de comando funciona en los comandos de los módulos de PowerShell, incluso si no se importan en la sesión.
Ejemplo 13: Obtener cmdlets y funciones que tienen un tipo de salida
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
Este comando obtiene los cmdlets y las funciones que tengan un tipo de resultado y el tipo de objetos que devuelven.
La primera parte del comando obtiene todos los cmdlets. Un operador de canalización (|
) envía los cmdlets al Where-Object
cmdlet , que selecciona solo los que se rellenan la propiedad OutputType . Otro operador de canalización envía los objetos de Format-List
cmdlet seleccionados al cmdlet , que muestra el nombre y el tipo de salida de cada cmdlet de una lista.
La propiedad OutputType de un objeto CommandInfo tiene un valor distinto de null solo cuando el código del cmdlet define el atributo OutputType para el cmdlet.
Ejemplo 14: Obtener cmdlets que toman un 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 busca cmdlets que tomen objetos de adaptador de red como entrada. Puede usar este formato de comando para buscar los cmdlets que acepten el tipo de objetos que devuelve cualquier comando.
El comando usa la propiedad intrínseca PSTypeNames de todos los objetos, que obtiene los tipos que describen el objeto. Para obtener la propiedad PSTypeNames de un adaptador net y no la propiedad PSTypeNames de una colección de adaptadores net, el comando usa la notación de matriz para obtener el primer adaptador net que devuelve el cmdlet. Para obtener la propiedad PSTypeNames de un adaptador net y no la propiedad PSTypeNames de una colección de adaptadores net, el comando usa la notación de matriz para obtener el primer adaptador net que devuelve el cmdlet.
Parámetros
-All
Indica que este cmdlet obtiene todos los comandos, incluidos los comandos del mismo tipo que tienen el mismo nombre. De forma predeterminada, Get-Command
obtiene solo los comandos que se ejecutan al escribir el nombre del comando.
Para obtener más información sobre el orden en que PowerShell busca comandos, consulte about_Command_Precedence. Para obtener información sobre los nombres de comandos calificados para módulos y los comandos en ejecución que no se ejecutan de forma predeterminada debido a un conflicto de nombres, consulte about_Modules.
Este parámetro se incorporó en Windows PowerShell 3.0.
En Windows PowerShell 2.0, Get-Command
obtiene todos los comandos de forma predeterminada.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ArgumentList
Especifica una matriz de argumentos. Este cmdlet obtiene información sobre un cmdlet o función cuando se usa con los parámetros especificados ("argumentos"). El alias de ArgumentList es Args.
Para detectar parámetros dinámicos que solo están disponibles cuando se usan determinados otros parámetros, establezca el valor de ArgumentList en los parámetros que desencadenan los parámetros dinámicos.
Para detectar los parámetros dinámicos que un proveedor agrega a un cmdlet, establezca el valor del parámetro ArgumentList en una ruta de acceso de la unidad de proveedor, como WSMan:
, HKLM:
o Cert:
.
Cuando el comando es un cmdlet de proveedor de PowerShell, escriba solo una ruta de acceso en cada comando. Los cmdlets del proveedor devuelven solo los parámetros dinámicos de la primera ruta de acceso al valor de ArgumentList. Para obtener información sobre los cmdlets del proveedor, consulte about_Providers.
Tipo: | Object[] |
Alias: | Args |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CommandType
Especifica los tipos de comandos que obtiene este cmdlet. Escriba uno o más tipos de comando. Use CommandType o su alias, Type. De forma predeterminada, Get-Command
obtiene todos los cmdlets, funciones y alias.
Los valores permitidos para este parámetro son los siguientes:
Alias
: obtiene los alias de todos los comandos de PowerShell. Para más información, vea about_Aliases.All
: obtiene todos los tipos de comandos. Este valor de parámetro es el equivalente deGet-Command *
.Application
: busca carpetas en la$env:PATH
variable de entorno para archivos ejecutables que no son de PowerShell. En Windows, los archivos ejecutables tienen una extensión de archivo que aparece en la variable de$env:PATHEXT
entorno. Para obtener más información, consulte about_Environment_Variables.Cmdlet
: obtiene todos los cmdlets.ExternalScript
: obtiene todos los.ps1
archivos de las rutas de acceso enumeradas en la variable de entorno Path ($env:PATH
).Filter
yFunction
: obtiene todas las funciones y filtros avanzados y simples de PowerShell.Script
: obtiene todos los bloques de script. Para obtener scripts de PowerShell (.ps1
archivos), use elExternalScript
valor .Workflow
: obtiene todos los flujos de trabajo. Para obtener más información sobre los flujos de trabajo, consulte Introducción al flujo de trabajo de Windows PowerShell.
Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro CommandType como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.
Tipo: | CommandTypes |
Alias: | Type |
Valores aceptados: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-FullyQualifiedModule
El valor puede ser un nombre de módulo, una especificación de módulo completa o una ruta de acceso a un archivo de módulo.
Cuando el valor es una ruta de acceso, la ruta de acceso puede ser completa o relativa. Se resuelve una ruta de acceso relativa con respecto al script que contiene la instrucción using.
Cuando el valor es un nombre o especificación de módulo, PowerShell busca en el módulo especificado la psModulePath .
Una especificación de módulo es una tabla hash que tiene las siguientes claves.
ModuleName
- Obligatorio Especifica el nombre del módulo.GUID
- Opcional Especifica el GUID del módulo.También es necesario especificar al menos una de las tres claves siguientes.
ModuleVersion
: especifica una versión mínima aceptable del módulo.MaximumVersion
: especifica la versión máxima aceptable del módulo.RequiredVersion
: especifica una versión exacta y necesaria del módulo. Esto no se puede usar con las otras claves de versión.
No se puede especificar el parámetro FullyQualifiedModule en el mismo comando que un parámetro Module . Los dos parámetros son mutuamente excluyentes.
Tipo: | ModuleSpecification[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ListImported
Indica que este cmdlet solo obtiene comandos en la sesión actual.
A partir de PowerShell 3.0, de forma predeterminada, Get-Command
obtiene todos los comandos instalados, incluidos, entre otros, los comandos de la sesión actual. En PowerShell 2.0, solo obtiene comandos en la sesión actual.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Module
Especifica una matriz de módulos. Este cmdlet obtiene los comandos procedentes de los módulos o complementos especificados. Escriba los nombres de módulos o complementos.
Este parámetro toma valores de cadena, pero el valor de este parámetro también puede ser un objeto PSModuleInfo o PSSnapinInfo , como los objetos que devuelven los Get-Module
cmdlets , Get-PSSnapin
y Import-PSSession
.
Puede hacer referencia a este parámetro por su nombre, Module o por su alias PSSnapin. El nombre del parámetro que elija no tiene ningún efecto en el resultado del comando.
Tipo: | String[] |
Alias: | PSSnapin |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-Name
Especifica una matriz de nombres. Este cmdlet obtiene solo los comandos que tienen el nombre especificado. Escriba un nombre o un patrón de nombre. Se permite el uso de caracteres comodín.
Para obtener comandos que tengan el mismo nombre, use el parámetro All . Cuando dos comandos tienen el mismo nombre, de forma predeterminada, Get-Command
obtiene el comando que se ejecuta al escribir el nombre del comando.
Tipo: | String[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-Noun
Especifica una matriz de nombres de comando. Este cmdlet obtiene comandos, que incluyen cmdlets, funciones y alias, que tienen nombres que incluyen el nombre especificado. Escriba uno o más nombres o patrones de nombre. Se permite el uso de caracteres comodín.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-ParameterName
Especifica una matriz de nombres de parámetros. Este cmdlet obtiene comandos en la sesión que tienen los parámetros especificados. Escriba los nombres de parámetro o los alias de parámetro. Se admite el uso de caracteres comodín.
Los parámetros ParameterName y ParameterType solo buscan comandos en la sesión actual.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-ParameterType
Especifica una matriz de nombres de parámetros. Este cmdlet obtiene comandos en la sesión que tienen parámetros del tipo especificado. Escriba el nombre completo o parcial de un tipo de parámetro. Se admite el uso de caracteres comodín.
Los parámetros ParameterName y ParameterType solo buscan comandos en la sesión actual.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | PSTypeName[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-ShowCommandInfo
Indica que este cmdlet muestra información de comandos.
Este parámetro se introdujo en Windows PowerShell 5.0.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Syntax
Indica que este cmdlet obtiene solo los siguientes datos especificados sobre el comando:
- Alias Obtiene el nombre estándar.
- Cmdlets. Obtiene la sintaxis.
- Funciones y filtros. Obtiene la definición de la función.
- Scripts y aplicaciones o archivos. Obtiene la ruta de acceso y el nombre de archivo.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-TotalCount
Especifica el número de comandos que se van a obtener. Puede usar este parámetro para limitar el resultado de un comando.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Verb
Especifica una matriz de verbos de comando. Este cmdlet obtiene comandos, que incluyen cmdlets, funciones y alias, que tienen nombres que incluyen el verbo especificado. Escriba uno o varios verbos o patrones de verbo. Se permite el uso de caracteres comodín.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
Entradas
Puede canalizar los nombres de comandos a este cmdlet.
Salidas
Este cmdlet devuelve objetos derivados de la clase CommandInfo . El tipo de objeto que se devuelve depende del tipo de comando que Get-Command
obtiene.
Representa alias.
Representa aplicaciones y archivos.
Representa cmdlets.
Representa funciones y filtros.
Representa flujos de trabajo.
Notas
Windows PowerShell incluye los siguientes alias para Get-Command
:
gcm
Cuando hay más de un comando que tiene el mismo nombre disponible para la sesión,
Get-Command
devuelve el comando que se ejecuta al escribir el nombre del comando. Para obtener comandos con el mismo nombre, enumerados en orden de ejecución, use el parámetro All . Para obtener más información, vea about_Command_Precedence.Cuando se importa automáticamente un módulo, el efecto es el mismo que el uso del
Import-Module
cmdlet . El módulo puede agregar comandos, tipos y archivos de formato y ejecutar scripts en la sesión. Para habilitar, deshabilitar y configurar la importación automática de módulos, use la$PSModuleAutoLoadingPreference
variable de preferencia. Para obtener más información, consulte about_Preference_Variables.