PowerShell 脚本未与任务计划程序一起运行

Kah*_*Kah 6 powershell scheduled-tasks windows-server-2012-r2

所以我创建了一个安装 Windows 更新的 PowerShell 脚本,

您可能知道,在安装更新时,为了安装脚本,PC 可能必须重新启动(当仍有更新时)。

我实现的是在脚本开始时导入并在每次重新启动后运行脚本的任务(并在登录屏幕上安装剩余的脚本),直到没有更多的脚本剩下。

最后一次更新后,脚本将从任务调度程序中删除任务。

我的实现(下载/安装/添加任务/删除任务)完美运行。

只是我的脚本在重新启动后不会运行,我不知道为什么!

这是我的任务: 在此处输入图片说明

电脑重新启动后,脚本不再运行,任务调度程序中的错误状态为0x1

我做了一些谷歌搜索,发现参数可能是错误的(第三张图片当然路径是正确的)但我已经尝试过(在参数字段中):

  • (无引号)-文件路径
  • -ExecutionPolicy 绕过 - 文件路径
  • -NoProfile -ExecutionPolicy Bypass -file path -force
  • 将以上组合与添加或省略的引号混合在一起

任务调度程序没有启动我的脚本可能是什么问题?

谢谢

编辑

添加了作为批处理作业属性登录的屏幕截图:

在此处输入图片说明

Kah*_*Kah 6

问题与我的 START IN 有关 - 是空的!

我的脚本在C:\Scripts\Scripts.ps1所以我必须填写C:\Scripts\.

这是你需要做的 apt 否则 PS 将在它所在的文件夹中启动(Windows 文件夹)。

由于脚本使用了其他文件,我必须指定 START IN 路径,此后解决了。


fer*_*_io 5

尝试使用此参数,将其替换为您的实际路径(如果您的路径有空格):

-ExecutionPolicy Bypass -file "C:\Path to\script.ps1"

从错误来看,似乎无法运行脚本。除此之外,@TheMadTechnician 的评论是准确的。从您的图片来看,您似乎正在以本地管理员帐户的身份安排任务,因此确保该帐户不需要启用批量登录(如果它是真正的本地管理员并且该帐户仍在管理员中)服务器上的本地组)

另请注意 - 如果计划任务在运行时尝试自行删除,则可能会遇到问题。我没有亲自测试过,但您可以构建一个休眠几分钟的计划任务,并尝试在它使用测试的命令运行时取消注册它,看看是否失败。


小智 5

在计划任务中调用 Powershell.exe:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)

设置此参数:

-noprofile -executionpolicy unrestricted -noninteractive -file "C:\Path\To\MyScript.ps1"
Run Code Online (Sandbox Code Playgroud)