我正在试验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;A总是运行帮助时不要运行R run (默认值为"D"):
由于PowerShell的本地化不好,我选择了错误的答案E
E Noch nie ausgeführt N Nicht ausführen M Einmal ausführen A Immer ausführen
在这种情况下,我不能再执行脚本了。删除和重新安装证书没有帮助。我怎样才能在这个错误之前恢复状态呢?
编辑:,当我在实验的时候,我可以删除证书并创建一个新的证书。但是,如果我分发了脚本和证书,而这个错误发生在另一台PC上,会发生什么呢?在这种情况下,清除证书不是一种选择。因此,我实际上恢复了证书。
发布于 2017-12-28 11:34:51
我想您的证书是自动添加到不受信任的证书中的。尝试从不受信任的证书存储区中删除证书,然后将证书添加到系统上的受信任列表中,以便在不被提示的情况下运行脚本。
见How to trust a certificate in Windows Powershell。
更新我可以在我的机器上重现这个问题。在选择[V] Never run之后,我无法再执行脚本了。原因是,我的有效证书被添加到我的用户帐户的不可信证书中。我可以通过做以下事情来解决我的问题。
Ctrl + mCertificatesAdd >My user account
Untrusted Certificateshttps://stackoverflow.com/questions/48006007
复制相似问题