Obtiene todos los comandos.
Sintaxis
Get-Command >] >] >] >] <Object>] >] >]
Get-Command <String>] >] >] <Object>] >] >]
Descripción
El Get-Command
cmdlet obtiene todos los comandos que están instalados en el equipo, incluyendo cmdlets,aliases, funciones, filtros, scripts y aplicaciones. Get-Command
obtiene los comandos de los módulos de PowerShell y los comandos importados de otras sesiones. Para obtener sólo los comandos que se han importado en la sesión actual, utilice 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 enumera en el tipo de comando Application.
Get-Command
que utiliza el nombre exacto del comando, sin caracteres comodín, importa automáticamente el módulo que contiene el comando para que pueda utilizarlo inmediatamente. Para activar, desactivar y configurar la importación automática de módulos, utilice la variable de preferencia $PSModuleAutoLoadingPreference
. Para obtener más información, consulte about_Preference_Variables.
Get-Command
obtiene sus datos directamente del código del comando, a diferencia de Get-Help
, que obtiene su información de los temas de ayuda.
A partir de Windows PowerShell 5.0, los resultados del cmdlet Get-Command
muestran una columna de Versión por defecto. Se ha añadido una nueva propiedad Version a la clase CommandInfo.
Ejemplos
Ejemplo 1: Obtener cmdlets, funciones y alias
Este comando obtiene los cmdlets, funciones y alias de PowerShell que están instalados en el equipo.
Get-Command
Ejemplo 2: Obtener comandos en la sesión actual
Este comando utiliza el parámetro ListImported para obtener sólo los comandos en 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 sustantivo en el nombre del cmdlet, y luego los muestra en grupos basados en el sustantivo. Esta visualización puede ayudar 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 utiliza el parámetro Module para obtener los comandos en los módulos Microsoft.PowerShell.Securityy 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 cmdlet Get-AppLockerPolicy
. También importa el móduloAppLocker, que añade todos los comandos del módulo AppLocker a la sesión actual.
Get-Command Get-AppLockerPolicy
Cuando un módulo se importa automáticamente, el efecto es el mismo que el de utilizar el cmdlet Import-Module.El módulo puede añadir comandos, tipos y archivos de formato, y ejecutar scripts en la sesión. Para activar, desactivar y configurar la importación automática de módulos, utilice la variable de preferencia $PSModuleAutoLoadingPreference
. Para obtener más información, consulte about_Preference_Variables.
Ejemplo 6: Obtener la sintaxis de un cmdlet
Este comando utiliza los parámetros ArgumentList y Syntax para obtener la sintaxis del Get-ChildItem
cmdlet cuando se utiliza en la unidad Cert:. La unidad Cert: es una unidad de PowerShell que el proveedor de certificados añade a la sesión.
Get-Command -Name Get-Childitem -Args Cert: -Syntax
Cuando se compara la sintaxis mostrada en la salida con la sintaxis que se muestra cuando se omite el parámetro Args (ArgumentList), se verá que el proveedor de certificados añade un parámetro dinámico, CodeSigningCert, al cmdlet Get-ChildItem
.
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 utiliza la función Get-DynamicParameters
para obtener los parámetros dinámicosque el proveedor de certificados añade al cmdlet Get-ChildItem
cuando se utiliza 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 función Get-DynamicParameters
de este ejemplo obtiene los parámetros dinámicos de un cmdlet. Es una alternativa al método utilizado en el ejemplo anterior. El parámetro dinámico puede ser añadido al acmdlet por otro cmdlet o por un proveedor.
Ejemplo 8: Obtener todos los comandos de todos los tipos
Este comando obtiene todos los comandos de todos los tipos en el equipo local, incluyendo los archivos ejecutables en las rutas 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: Obtener cmdlets utilizando un nombre y tipo de parámetro
Este comando obtiene los cmdlets que tienen un parámetro cuyo nombre incluye Auth y cuyo tipo esAuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Puede utilizar un comando como éste para encontrar cmdlets que le permitan especificar el método que se utiliza 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
Este ejemplo muestra cómo utilizar el cmdlet Get-Command
con un alias.
Get-Command -Name dirCommandType Name ModuleName----------- ---- ----------Alias dir -> Get-ChildItem
Aunque se suele utilizar en cmdlets y funciones, Get-Command
también obtiene scripts, funciones, aliases y archivos ejecutables.
La salida del comando muestra la vista especial del valor de la propiedad Name para aliases. La vista muestra el alias y el nombre completo del comando.
Ejemplo 11: Obtener la sintaxis de un alias
Este ejemplo muestra cómo obtener la sintaxis junto con el nombre estándar de un alias.
La salida del comando muestra el alias etiquetado con el nombre estándar, seguido de la sintaxis.
Get-Command -Name dir -Syntaxdir (alias) -> Get-ChildItemdir <string>] <string>] >] >] >] dir <string>] -LiteralPath <string> >] >] >]
Ejemplo 12: Obtener todas las instancias del comando Notepad
Este ejemplo utiliza el parámetro All del cmdlet Get-Command
para mostrar todas las instancias del comandoNotepad
en el equipo local.
Get-Command Notepad -All | Format-Table CommandType, Name, DefinitionCommandType Name Definition----------- ---- ----------Application notepad.exe C:\WINDOWS\system32\notepad.exeApplication 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, por defecto, cuando la sesión incluye varios comandos con el mismo nombre, Get-Command
obtiene sólo 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 completa del comando.
Para obtener más información sobre la precedencia de los comandos, consulte about_Command_Precedence.
Ejemplo 13: Obtener el 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 utiliza la propiedad ModuleName de todos los comandos.
(Get-Command Get-Date).ModuleNameMicrosoft.PowerShell.Utility
Este formato de comando funciona en los comandos de los módulos de PowerShell, aunque no estén importados en la sesión.
Ejemplo 14: 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 funciones que tienen un tipo de salida y el tipo de objetos que devuelven.
La primera parte del comando obtiene todos los cmdlets. Un pipeline operator (|
) envía los cmdlets al cmdletWhere-Object
, que selecciona sólo aquellos en los que la propiedad OutputType está poblada. Otro operador de canalización envía los objetos cmdlet seleccionados al cmdlet Format-List
, que muestra el nombre y el tipo de salida de cada cmdlet en una lista.
La propiedad OutputType de un objeto CommandInfo tiene un valor no nulo sólo cuando el cmdletcode define el atributo OutputType para el cmdlet.
Ejemplo 15: Obtener cmdlets que toman un tipo de objeto específico como entrada
Get-Command -ParameterType (((Get-NetAdapter)).PSTypeNames)CommandType Name ModuleName----------- ---- ----------Function Disable-NetAdapter NetAdapterFunction Enable-NetAdapter NetAdapterFunction Rename-NetAdapter NetAdapterFunction Restart-NetAdapter NetAdapterFunction Set-NetAdapter NetAdapter
Este comando encuentra cmdlets que toman objetos adaptadores de red como entrada. Puede utilizar este formato de comando para encontrar los cmdlets que aceptan el tipo de objetos que devuelve cualquier comando.
El comando utiliza 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 de red, y no la propiedadPSTypeNames de una colección de adaptadores de red, el comando utiliza la notación de matriz para obtener elprimer adaptador de red que devuelve el cmdlet.
Ejemplo 16: Obtener comandos utilizando una coincidencia difusa
En este ejemplo, el nombre del comando tiene deliberadamente una errata como ‘get-commnd’.Utilizando el modificador -UseFuzzyMatching
, el cmdlet determinó que la mejor coincidencia era Get-Command
seguida de otros comandos nativos del sistema que eran una coincidencia similar.
Get-Command get-commnd -UseFuzzyMatchingCommandType Name Version Source----------- ---- ------- ------Cmdlet Get-Command 6.2.0.0 Microsoft.PowerShell.CoreApplication getconf 0.0.0.0 /usr/bin/getconfApplication command 0.0.0.0 /usr/bin/command
Parámetros
Get-Command
obtiene sólo los comandos que se ejecutan cuando se escribe el nombre del comando.
Para obtener más información sobre el método que utiliza PowerShell para seleccionar el comando que se ejecutará cuando hay varios comandos con el mismo nombre, consulte about_Command_Precedence.Para obtener información sobre los nombres de comandos calificados por módulos y la ejecución de comandos que no se ejecutan de forma predeterminada debido a un conflicto de nombres, consulte about_Modules.
Este parámetro se introdujo en Windows PowerShell 3.0.
En Windows PowerShell 2.0, Get-Command
obtiene todos los comandos por defecto.
Tipo: | SwitchParameter | Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Falso |
Para detectar los parámetros dinámicos que sólo están disponibles cuando se utilizan otros parámetros determinados, 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 añade a un cmdlet, establezca el valor del parámetroArgumentList en una ruta de la unidad del proveedor, como WSMan:, HKLM: o Cert:. Cuando el comando sea un cmdlet de proveedor de PowerShell, introduzca sólo una ruta en cada comando. Los cmddlets de proveedor devuelven sólo los parámetros dinámicos de la primera ruta el valor de ArgumentList. Para obtener información sobre los cmdlets de proveedor, consulte about_Providers.
Tipo: | Objeto: |
Aliases: | Args |
Posición: | 1 | Valor por defecto: | Ninguna | Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Especifica los tipos de comandos que recibe este cmdlet. Introduzca uno o más tipos de comandos. UtiliceCommandType o su alias, Type. Por defecto, Get-Command
obtiene todos los cmdlets, funciones yaliases.
Los valores aceptables para este parámetro son:
- Alias. Obtiene los alias de todos los comandos de PowerShell. Para obtener más información, consulte about_Aliases.
- All. Obtiene todos los tipos de comandos. El valor de este parámetro es el equivalente a
Get-Command *
. - Applicación. Obtiene los archivos que no son de PowerShell en las rutas enumeradas en la variable de entorno Path ($env:path), incluidos los archivos .txt, .exe y .dll. Para obtener más información sobre la variable de entorno Path, consulte about_Environment_Variables.
- Cmdlet. Obtiene todos los cmdlets.
- ExternalScript. Obtiene todos los archivos .ps1 en las rutas enumeradas en la variable de entorno Path($env:path).
- Filtro y función. Obtiene todas las funciones y filtros avanzados y simples de PowerShell.
- Script. Obtiene todos los bloques de scripts. Para obtener los scripts de PowerShell (archivos .ps1), utilice el valor ExternalScript.
Tipo: | CommandTypes |
Aliases: | Tipo |
Valores aceptados: | Alias, Función, Filtro, Cmdlet, ExternalScript, Aplicación, Script, Flujo de trabajo, Configuración, Todos |
Posición: | Nombre | Valor por defecto: | Ninguno | Aceptar entrada de canalización: | Verdadero | Aceptar caracteres comodín: | False |
Especificaciones de módulos con nombres que se especifican en forma de objetos ModuleSpecification,descritos en la sección Remarks deModuleSpecification Constructor (Hashtable).Por ejemplo, el parámetro FullyQualifiedModule acepta un nombre de módulo que se especifica en uno de los siguientes formatos:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName y ModuleVersion son obligatorios, pero Guid es opcional.
No se puede especificar el parámetro FullyQualifiedModule en el mismo comando que un Moduleparameter. Los dos parámetros son mutuamente excluyentes.
Tipo: | Especificación de módulo |
Posición: | Nombrado |
Valor por defecto: | Nada |
Aceptar entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Falso |
Indica que este cmdlet obtiene sólo los comandos de la sesión actual.
A partir de PowerShell 3.0, por defecto, Get-Command
obtiene todos los comandos instalados,incluyendo, pero sin limitarse a, los comandos de la sesión actual. En PowerShell 2.0, sólo obtiene los comandos de la sesión actual.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | SwitchParameter | Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Falso |
Este parámetro toma valores de cadena, pero el valor de este parámetro también puede ser un PSModuleInfoobject, como los objetos que devuelven los cmdlets Get-Module
y Import-PSSession
.
Tipo: | Cadena: | ||
Alias: | PSSnapin | Posición: | Nombre | Valor por defecto: | Ninguno |
Aceptar entrada de tuberías: | Verdadero | Aceptar caracteres comodín: | True |
Para obtener comandos que tengan el mismo nombre, utilice el parámetro All. Cuando dos comandos tienen el mismo nombre, por defecto, Get-Command
obtiene el comando que se ejecuta al escribir el nombre del comando.
Tipo: | Cadena: |
Posición: | 0 |
Ninguna | Aceptar entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Verdadero |
Tipo: | Cadena |
Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Verdadero |
Los parámetros ParameterName y ParameterType sólo buscan comandos en la sesión actual.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | Cadena |
Parámetro: | Nombre | Valor por defecto: | Ninguna | Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Verdadero |
Los parámetros ParameterName y ParameterType sólo buscan comandos en la sesión actual.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | PSTypeName | Posición: | Nombre | Valor por defecto: | Ninguna | Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Verdadero |
Este parámetro se introdujo en Windows PowerShell 5.0.
Tipo: | SwitchParameter | Posición: | Nombre | Valor por defecto: | Ninguna | Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | False |
Indica que este cmdlet obtiene sólo los siguientes datos especificados sobre el comando:
- Alias. Obtiene el nombre estándar y la sintaxis.
- Cmdlets. Obtiene la sintaxis.
- Funciones y filtros. Obtiene la definición de la función.
- Scripts y aplicaciones o archivos. Obtiene la ruta y el nombre del archivo.
Tipo: | SwitchParameter |
Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Falso |
Especifica el número de comandos a obtener. Puedes usar este parámetro para limitar la salida de un comando.
Tipo: | Int32 |
Posición: | Nombre |
Valor por defecto: | Ninguno | Aceptar entrada de canalización: | Verdadero | Aceptar caracteres comodín: | Falso |
Indica el uso de la coincidencia de los caracteres en el comando para encontrar con caracteres en mayúsculas en un comando. Por ejemplo, i-psdf
coincidiría con Import-PowerShellDataFile
ya que cada uno de los caracteres a buscar coincide con un carácter en mayúscula en el resultado. Cuando se utiliza este tipo de coincidencia, cualquier comodín no dará lugar a ninguna coincidencia.
Tipo: | Parámetros de conmutación | Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Falso |
Tipo: | Parámetros de conmutación | Posición: | Nombre | Valor por defecto: | Ninguna | Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Tipo: | Cadena |
Posición: | Nombre | Valor por defecto: | Ninguna | Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Verdadero |
Entradas
Cadena
Puede canalizar nombres de comandos a este cmdlet.
Salidas
CommandInfo
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.
AliasInfo
Representa los alias.
ApplicationInfo
Representa las aplicaciones y los archivos.
CmdletInfo
Representa los cmdlets.
FunctionInfo
Representa funciones y filtros.
Notas
- Cuando hay más de un comando con el mismo nombre disponible para la sesión,
Get-Command
retorna el comando que se ejecuta cuando se escribe el nombre del comando. Para obtener los comandos que tienen el mismo nombre, listados en orden de ejecución, utilice el parámetro All. Para obtener más información, consulteabout_Command_Precedence. - Cuando se importa un módulo automáticamente, el efecto es el mismo que el de utilizar el
Import-Module
cmdlet. El módulo puede añadir comandos, tipos y archivos de formato, y ejecutar scripts en la sesión.Para activar, desactivar y configurar la importación automática de módulos, utilice la variable de preferencia$PSModuleAutoLoadingPreference
. Para obtener más información, consulteabout_Preference_Variables. - Exportar-PSSession
- Obtener-Ayuda
- Obtener-Miembro
- Obtener-PSDrive
- Importar-PSSession
- about_Command_Precedence
.