我已按照此处的说明进行操作在 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"