2015-10-15 51 views
0

我需要做谁禁用所有任务的批处理文件的所有任务,到目前为止,我已经得到了这一点:禁止使用的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属性,而不是整个路径

任何帮助/提示?谢谢。

回答

0
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”的样品,我可以编辑命令的语言环境

+0

“Nombre de tarea”,“Horapróximaejecución”,“Estado” “\ Microsoft \ Windows \ Time Synchronization \ SynchronizeTime”,“18/10/2015 1:00:00”,“ Listo” – Kukisambas

+0

Im还正在测试它,它不会找到/ V“启用”? – Kukisambas

+0

它的工作,只需要运行它作为管理员。谢谢保罗! – Kukisambas

0

如果您禁用所有任务,停止任务计划程序服务会不会更容易?

0

好一点,但是如果你想禁止他们我建议把你的脚本到一个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 /禁用。

+0

如果我可以使用VS像你的建议我会使用WScript的或C#,但我已经被命令只通过简单的批次来实现它,所以他们可以在一个简单的.bat中执行它,谢谢你的建议。 – Kukisambas