Windows 10 Schtasks.exe Удалить после ошибки окончательного запуска

Я пытаюсь использовать 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:

Документация заставит меня поверить /Z переключатель не имеет ничего общего с /XML параметр, но, возможно, это не так. Я что-то здесь упускаю?

0 ответов

Опция /z не работает с starttype once, см. этот ответ. С опцией/v1 задача успешно создана, но не удаляется после запуска.

Вы можете удалить задачу "вручную", например.

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

Эта проблема возникает из-за изменений в службе планировщика заданий в Windows Vista.

( Источник)

В качестве обходного пути Microsoft рекомендует следующее:

Чтобы решить эту проблему, используйте ключ /V1. Ключ /V1 создает задачу, совместимую с платформами, предшествующими Windows Vista.

"Эта проблема возникает из-за изменений в службе планировщика заданий в 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, поэтому он всегда будет создавать задачу уровня "перспективы". Возможно / вероятно, что Microsoft никогда не обновит schtasks.exe до API 2.0, чтобы они могли "поощрять" людей перемещать командлеты планировщика PowerShell.

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

Другие вопросы по тегам