8

Я хочу обновлять определения Защитника Windows каждый час, и у меня возникла идея использовать планировщик задач для запуска службы обновления Защитника с аргументом обновления подписи.

~/Windows Defender/MpCmdRun -SignatureUpdate

Это работает довольно хорошо, но каждый час открывает окно cmd и я хочу запустить его в фоновом режиме.

Мне известно о моде реестра, который можно использовать для увеличения частоты обновлений, но я не хочу делать этот хак снова и снова после критических обновлений Защитника, после чего реестр возвращается к исходным настройкам.

Я не очень знаком с аргументами cmd. Я знаю, что некоторые исполняемые файлы работают с аргументом /silent для фонового запуска, но это не помогает. Что еще я могу попробовать или использовать?

5 ответов5

5

Используйте файл VBS вместо файла CMD и запланируйте его как обычно с вашим планировщиком задач.

Метод run VBScript может открывать другие программы в скрытом окне через свой второй аргумент (, 0). Сложнее было убежать вместе с аргументом -SignatureUpdate

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

Теперь вы не увидите никаких окон во время обновления Защитника Windows. Виден только процесс диспетчера задач:


Другие возможные настройки для intWindowStyle:

0 = Скрыть окно и активировать другое окно.
1 = активировать и отобразить окно. (восстановить размер и положение).
2 = Активировать и свернуть.
3 = Активировать и развернуть.
4 = Восстановить. Активное окно остается активным.
5 = Активировать и восстановить.
6 = свернуть и активировать следующее окно верхнего уровня в Z-порядке.
7 = свернуть. Активное окно остается активным.
8 = Показать окно в его текущем состоянии. Активное окно остается активным.
9 = восстановить и активировать. Укажите этот флаг при восстановлении свернутого окна.
10 = Устанавливает состояние показа на основе состояния программы, которая запустила приложение.

2
  1. Вместо использования %ProgramFiles%\Windows Defender\MpCmdRun.exe -SignatureUpdate попробуйте
    Вместо %ProgramFiles%\Windows Defender\MSASCui.exe -Update .

  2. Если опция 1 не работает, вы можете использовать скрытый старт, чтобы скрыть окно cmd :

Консольные приложения и командные файлы регулярно запускаются при запуске Windows или по расписанию. Основным неудобством этого является то, что каждое приложение открывает консольное окно, которое мерцает на экране. Скрытый запуск (или Hstart) - это облегченная утилита командной строки, которая позволяет запускать консольные приложения и пакетные файлы без какого-либо окна в фоновом режиме, обрабатывать повышение привилегий UAC в Windows 7 и Vista, запускать несколько команд параллельно или синхронно и многое другое. ,

1

2

Это работает довольно хорошо, но каждый час открывает окно cmd, и я хочу запустить его в фоновом режиме.

Я всегда использую планировщик задач на MSE и в W8 на Defender, с параметрами, которые вы также указали. Чтобы предотвратить открытие окна cmd, необходимо изменить учетную запись пользователя на вкладке «Общие» в планировщике задач на «SYSTEM» и установить флажок «Высокий приоритет».

Теперь все должно работать без сбоев!

0

Вот бесплатное приложение, которое будет скрывать окно команд:

Запланируйте это так:

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

Я настроил его запускать каждый час в Windows Task Scheduler.

0

Почасовое обновление по расписанию

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .