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

如何让普通用户无需修改执行策略即可运行指定PowerShell脚本

解决Restricted执行策略下非管理员运行PowerShell脚本的方案

完全可以用自签名证书实现需求,既不用永久放开全局执行策略,也不用每次手动调整,只需完成一次配置即可让用户长期安全运行脚本。以下是具体操作步骤:

一、本地生成自签名代码签名证书

在你的电脑上以管理员权限打开PowerShell,执行以下命令生成证书(有效期可按需调整,示例设为10年):

# 创建自签名代码签名证书
$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=你的名称/组织标识" -KeySpec Signature -KeyUsage DigitalSignature -FriendlyName "PowerShell脚本签名证书" -NotAfter (Get-Date).AddYears(10) -CertStoreLocation "Cert:\CurrentUser\My"

# 导出公钥证书(无需私钥)给用户导入
Export-Certificate -Cert $cert -FilePath "C:\指定路径\ScriptSigningCert.cer"

二、用户导入证书到信任存储(仅需操作一次)

用户拿到你发送的ScriptSigningCert.cer文件后,按以下步骤操作(无需管理员权限):

  1. 双击打开证书文件,点击「安装证书」
  2. 选择「当前用户」,点击「下一步」
  3. 选择「将所有证书放入下列存储」,点击「浏览」
  4. 选中「受信任的根证书颁发机构」,点击「确定」
  5. 依次点击「下一步」「完成」,确认导入成功

三、用户配置执行策略(仅需操作一次)

用户以普通权限打开PowerShell,执行以下命令设置当前用户的执行策略(比Restricted灵活,比Unrestricted安全):

# 设置当前用户执行策略为RemoteSigned(允许本地脚本运行,远程脚本需签名)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

如果需要更严格的控制(仅允许签名脚本运行),可改为:

Set-ExecutionPolicy AllSigned -Scope CurrentUser -Force

四、给脚本签名并交付用户

在你的电脑上,用之前生成的证书给脚本签名:

# 获取签名证书
$signingCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Where-Object {$_.FriendlyName -eq "PowerShell脚本签名证书"}

# 给目标脚本签名
Set-AuthenticodeSignature -FilePath "C:\你的脚本路径\TargetScript.ps1" -Certificate $signingCert

将签名后的脚本发送给用户,用户只需双击脚本或在PowerShell中输入脚本路径即可直接运行,无需后续额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:02:46