如何解决PowerShell导入模块通配符不起作用?
为简单起见,我有一些脚本可以导入所有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 $_"}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。