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