【问题标题】:Windows 10 Schtasks.exe Delete After Final Run ErrorWindows 10 Schtasks.exe 最终运行错误后删除
【发布时间】:2018-10-09 01:29:05
【问题描述】:

我正在尝试使用schtasks 运行一个一次性任务,该任务将简单地执行一个程序。这是它的样子:

schtasks /Create /SC ONCE /TN "OpenCalc" /TR "C:\Windows\System32\calc.exe" /ST "11:59" /SD "09/12/2018"

这行得通。它创建一个任务(可以在 Windows 任务计划程序中看到)并执行。

我希望此任务在执行一次后自行删除,因此我添加以下内容:

/Z

A value that marks the task to be deleted after its final 

现在我的命令是:

schtasks /Create /SC ONCE /TN "OpenCalc" /TR "C:\Windows\System32\calc.exe" /ST "11:59" /SD "09/12/2018" /Z

但是,现在我收到以下错误:

ERROR: The task XML is missing a required element or attribute.
(40,4):EndBoundary:

documentation 会让我相信/Z 开关与/XML 参数无关,但可能情况并非如此。我在这里遗漏了什么吗?

【问题讨论】:

标签: windows powershell scheduled-tasks windows-task-scheduler


【解决方案1】:

/z 选项不适用于 starttype once,请参阅this 答案。使用选项/v1,任务创建成功,但运行后不会被删除。

您可以“手动”删除任务,例如。

... /TR "cmd.exe /c C:\Windows\System32\calc.exe && schtasks /delete /tn OpenCalc /f"

【讨论】:

  • 嗨,我希望我的 schtask 在运行后自行删除,我已经设置了 /sc ONIDLE,但 schtask 没有使用“&& schtask /delete......”运行。我的脚本是 schtasks /create /TN "testing1" /TR "ngen install file && schtasks /delete /TN "testing1"" /SC ONIDLE /I 1 /RL HIGHEST /F。它看起来与您在此处的答案相似,但使用 && delete 我的第一部分 schtask(ngen install) 也无法运行。想知道你有什么想法吗?提前致谢!
  • 好的,& 和 && 仅适用于 Windows 的 cmd.exe,所以我的情况不适用于 &&。
  • 嗨@ScottTan。是的你是对的。诀窍是有一个命令(使用 /TR),它执行所需的操作,然后删除自身。要连接可执行文件,您可以使用 cmd.exe,检查 this。还要小心双引号,如果您的任务名称不包含空格,则更容易,因此您可以编写不带双引号的名称。否则在命令中你必须转义双引号。
【解决方案2】:

由于 Windows Vista 中的任务计划程序服务发生更改,会出现此问题。

(Source)

作为一种解决方法,Microsoft 建议采取以下措施:

要解决此问题,请使用 /V1 开关。 /V1 开关创建一个与 Windows Vista 之前的平台兼容的任务。

【讨论】:

    【解决方案3】:

    “出现此问题的原因是 Windows Vista 中的任务计划程序服务发生了变化。”

    它也发生在 Windows 10(1903 更新)中,但是“V1”选项将允许创建任务。它还要求用户输入密码。

    如果您对任务使用 cmd 文件并且您知道任务名称,那么这确实有效:

    Schtasks.exe /Delete /TN taskname < yes.txt
    

    其中yes.txt 是一个带有单个字符“Y”的文本文件。它模拟对确认提示的响应(这与我们在 MS-DOS 3.X 时代所做的相同,以确认文件删除或批处理文件中的覆盖)。

    C:\Users\John Doe> Schtasks.exe /Delete /TN k138A < yes.txt
    WARNING: Are you sure you want to remove the task "k138A" (Y/N)? Y
    SUCCESS: The scheduled task "k138A" was successfully deleted.
    

    我相信 schtasks.exe 是为 Windows Scheduler 1.2 API 编写的,因此无论如何它都会创建一个“vista”级别的任务。 Microsoft 可能永远不会将 schtasks.exe 更新到 2.0 API,以便他们可以“鼓励”人们移动 PowerShell Scheduler cmdlet。

    https://docs.microsoft.com/en-us/powershell/module/scheduledtasks/?view=win10-ps

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      相关资源
      最近更新 更多