Windows 10 Schtasks.exe 最终删除 运行 错误

Windows 10 Schtasks.exe Delete After Final Run Error

我正在尝试使用 schtasks 到 运行 一个一次性任务,它只会执行一个程序。这是它的样子:

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

这行得通。它创建一个任务(可以在 Windows Task Scheduler 中看到),然后执行。

我希望这个任务在执行一次后自行删除,所以我添加了以下内容:

/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 参数无关,但也许事实并非如此。我在这里遗漏了什么吗?

This issue occurs because of changes in the Task Scheduler service in Windows Vista.

(Source)

作为解决方法,Microsoft 建议如下:

To resolve this issue, use the /V1 switch. The /V1 switch creates a task that is compatible with pre-Windows Vista platforms.

"This issue occurs because of changes in the Task Scheduler service in 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' 级别的任务。 possible/probable Microsoft 永远不会将 schtasks.exe 更新到 2.0 API,这样他们就可以“鼓励”人们移动 PowerShell 调度程序 cmdlet。

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

选项 /z 不适用于启动类型 once,请参阅 this 答案。使用选项 /v1 任务创建成功,但在 运行.

后未删除

您可以删除任务'maually',例如

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