Отключение всех задач с помощью schtasks

Мне нужно сделать командный файл, который отключает все задачи, пока я получил это:

@echo OFF
for /f "tokens=2 delims=:" %%i  in ('schtasks /Query /FO LIST ^| findstr "Nombre de tarea:"') do (call :subroutine "%%i")

:subroutine
set TASKNAME=%%i
echo %TASKNAME%:%1
schtasks /change /tn=%TASKNAME%:%1 /disable
GOTO :eof

Итак, я довольно плохо с grep, это было 2 года без использования, вот что "findstr" "плюет":

 %i:" Interactivo/En segundo plano"
 %i:" ADMSH-PC"
 %i:" \Microsoft\Windows\Windows Media Sharing\UpdateLibrary"

так что я получаю 3 строки для каждой задачи, а также мне нужно только "имя задачи" для свойства tn вместо всего пути

Любая помощь / советы? Благодарю.

3 ответа

Решение
for /f "tokens=1 delims=," %%a in (
    'schtasks /Query /FO csv ^| find /V "Task name" ^| find /V "Disabled"'
) do (
    schtasks /change /tn %%a /disable
)

Примечание: если вы показываете образец этой командыschtasks /Query /FO csv"Я могу отредактировать команду в вашем регионе

Если вы отключите все задачи, не будет ли проще просто остановить службу планировщика заданий?

Хороший вопрос, однако, если вы хотите отключить их, я бы предложил поместить ваш скрипт в файл VBS:

Вы можете перечислить все задачи с этим кодом:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery _
    ("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
    Wscript.Echo "Caption: " & objJob.Caption
    Wscript.Echo "Command: " & objJob.Command
    Wscript.Echo "Days Of Month: " & objJob.DaysOfMonth
    Wscript.Echo "Days Of Week: " & objJob.DaysOfWeek
    Wscript.Echo "Description: " & objJob.Description
    Wscript.Echo "Elapsed Time: " & objJob.ElapsedTime
    Wscript.Echo "Install Date: " & objJob.InstallDate
    Wscript.Echo "Interact with Desktop: " & objJob.InteractWithDesktop
    Wscript.Echo "Job ID: " & objJob.JobID
    Wscript.Echo "Job Status: " & objJob.JobStatus
    Wscript.Echo "Name: " & objJob.Name
    Wscript.Echo "Notify: " & objJob.Notify
    Wscript.Echo "Owner: " & objJob.Owner
    Wscript.Echo "Priority: " & objJob.Priority
    Wscript.Echo "Run Repeatedly: " & objJob.RunRepeatedly
    Wscript.Echo "Start Time: " & objJob.StartTime
    Wscript.Echo "Status: " & objJob.Status
    Wscript.Echo "Time Submitted: " & objJob.TimeSubmitted
    Wscript.Echo "Until Time: " & objJob.UntilTime
Next

http://blogs.technet.com/b/heyscriptingguy/archive/2004/09/22/how-can-i-manage-scheduled-tasks-using-scripts.aspx

Захватите название всех задач и запустите schtasks /change /tn=%TASKNAME%:%1 / отключить для каждого.

Зачем отключать задачи? Остановите и запустите службу расписания задач из командной строки. Если Стоп неактивен в Сервисах - Планировщик заданий, загрузите PsTools и:

Запустить от имени администратора:

PSEXEC -i -s CMD 

В окне CMD:

net stop schedule

Когда ты готов:

net start schedule

Включить Отключить все запланированные задачи Включить Отключить все задачи Планировщик задач остановится серым цветом

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