📌  相关文章
📜  没有数字签名.您无法在当前系统上运行此脚本 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:56:02.677000             🧑  作者: Mango

没有数字签名.您无法在当前系统上运行此脚本 - Shell-Bash

当您在尝试在当前系统上运行脚本时,可能会遇到类似以下错误信息:

没有数字签名.您无法在当前系统上运行此脚本 - Shell-Bash

这是因为在当前系统上启用了默认安全策略(disabled execution policy),该策略禁止运行未经数字签名的脚本。这样做是为了增加系统的安全性,防止在未知来源的脚本中隐藏恶意代码。

解决方案
  • 为该脚本提供数字签名,以保证在系统上运行时得到安全性的保障。

  • 更改当前系统默认安全策略(disabled execution policy),以允许执行未经数字签名的脚本。此操作可能会降低系统的安全性,应慎重考虑。

更改执行策略(disabled execution policy)
  • 打开PowerShell命令行终端,以管理员身份运行

  • 输入以下命令更改执行策略:

Set-ExecutionPolicy RemoteSigned

该命令会将执行策略更改为RemoteSigned,这意味着允许运行当前电脑上的数字签名过的脚本,但在从网络或外部来源下载脚本时,必须进行数字签名后才能运行。

  • 输入以下命令可验证更改后是否生效:
Get-ExecutionPolicy

执行完该命令后,如果该命令返回值为RemoteSigned,请继续尝试运行您的脚本。

数字签名脚本

数字签名可以证明代码的来源以及代码完整性,提高代码的可信度。

  • 使用 PowerShell 命令签署脚本:
Set-AuthenticodeSignature -FilePath C:\script\test.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

上述命令将对以下内容进行数字签名:

  • FilePath:脚本文件的位置

  • Certificate:数字证书,以执行数字签名

对脚本进行数字签名后,即可在当前系统上运行该脚本。