【发布时间】:2018-06-08 21:57:24
【问题描述】:
我正在试验 PowerShell 和脚本签名。我已经创建了一个示例脚本。
Write-Host "hello, world"
我进一步创建了一个自签名证书并将其(以管理员身份)安装到受信任的证书存储“TrustedPeople”。然后我激活了执行策略
Set-ExecutionPolicy -scope process AllSigned
此后脚本无法再执行。这是预期的。所以我已经签署了脚本:
Set-AuthenticodeSignature -FilePath .\hello.ps1 $cert
变量$cert 仍然包含自签名证书。之后我在启动脚本时收到了这条消息:
您想运行来自这个不受信任的发布者的软件吗?
文件 C:\temp\hello.ps1 由 CN=Ich 发布,在您的系统上不受信任。只运行来自受信任的发布者的脚本。
[V] 从不运行 [D] 不运行 [R] 运行一次 [A] 始终运行 [?] 帮助(默认为“D”):
由于 PowerShell 的本地化不好,我选择了错误的答案 [E]:
[E] Noch nie ausgeführt [N] Nicht ausführen [M] Einmal ausführen [A] Immer ausführen
在那种状态下,我不能再执行脚本了。删除并重新安装证书没有帮助。我怎样才能恢复这个错误之前的状态?
编辑:在我进行试验时,我可以删除证书并创建一个新证书。但是,如果我分发了脚本和证书,而这个错误发生在另一台 PC 上,会发生什么?在这种情况下,清除证书不是一种选择。因此我实际上恢复了证书。
【问题讨论】:
-
dir Cert:\CurrentUser\Disallowed是否列出您的证书?
标签: powershell