【问题标题】:Why are PowerShell Import-Module wildcards not working?为什么 PowerShell 导入模块通配符不起作用?
【发布时间】:2020-10-07 11:47:57
【问题描述】:

为了简单起见,我有一些脚本可以导入所有 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 时,它们会正确显示。

【问题讨论】:

    标签: powershell import module powercli


    【解决方案1】:

    Import-Module 不支持通配符。但是,您可以做的是使用 Get-Module 获取所有模块名称,然后将它们通过管道传送到 ForEach-Object 命令中。

    我相信这会实现你所追求的:

    Get-Module -Name "VMWave.*" | ForEach-Object { Import-Module $_; Write-Host "Imported Module $_"}
    

    【讨论】:

      猜你喜欢
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多