【问题标题】:Cannot import user-defined module无法导入自定义模块
【发布时间】:2015-08-13 08:54:28
【问题描述】:

我有一些 PowerShell 函数,我想通过命令 Import-Module 将它们导入我的服务器 2008 R2。所以我创建了一个 psd1 文件并在 psm1 中使用:Export-ModuleMember -Function "*-*" -Alias *

但是当我执行命令时:

PS C:\Windows\system32> import-module Myloader -DisableNameChecking -Verbose
VERBOSE: Loading module from path 'C:\Tools\Myloader.psd1'.
VERBOSE: Loading module from path 'C:\Tools\Myloader.psm1'.

我希望它应该导入我的函数,但它没有,也没有显示错误。然后我执行Get-Module -ListAvailable,我的函数被列出了但是没有关于ExportedCommands的信息

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     3.0        MyLoader
Script     3.0        MyLoader

但是当我在我的本地机器上运行它时,它就可以了。以前有人遇到过这个问题吗?

此问题发生在 Windows Server 2008 R2、PowerShell 5.0 上。

【问题讨论】:

    标签: powershell windows-server-2008-r2 powershell-5.0


    【解决方案1】:

    使用module manifest 时,您在 .psd1 文件中进行导出。从 .psm1 文件中删除 Export-ModuleMember 语句并确保 .psd1 文件包含以下行:

    ModuleToProcess   = 'MyLoader.psm1'
    FunctionsToExport = '*-*'
    AliasesToExport   = '*'
    

    【讨论】:

    • 感谢您的解决方案@Ansgar。我对你的建议做了同样的事情,但没有任何改变。
    • @PhongVo 然后你需要显示你的 psm1 和 psd1 文件的内容。请编辑您的问题以包含该信息。
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2022-08-09
    • 2021-02-20
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多