You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义PowerShell模块导入后无导出命令等信息排查求助

自定义PowerShell模块导入后无版本、作者及导出命令信息的排查方案

核心原因

直接导入.psm1脚本文件时,PowerShell不会自动关联对应的.psd1模块清单,因此模块的元数据(版本、作者、导出命令等)不会被加载,这就是Get-Module显示版本为0.0且无导出命令的根本原因。此前正常工作大概率是因为之前通过.psd1清单文件导入,而非直接导入.psm1。

排查与解决步骤

  • 改用模块清单文件导入
    停止直接导入.psm1,执行以下命令导入模块清单:

    Import-Module .\testmodule.psd1
    

    导入后运行Get-Module testmodule,即可看到正确的版本、作者及导出命令,与Test-ModuleManifest的输出一致。

  • 检查模块文件路径与清单配置

    1. 确保.psd1与.psm1在同一目录下,导入时使用正确的工作路径或绝对路径。
    2. 打开testmodule.psd1,确认RootModule字段准确指向testmodule.psm1(Windows下不区分大小写,Linux/macOS需注意大小写匹配),示例配置:
      RootModule = 'testmodule.psm1'
      
  • 排查.psm1脚本的潜在问题

    1. 在.psm1开头添加错误捕获,检查是否有未处理的异常导致模块加载中断:
      $ErrorActionPreference = 'Stop'
      
      重新导入模块,观察是否有错误抛出。
    2. 修复安全协议赋值的换行问题,改为单行写法避免潜在语法异常:
      [Net.ServicePointManager]::SecurityProtocol = 'Tls,Tls11,Tls12,Ssl3'
      
  • 验证模块清单完整性
    执行以下命令查看清单的详细验证输出,确认元数据无损坏:

    Test-ModuleManifest -Path .\testmodule.psd1 -Verbose
    

    对比清单文件的历史版本(如有),确保ModuleVersion、Author、ExportedCommands等字段未被意外修改。

内容的提问来源于stack exchange,提问作者83jahs8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:35