2011-06-15 35 views
49

要知道哪個的powershell模塊是可用的機器我使用命令如何從模塊中檢索可用命令?

Get-Module -ListAvailable 

此方法返回模塊型,-name和導出的命令的列表上。但導出的命令始終爲空,只顯示{} 爲什麼不顯示? 我是否必須使用其他參數或者是否有另一個cmdlet或方法來檢索可用的命令?

回答

81

如果模塊未加載,導出的命令不可用。您需要先加載模塊,然後再執行得到命令:

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

很遺憾。但很高興知道。 – Tom 2011-06-15 08:03:18

9

使用參數-ListAvailable

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

<moduleName>」是可選的。省略顯示所有可用的模塊。

+4

歡迎來到Stack Overflow!儘管這段代碼可以解決這個問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性。 – FelixSFD 2016-11-23 12:06:37

+0

我的問題有點過時了。但是你的回覆不適用於PowerShell 2,因爲屬性「ExportedCommands」是空的。您的代碼適用於PowerShell 4和5。 – Tom 2017-01-13 09:43:37