使用Microsoft Trusted Signing签名PowerShell脚本遇未信任发布者问题
问题解答
1. Microsoft Trusted Signing 是否支持签名PowerShell脚本?
完全支持。Microsoft Trusted Signing就是为代码签名场景设计的服务,涵盖PowerShell脚本(.ps1)、可执行文件、MSI安装包等多种类型的代码文件,你用它签名.ps1的方式本身没问题,当前错误并非服务不支持导致。
2. 根CA已信任但中间CA未信任时的配置方案
PowerShell验证脚本签名时,要求完整的信任链必须全部被信任——从你的企业签名证书,到所有中间CA,再到根CA,每一环都需要在本地证书存储中处于受信任状态。仅信任根CA不够,中间CA缺失信任会导致整个链验证失败,触发"未信任发布者"错误。
你需要完成以下操作:
- 找到签名证书链中的中间CA证书,将其导入到本地机器的**「受信任的中间证书颁发机构」**存储(通过
certlm.msc打开证书管理器,定位到该存储,右键选择"所有任务"->"导入"完成操作) - 确认你的企业签名证书的增强密钥用法(EKU)包含「代码签名(Code Signing)」——这是PowerShell认可签名的必要条件,Trusted Signing默认会配置,但可以通过证书属性查看确认
- 企业环境建议通过组策略批量推送中间CA证书信任,避免单台机器手动操作的繁琐
附你遇到的错误信息:
File C:\Users\Username\OneDrive - COMPANY\Desktop\test.ps1 is published by CN=<COMPANY NAME>, O=<COMPANY>, L=Leeds, S=Leeds, C=GB and is not trusted on your system. Only run scripts from trusted publishers. [V] Never run [D] Do not run [R] Run once [A] Always run [?] Help (default is "D"): N
内容的提问来源于stack exchange,提问作者Alex Carter
相关产品推荐
相关产品推荐

