问题描述
为简单起见,我有一些脚本可以导入所有VMware模块。 这一直奏效-但是现在在一台服务器上就行不通了。
PS C:\Temp> Import-Module VMware.*
Import-Module : The specified module 'VMware.*' was not loaded because no valid module file was found in any module
directory.
At line:1 char:1
+ Import-Module VMware.*
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (VMware.*:String) [Import-Module],FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
我刚刚将模块复制到C:\Windows\System32\WindowsPowerShell\v1.0\Modules
。
当我使用全名(Import-Module VMware.VimAutomation.Core
)时,它照常工作。
有人知道吗?当我执行Get-Module -ListAvailable
时,它们会正确显示。
解决方法
Import-Module
不支持通配符。但是,您可以做的是使用Get-Module
获取所有模块名称,然后将其通过管道传递到ForEach-Object
命令中。
我相信这将实现您的追求:
Get-Module -Name "VMWave.*" | ForEach-Object { Import-Module $_; Write-Host "Imported Module $_"}