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

本地PowerShell仓库发布模块报模块清单无效错误的问题问询

故障复现与报错信息

操作步骤

  1. 执行以下命令创建本地PowerShell内部仓库:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$PSPath = \\repo.lab.local\PoShRepo$
$Repo = @{
Name = "PoShRepo"
SourceLocation = $PSPath
PublishLocation = $PSPath
InstallationPolicy = "Untrusted"
}
Register-PSRepository @Repo
  1. 执行命令从PSGallery保存SecretStore模块到本地仓库路径,执行无异常:
# 注:原命令中SecretStore与-Path参数间遗漏空格,已补正
Save-Module -Name Microsoft.PowerShell.SecretStore -Path $PSPath -Repository PSGallery -Verbose -Force
  1. 执行命令尝试将模块发布到自建内部仓库:
Publish-Module -Path "$($PSPath)\Microsoft.PowerShell.SecretStore" -Repository PoShRepo -Force

报错内容

执行发布命令时返回以下错误:

Microsoft.PowerShell.Core\Test-ModuleManifest : 模块清单文件'C:\Users\admin\AppData\Local\Temp\4\704260633\Microsoft.PowerShell.SecretStore\Microsoft.PowerShell.SecretStore.psd1'中指定的RequiredModules条目'Microsoft.PowerShell.SecretManagement'无效,请将该条目更新为有效值后重试。
报错触发位置:C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1144 char:27

  • CategoryInfo : ObjectNotFound: (C:\Users\admin...ecretStore.psd1:String) [Test-ModuleManifest], DirectoryNotFoundException
  • FullyQualifiedErrorId : Modules_InvalidRequiredModulesinModuleManifest,Microsoft.PowerShell.Commands.TestModuleManifestCommand
故障原因
  • Microsoft.PowerShell.SecretStore模块的清单文件中声明了对Microsoft.PowerShell.SecretManagement模块的强依赖,Publish-Module执行时会调用Test-ModuleManifest校验所有声明的依赖是否存在。
  • 你当前使用的是1.0.0.1版本的PowerShellGet模块,该版本校验逻辑不会自动拉取缺失依赖,只要本地环境或目标仓库中找不到声明的依赖项,就会直接抛出校验失败错误。
  • 你之前只保存了SecretStore模块到本地路径,没有保存、发布其依赖的SecretManagement模块,是触发报错的直接原因。
修复方法

按顺序执行以下操作即可解决问题:

  1. 先将缺失的依赖模块从PSGallery保存到本地仓库路径
Save-Module -Name Microsoft.PowerShell.SecretManagement -Path $PSPath -Repository PSGallery -Verbose -Force
  1. 先发布依赖模块到你的内部PoShRepo仓库
Publish-Module -Path "$($PSPath)\Microsoft.PowerShell.SecretManagement" -Repository PoShRepo -Force
  1. 重新执行SecretStore模块的发布命令即可正常完成
Publish-Module -Path "$($PSPath)\Microsoft.PowerShell.SecretStore" -Repository PoShRepo -Force

可选优化:如果后续需要频繁发布带依赖的模块,可以将PowerShellGet模块升级到2.2.5及以上版本,确认依赖已存在于目标仓库时,发布命令可添加-SkipDependencies参数跳过依赖校验,提升发布效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:15:52