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 $_"}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...