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"
我正在尝试使用 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"