如何在没有弃用 makecert.exe 的情况下在 Windows 上获取签名的 powershell 脚本?

如何在没有弃用 makecert.exe 的情况下在 Windows 上获取签名的 powershell 脚本?

我已按照此处的说明进行操作在 Windows 上创建代码签名证书以签署 PowerShell 脚本

但它不起作用,因为我收到此错误:

File C:\temp\script.ps1 cannot be loaded. A certificate chain processed, but terminated in a root certificate      
which is not trusted by the trust provider.

我尝试将创建的证书复制到我的用户和机器信任的发布者中,但没有成功。

谷歌给我:https://4sysops.com/archives/sign-your-powershell-scripts-to-increase-security/

等等,但它们都需要安装 Windows 10 SDK。

我只是想跑https://community.spiceworks.com/scripts/show/2998-adamj-clean-wsus?page=51在我的 Server 2016 WSUS 服务器上,不会对它造成任何不必要的污染,但我无法更改需要 powershell 脚本进行 AllSigned 的组策略。

帮助?

答案1

代码签名实际上只是为了阻止最终用户运行恶意的不受信任的脚本,它并不是真正为了阻止管理员运行他们已经检查和信任的东西。因此,绕过您有意运行的脚本的限制非常容易,而无需永久更改服务器上的默认设置。这可以通过从批处理文件或计划任务中调用它来完成,如下所示:

powershell.exe -windowstyle hidden -noprofile -executionpolicy bypass -file "C:\powershell script.ps1"

相关内容