У меня есть запланированная задача, которую я собираюсь развернуть с помощью сценария.
Задача должна быть интерактивной с рабочим столом пользователя, поэтому я думаю, что мне нужно использовать AT.
Я также хочу иметь возможность удалять задачу с компьютеров, когда что-то в задаче нужно обновить или если задача больше не нужна.
Я не хочу удалять все другие запланированные задачи, когда я это делаю, поэтому я хочу, чтобы у моего сценария был определенный идентификационный номер, который я могу удалить позже. Я проверил документацию по команде AT, но не могу найти документацию о том, как создать запланированную задачу с определенным идентификатором. (http://support.microsoft.com/kb/313565)
Есть ли способ создать запланированную задачу с определенным идентификатором или есть лучший способ достичь моих целей?
Клиенты Windows-XP Запланированная задача запускает небольшой исполняемый файл. Все клиенты являются частью домена, и у меня есть права администратора домена.
Согласно документации, вы не можете создать конкретный идентификатор задачи (точно так же, как вы не можете создать конкретный идентификатор PId для процесса), но вы можете найти идентификатор задачи, когда она выполняется (набрав 'at' в команде -line), а затем удалите его.
Вы также можете получить / удалить идентификатор запланированной задачи программно, используя объекты WMI (см. эта ссылка).
Хотя вы не можете указать идентификатор, который используется с командой AT, вы можете использовать этот сценарий для определения идентификатора, который использует ваша запланированная задача AT, чтобы вы могли удалить его из командного файла:
Set sCommand=ScheduledCommand.cmd
:LOOP
AT>AT.txt
findstr /I %sCommand% AT.txt>nul
If %ErrorLevel%==1 Goto CONTINUE
FOR /F %%i IN ('findstr /I %sCommand% AT.txt') DO (set ID=%%i)
AT %ID% /D
Goto LOOP
:CONTINUE
DEL AT.txt>nul
Использование: Просто установите sCommand на имя запланированной вами команды, которую вы хотите удалить.