为什么计划任务没有在 Windows Server 上运行?

为什么计划任务没有在 Windows Server 上运行?

我在 Windows Server 2016 中存储了几个计划任务。但它们都没有在指定的时间执行。如果我手动运行它们,它们会正常运行。我还在 SQL 服务器中创建了一些手动运行但未按计划运行的任务。问题是什么?

在此处输入图片描述

答案1

发生这种情况是因为Window 的执行策略,默认情况下不允许其他程序运行未签名的 powershell 脚本。您需要更改此策略才能使您的任务正常运行。

  1. 打开提升的 Powershell 提示符。
  2. 键入Set-ExecutionPolicy Unrestricted以将策略设置为“不受限制”。
  3. 键入Get-ExecutionPolicy以验证执行策略的当前设置。

请注意,更改此设置可能会带来安全威胁,因为其他程序也可以运行恶意脚本。相反,您可以尝试编写同一脚本的批处理脚本衍生版本(如果可能),然后使用它来代替此脚本。Windows 执行策略不会阻止批处理脚本。

答案2

我知道这已经过时了,但你可能需要对任何 PowerShell 脚本进行数字签名。将执行策略设置为不受限制的建议是糟糕的建议,而且你的安全团队很可能会阻止更改该策略。

获取帮助设置-AuthenticodeSignature

例如:Set-AuthenticodeSignature -FilePath .\Path_to_script.ps1 -Certificate (Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert)

(假设您的个人证书存储区中有一个代码签名证书)

相关内容