2011-06-15 13 views
49

para saber qué PowerShell-módulos están disponibles en una máquina que uso el comando¿Cómo recupero los comandos disponibles de un módulo?

Get-Module -ListAvailable 

Esto devuelve una lista con el tipo de módulo, -nombre y los comandos exportados. Pero los comandos exportados están siempre vacíos y solo muestran {} ¿Por qué no se muestra? ¿Tengo que usar otro parámetro o hay otro cmdlet o método para recuperar los comandos disponibles?

Respuesta

81

Los comandos exportados no están disponibles si el módulo no está cargado. Es necesario cargar el módulo primero y luego ejecutar get-command:

Import-Module -Name <ModuleName> 
Get-Command -Module <ModuleName> 
+1

Una pena. Pero es bueno saberlo – Tom

9

Utilice el parámetro -ListAvailable

Get-Module <moduleName> -ListAvailable | % { $_.ExportedCommands.Values } 

"<moduleName>" es opcional. Omita para mostrar todos los módulos disponibles.

+4

¡Bienvenido a Stack Overflow! Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. Intente no aglomerar su código con comentarios explicativos, esto reduce la legibilidad tanto del código como de las explicaciones. – FelixSFD

+0

Mi pregunta está un poco desactualizada. Pero su respuesta no funciona para powershell 2 porque la propiedad "ExportedCommands" está vacía. Tu código funciona correctamente para PowerShell 4 y 5. – Tom

Cuestiones relacionadas