Отключение всех задач с помощью 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
Захватите название всех задач и запустите schtasks /change /tn=%TASKNAME%:%1
/ отключить для каждого.
Зачем отключать задачи? Остановите и запустите службу расписания задач из командной строки. Если Стоп неактивен в Сервисах - Планировщик заданий, загрузите PsTools и:
Запустить от имени администратора:
PSEXEC -i -s CMD
В окне CMD:
net stop schedule
Когда ты готов:
net start schedule
Включить Отключить все запланированные задачи Включить Отключить все задачи Планировщик задач остановится серым цветом