请观察:
C:\xyz\DevOps\DFDeploymentSmokeTests [master ≡]> get-module xyz.PS.Dev -ListAvailable | ft -AutoSize
C:\xyz\DevOps\DFDeploymentSmokeTests [master ≡]> get-module xyz.PS.Dev | ft -AutoSize
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.19107.2 xyz.PS.Dev {Add-OctopusChannelsToProjectSteps, Add-OctopusEnvironmentsToProjectSteps, Add-VisualStudioToPath, Copy-OctopusVariables...}
C:\xyz\DevOps\DFDeploymentSmokeTests [master ≡]>
任何人?
编辑1
C:\> Get-Help Get-Module -Parameter ListAvailable
-ListAvailable
Required? true
Position? Named
Accept pipeline input? false
Parameter set name Available, PsSession, CimSession
Aliases None
Dynamic? false
C:\>
总结Lee_Dailey和Owain Esau在评论中提供的有用信息:
Get-Module -ListAvailable
列出了标准位置中可用的所有模块 - 无论这些模块当前是否已加载。
这些standard locations是$env:PSModulePath
环境变量中列出的目录,PowerShell可以根据需要创建或添加缺少的条目;假设未设置$PSModuleAutoLoadingPreference
(默认值),位于这些目录中的模块会在访问其命令时根据需要自动加载。请参阅the docs了解详情。Get-Module
本身列出了所有当前加载的模块。因此,Get-Module -ListAvailable
不是Get-Module
的真正超集,因为它没有列出从非标准位置加载的当前加载的模块中的那些;引用Get-Module
help:
ListAvailable
不会返回有关PSModulePath
环境变量中找不到的模块的信息,即使这些模块是在当前会话中加载的。