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

如何通过内网服务器签名PowerShell脚本,实现客户端免改执行策略运行?

解决封闭企业环境PowerShell脚本签名部署问题

核心方案:利用本地CA生成代码签名证书签名脚本

公司本地CA完全可以生成Windows执行策略认可的代码签名证书,按以下步骤操作即可实现无需修改执行策略运行脚本:

1. 确认并配置CA代码签名证书模板

  • 登录公司本地CA服务器,打开「证书颁发机构」控制台
  • 检查是否存在代码签名模板,若没有,右键「证书模板」→「新建」→「要颁发的证书模板」,选择「代码签名」模板(默认已存在)
  • 配置模板权限:确保负责签名脚本的账号拥有「注册」和「读取」权限

2. 申请代码签名证书

  • 在用于签名脚本的服务器/工作站上,打开PowerShell执行:
    Get-Certificate -Template CodeSigning -CertStoreLocation Cert:\CurrentUser\My
    
  • 若需要跨机器签名,可通过MMC证书控制台导出带私钥的PFX文件(记得设置强密码),在目标签名机器导入

3. 确保所有工作站信任本地CA根证书

  • 因为你的环境中用户和工作站已通过本地CA认证,根证书应该已自动部署到所有机器的「受信任的根证书颁发机构」存储
  • 若个别机器未部署,手动导入CA根证书到该存储即可

4. 签名PowerShell脚本

  • 在拥有代码签名证书的机器上,执行签名命令:
    # 获取当前用户存储中的代码签名证书
    $signingCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert
    # 签名目标脚本
    Set-AuthenticodeSignature -FilePath "C:\Path\To\FixScript.ps1" -Certificate $signingCert
    

5. 验证并执行脚本

  • 验证签名有效性:
    Get-AuthenticodeSignature "C:\Path\To\FixScript.ps1"
    
    确保Status字段显示Valid
  • 目标工作站执行脚本时,只要执行策略为AllSigned或RemoteSigned(企业环境默认配置),即可直接运行签名后的脚本,无需修改执行策略

旧版PowerShell兼容说明

  • 即使是PowerShell v2,同样支持Authenticode签名验证,只要证书合法且CA根证书被信任,就能正常运行签名脚本
  • 绝对不要使用-ExecutionPolicy Bypass或修改注册表等绕过方式,既不安全也不符合企业安全规范

内容的提问来源于stack exchange,提问作者Autis'Tech'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 08:12:43