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

问题描述 投票:1回答:3

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

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

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

在上次更新之后,脚本将从任务计划程序中删除任务。

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

只是我的脚本在重启后才会运行,我不明白为什么!

这是我的任务:enter image description here

在重新启动电脑后,脚本不再运行,并且任务调度程序状态为0x1时出错

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

  • (没有引号) - 文件路径
  • -ExecutionPolicy Bypass -file path
  • -NoProfile -ExecutionPolicy Bypass -file path -force
  • 将上述组合与添加或省略的引号混合

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

谢谢

编辑

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

enter image description here

powershell scheduled-tasks windows-server-2012-r2
3个回答
1
投票

试试这个参数,用你的实际路径替换它(如果你的路径有空格):

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

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

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


0
投票

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

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

设置此参数:

-noprofile -executionpolicy unrestricted -noninteractive -file "C:\Path\To\MyScript.ps1"

0
投票

这个问题与我的START IN-being空洞有关!

我的剧本是在C:\Scripts\Scripts.ps1,所以我不得不填写C:\Scripts\

这是你需要做的事情,否则PS将从它所在的文件夹(Windows文件夹)开始。

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

© www.soinside.com 2019 - 2024. All rights reserved.