我想每小时更新一次 Windows Defender 的定义,并想出了使用任务计划程序使用签名更新参数执行 Defender 更新服务的想法。
~/Windows Defender/MpCmdRun -SignatureUpdate
这个工作得很好,但是每小时打开一个cmd
窗口,我想在后台静默运行它。
我知道可以通过修改注册表来增加更新频率,但我不想在关键的 Defender 更新之后一遍又一遍地进行这种修改,之后注册表会恢复到原始设置。
我不太熟悉 cmd 参数。我知道有些可执行文件可以使用/silent
后台启动参数,但这没有帮助。我还能尝试或使用什么?
答案1
用一个虚拟专用网络文件而不是 CMD 文件,然后使用任务计划程序照常安排它。
VBScriptrun 方法可以通过第二个参数 ( ) 在隐藏窗口中打开其他程序, 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
= 根据启动应用程序的程序的状态设置显示状态。
答案2
这工作得很好,但每小时打开一个 cmd 窗口,我想在后台静默运行它。
我总是在 MSE 和 W8 上的 Defender 上使用任务计划程序,并使用您所述的参数。为了防止打开 cmd 窗口,您必须在任务计划程序的常规选项卡上将用户帐户更改为 SYSTEM,并选中高优先级框。
现在它应该可以顺利运行了!
答案3
不要使用
%ProgramFiles%\Windows Defender\MpCmdRun.exe -SignatureUpdate
,
%ProgramFiles%\Windows Defender\MSASCui.exe -Update
而是尝试。如果选项 1 不起作用,你可以使用隐藏的开始隐藏
cmd
窗口:
控制台应用程序和批处理文件通常在 Windows 启动时或按计划运行。这样做的主要不便之处在于每个应用程序都会打开一个在屏幕上闪烁的控制台窗口。隐藏的开始(或者起始位) 是一个轻量级的命令行实用程序,它允许您在后台运行控制台应用程序和批处理文件而无需任何窗口,处理 Windows 7 和 Vista 下的 UAC 权限提升,并行或同步启动多个命令等等。
答案4
这是一个免费的应用程序这将隐藏命令窗口:
安排如下:
cmdNoWnd "C:\Program Files\Windows Defender\MpCmdRun.exe" -SignatureUpdate
我将其设置为在 Windows 任务计划程序中每小时运行一次。