Get-Command

Obtiene todos los comandos.

Syntax

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

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-Helpde , 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 nombre en el nombre del cmdlet y, luego, los muestra en grupos basados en nombre. 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 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 encontrar cmdlets que le permiten 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 sintaxis de un alias

En este ejemplo se 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 -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>]

Ejemplo 12: 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 13: 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 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 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 15: 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.

Ejemplo 16: Obtener comandos mediante una coincidencia aproximada

En este ejemplo, el nombre del comando tiene deliberadamente un error tipográfico como "get-commnd". Con el -UseFuzzyMatching modificador, el cmdlet determinó que la mejor coincidencia fue Get-Command seguida por otros comandos nativos del sistema que eran una coincidencia similar.

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 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 método que Usa PowerShell para seleccionar el comando que se va a ejecutar cuando varios comandos tienen el mismo nombre, 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ArgumentList

Especifica una matriz de argumentos. Este cmdlet obtiene información sobre un cmdlet o una 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.

Type:Object[]
Aliases:Args
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 de Get-Command *.

  • Application: obtiene archivos que no son de PowerShell en rutas de acceso enumeradas en la variable de entorno Path ($env:path), incluidos .txtlos archivos , .exey .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 .ps1 archivos de las rutas de acceso enumeradas en la variable de entorno Path ($env:path).

  • Filter y Function: 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 el ExternalScript valor .

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.

Type:CommandTypes
Aliases:Type
Accepted values:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FuzzyMinimumDistance

Este parámetro permite filtrar los resultados aproximados para ser más o menos precisos. La distancia se calcula mediante el algoritmo Damerau Levenshtein Distance, que indica cuántos pasos son la coincidencia del valor original. Una distancia inferior es más precisa. Una distancia de cero es una coincidencia exacta.

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Module

Especifica una matriz de módulos. Este cmdlet obtiene los comandos procedentes de los módulos especificados. Escriba los nombres de módulos o objetos de módulo.

Este parámetro toma valores de cadena, pero el valor de este parámetro también puede ser un objeto PSModuleInfo , como los objetos que devuelven los Get-Module cmdlets y Import-PSSession .

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSTypeName[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ShowCommandInfo

Indica que este cmdlet muestra información de comandos.

Este parámetro se introdujo en Windows PowerShell 5.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UseAbbreviationExpansion

Indica el uso de la coincidencia de los caracteres del comando para buscar con caracteres en mayúsculas en un comando. Por ejemplo, i-psdf coincidiría Import-PowerShellDataFile como cada uno de los caracteres para buscar coincidencias con un carácter en mayúsculas en el resultado. Al usar este tipo de coincidencia, los caracteres comodín no darán lugar a ninguna coincidencia.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UseFuzzyMatching

Indica el uso de un algoritmo de coincidencia aproximada al buscar comandos. El orden de la salida es de la coincidencia más cercana a la coincidencia menos probable. No se deben usar caracteres comodín con coincidencia aproximada, ya que intentará buscar coincidencias con comandos que puedan contener esos caracteres comodín.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Entradas

String

Puede canalizar los 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 alias.

ApplicationInfo

Representa aplicaciones y archivos.

CmdletInfo

Representa cmdlets.

FunctionInfo

Representa funciones y filtros.

Notas

PowerShell incluye los siguientes alias para Get-Command:

  • Todas las plataformas:

    • 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.