我在从另一个模块中的函数全局导入 cmdlet 时遇到问题。
这是这种情况。假设我试图调用Test-Method一个 dll。当我运行时Import-Module <dll path>,一切正常,我可以Test-Method毫无问题地调用。
然后我把命令放到一个函数中,以简化使用。现在我有类似的东西:
function Import-Cmdlets
{
Import-Module "<dll path>" -Scope Global -Force
}
Run Code Online (Sandbox Code Playgroud)
现在在 Powershell 中我调用Import-Cmdlets,然后我可以Test-Method毫无问题地调用。
然而,当我把函数到PSM1文件,并导入模块上的PSM1文件,我找不到Test-Method了。
现在我有一个mymodule.psm1包含以下内容的文件:
function Import-Cmdlets
{
Import-Module "<dll path>" -Scope Global -Force
}
Run Code Online (Sandbox Code Playgroud)
然后在 PowerShell 中我运行:
Import-Module mymodule.psm1 -Force
Import-Cmdlets
Run Code Online (Sandbox Code Playgroud)
现在我找不到Test-Method更多了。我运行时会显示 dll Get-Module,我可以Test-Method从 ExportedCommands 中看到。但我无法访问它。
这只发生在 dll 导入中。我试过用psm1文件替换dll路径,没有遇到这个问题。
什么是解决此问题的好方法或解决方案?
小智 1
我遇到了同样的问题并添加参数 -Scope Global 修复了它
将您的线路更改为Import-Module <path to your module> **-Scope Global**
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |