Compartir a través de


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 cmdlet Get-Command 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 variable de preferencia $PSModuleAutoLoadingPreference. Para obtener más información, vea about_Preference_Variables.

Get-Command obtiene sus datos directamente desde el código de comando, a diferencia de Get-Help, que obtiene su información de temas de ayuda.

A partir de Windows PowerShell 5.0, los resultados del cmdlet Get-Command muestran una columna Versión de forma predeterminada. Se ha agregado una nueva propiedad Version a la clase CommandInfo de .

Ejemplos

Ejemplo 1: Obtener cmdlets, funciones y alias

Este comando obtiene los cmdlets, funciones y alias de PowerShell 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 de 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 cmdlet Get-AppLockerPolicy. 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 variable de preferencia $PSModuleAutoLoadingPreference. Para obtener más información, vea about_Preference_Variables.

Ejemplo 6: Obtención de la sintaxis de un cmdlet

Este comando usa los parámetros ArgumentList y Sintaxis para obtener la sintaxis del 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 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 de agrega un parámetro dinámico, CodeSigningCert, al cmdlet Get-ChildItem.

Para obtener más información sobre el proveedor de certificados, vea about_Certificate_Provider.

Ejemplo 7: Obtener parámetros dinámicos

El comando del ejemplo usa la función Get-DynamicParameters para obtener los parámetros dinámicos que el proveedor de certificados agrega al cmdlet Get-ChildItem cuando se usa en la unidad Cert: .

function Get-DynamicParameters
{
    param ($Cmdlet, $PSDrive)
    (Get-Command $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. Se trata de una alternativa al método usado en el ejemplo anterior. Otro cmdlet o proveedor pueden agregar parámetros dinámicos a un cmdlet.

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 ruta de acceso variable de entorno ($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 mediante un nombre

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 cmdlet Get-Command con un alias.

Get-Command 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 Nombre valor de propiedad para alias. La vista muestra el alias y el nombre completo del comando.

Ejemplo 11: Obtener todas las instancias del comando Bloc de notas

En este ejemplo se usa el parámetro All del cmdlet Get-Command para mostrar todas las instancias del comando "Bloc de notas" 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 distinto del 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 cmdlet Get-Date. 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 funciones que tienen un tipo de salida 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 cmdlet Where-Object, que selecciona solo los que se rellenan en la propiedad OutputType. Otro operador de canalización envía los objetos de cmdlet seleccionados al cmdlet Format-List, 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 toman objetos de adaptador de net como entrada. Puede usar este formato de comando para buscar los cmdlets que aceptan el tipo de objetos que devuelve cualquier comando.

El comando usa el PSTypeNames propiedad intrínseca de todos los objetos, que obtiene los tipos que describen el objeto. Para obtener la propiedad PSTypeNames de de un adaptador net y no la propiedad PSTypeNames de 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 de un adaptador net y no la propiedad PSTypeNames de 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 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, vea about_Modules.

Este parámetro se introdujo 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 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 del 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 para la primera ruta de acceso el 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 varios tipos de comandos. Use CommandType o su alias, Type. De forma predeterminada, Get-Command obtiene todos los cmdlets, funciones y alias.

Los valores aceptables para este parámetro son:

  • Alias. Obtiene los alias de todos los comandos de PowerShell. Para obtener más información, vea about_Aliases.
  • Todo. Obtiene todos los tipos de comandos. Este valor de parámetro es el equivalente de Get-Command *.
  • Aplicación. Obtiene archivos que no son de PowerShell en rutas de acceso enumeradas en la variable de entorno path path de ($env:path), incluidos los archivos .txt, .exey .dll. Para obtener más información sobre la variable de entorno path de , consulte about_Environment_Variables.
  • Cmdlet. Obtiene todos los cmdlets.
  • ExternalScript. Obtiene todos los archivos de .ps1 de las rutas de acceso enumeradas en la variable de entorno path path de ($env:path).
  • Filtro y función. Obtiene todas las funciones y filtros avanzados y simples de PowerShell.
  • Guión. Obtiene todos los bloques de script. Para obtener scripts de PowerShell (.ps1 archivos), use el valor de ExternalScript.
  • Flujo de trabajo. 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.
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

Especifica módulos con nombres especificados en forma de objetos ModuleSpecification , descritos en la sección comentarios de ModuleSpecification Constructor (Hashtable). Por ejemplo, el parámetro FullyQualifiedModule acepta un nombre de módulo especificado en uno de los siguientes formatos:

  • @{ModuleName = "modulename"; ModuleVersion = "version_number"}
  • @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}

ModuleName y moduleVersion son necesarios, pero guid es opcional.

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 introdujo 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 PSModuleInfo o objeto PSSnapinInfo, como los objetos que devuelven los cmdlets de Get-Module, Get-PSSnapiny Import-PSSession.

Puede hacer referencia a este parámetro por su nombre, Moduleo por su alias, PSSnapin. El nombre del parámetro que elija no tiene ningún efecto en la salida 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 patrón de nombre. Se permiten caracteres comodín.

Para obtener comandos con 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 varios nombres o patrones de nombre. Se permiten 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 admiten caracteres comodín.

Los parámetros ParameterName y parameterType solo buscan comandos en la sesión actual.

Este parámetro se introdujo 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 el nombre parcial de un tipo de parámetro. Se admiten caracteres comodín.

Los parámetros ParameterName y parameterType solo buscan comandos en la sesión actual.

Este parámetro se introdujo 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 la salida 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 permiten 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

String

Puede canalizar los nombres de comandos a este cmdlet.

Salidas

CommandInfo

Este cmdlet devuelve objetos derivados de la clase commandInfo de . 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.

WorkflowInfo

Representa flujos de trabajo.

Notas

  • 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 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 variable de preferencia $PSModuleAutoLoadingPreference. Para obtener más información, vea about_Preference_Variables.