在Windows 8上使用任务计划程序安排无提示的每小时Windows Defender定义更新


8

我想每小时更新一次Windows Defender的定义,并想到了使用Task Scheduler通过签名update参数执行Defender更新服务的想法。

~/Windows Defender/MpCmdRun -SignatureUpdate

效果很好,但是cmd每小时打开一个窗口,我想在后台静默运行它。

我知道可以通过执行注册表mod来增加更新频率,但是不想在关键Defender更新后一遍又一遍地进行修改,之后注册表又恢复为原始设置。

我对cmd参数不太熟悉。我知道有些可执行文件可以与/silent后台启动的参数一起使用,但这无济于事。我还能尝试或使用什么?

Answers:


5

使用VBS文件而不是CMD文件,并使用“任务计划程序”照常计划它。

VBScript的run方法可以通过其第二个参数(, 0)在隐藏的窗口中打开其他程序。棘手的部分是逃避和争论-SignatureUpdate

set objShell = createobject("wscript.shell")  
objShell.Run("""C:\Program Files\Windows Defender\MpCmdRun.exe"" ""-SignatureUpdate""") , 0

现在,您在Windows Defender更新期间将看不到任何窗口。仅任务管理器进程可见:

在此处输入图片说明


intWindowStyle的其他可能设置:

0 =隐藏窗口并激活另一个窗口。
1 =激活并显示窗口。(还原大小和位置)。
2 =激活并最小化。
3 =激活并最大化。
4 =还原。活动窗口保持活动状态。
5 =激活并还原。
6 =最小化并激活Z顺序中的下一个顶级窗口。
7 =最小化。活动窗口保持活动状态。
8 =显示当前状态的窗口。活动窗口保持活动状态。
9 =恢复并激活。恢复最小化窗口时,请指定此标志。
10 =根据启动应用程序的程序状态设置显示状态。


是否可以使用.lnk文件代替.cmd文件,而该文件具有用于更新的参数?我将其保留在“桌面”中的某个位置并使用attrib +r +h +s,以便它保持隐藏状态。
2013年

还是.cmd指向带有更新参数的.lnk?
2013年

我误解了第二点。我的错。到底, 0是为了什么?
2013年

1
这是VBS run方法的一个参数,该方法定义了被调用程序的Window样式。在我们的情况下,是CMD窗口。这样,将触发CMD,但不会显示在任务栏中。您只能在任务管理器中看到它。
nixda

1
@sabrefresco我使用更好的解决方案更新了答案。现在,您根本不需要CMD文件。只是计划任务和该VBS文件。
nixda

3

效果很好,但每小时打开一个cmd窗口,我想在后台静默运行它。

我总是在MSE和Defender的W8中使用任务计划程序,同时还要声明参数。要阻止cmd窗口打开,您必须在任务计划程序的“常规”选项卡上将用户帐户更改为SYSTEM,然后选中“高优先级”框。

现在应该可以正常工作了!


2
  1. 而不是使用%ProgramFiles%\Windows Defender\MpCmdRun.exe -SignatureUpdate
    %ProgramFiles%\Windows Defender\MSASCui.exe -Update而是尝试。

  2. 如果选项1不起作用,则可以使用“ 隐藏启动”来隐藏cmd窗口:

控制台应用程序和批处理文件在Windows启动时或按计划定期运行。这样做的主要不便之处在于,每个应用程序都打开一个控制台窗口,该窗口在屏幕上闪烁。隐藏启动(或Hstart)是一种轻量级的命令行实用程序,使您可以在后台运行任何窗口的控制台应用程序和批处理文件,在Windows 7和Vista下处理UAC特权提升,并行或同步启动多个命令,等等。 。

1个


好。因此,选项1会打开Defender窗口本身。它确实会更新,但不会无提示。选项2适用于静默更新,但是对于更新频率我看不到任何东西。我需要and每小时进行一次静默的定义更新,或者至少要增加更新的频率。如果您知道如何使HStart每小时大约启动一个特定的可执行文件,请告诉我,因为我看不到任何此类选项。
2013年

不,您需要像已经在使用的那样使用Task Scheduler,但不是MpCmdRun.exe直接调用,hstart.exe而是使用/NoConsoleMpCmdRun.exe -SignatureUpdate作为参数(即htstart.exe /NoConsole ""%ProgramFiles%\Windows Defender\MpCmdRun.exe" -SignatureUpdate")来调用。
卡兰

好的,我知道了。我喜欢这个问题的两个答案。我们是否可以将您的答案与上一个答案合并在一起,以便在有和没有第3方应用程序的情况下对该问题有两个选择?
2013年

IMO不能这样工作。如果将来会有其他人出现并发布另一个很好的答案怎么办?我们是否也将其合并?问与答也旨在帮助将来的读者,请不要忘记。我了解,如果您有多个可能的有效答案,可能很难决定要接受哪个答案,但这取决于您。有时人们只是全力以赴,不接受任何具体答案。有时他们只是随机选择一个。在任何情况下,您都会受益(希望其他人也会受益),因为您让不同的人加入了独特的解决方案,因此不必担心。
卡兰

1

每小时排定的更新

schtasks /create /tn "Defender Definition Update" /sc HOURLY /ru SYSTEM /rl HIGHEST /tr "'C:\Program Files\Windows Defender\MpCmdRun.exe' -SignatureUpdate -MMPC"

删除预定任务

schtasks /delete /tn "Defender Definition Update"

0

这是一个免费的应用程序,它将隐藏命令窗口:

在此处输入图片说明

安排如下:

cmdNoWnd "C:\Program Files\Windows Defender\MpCmdRun.exe" -SignatureUpdate

我将其设置为在Windows Task Scheduler中每小时运行一次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.