答案1
发生这种情况是因为Window 的执行策略,默认情况下不允许其他程序运行未签名的 powershell 脚本。您需要更改此策略才能使您的任务正常运行。
- 打开提升的 Powershell 提示符。
- 键入
Set-ExecutionPolicy Unrestricted
以将策略设置为“不受限制”。 - 键入
Get-ExecutionPolicy
以验证执行策略的当前设置。
请注意,更改此设置可能会带来安全威胁,因为其他程序也可以运行恶意脚本。相反,您可以尝试编写同一脚本的批处理脚本衍生版本(如果可能),然后使用它来代替此脚本。Windows 执行策略不会阻止批处理脚本。
答案2
我知道这已经过时了,但你可能需要对任何 PowerShell 脚本进行数字签名。将执行策略设置为不受限制的建议是糟糕的建议,而且你的安全团队很可能会阻止更改该策略。
获取帮助设置-AuthenticodeSignature
例如:Set-AuthenticodeSignature -FilePath .\Path_to_script.ps1 -Certificate (Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert)
(假设您的个人证书存储区中有一个代码签名证书)