Вопрос или проблема
Я пытаюсь создать пакетный файл для выполнения того, что указано в заголовке. В настоящее время у меня есть:
netsh advfirewall set allprofiles state off
sleep 30
C:\windows\system32\shutdown -r -t 00
Этот пакетный файл перезагружает компьютер, но не отключает брандмауэр.
Должен ли сервис быть установлен в ручной режим перед запуском пакетного файла?
После некоторых экспериментов я обнаружил, что даже если вы отключите брандмауэр Windows с помощью netsh advfirewall
, и перезагрузите компьютер, сервис брандмауэра Windows автоматически запустит его снова.
Чтобы это сработало, мне пришлось установить сервис брандмауэра Windows в ручной режим, а затем заново запустить скрипт, что отключило брандмауэр и без проблем перезагрузило компьютер.
Спасибо @DavidPostill за помощь с этим.
Ответ или решение
Для того чтобы создать пакетный файл, который отключает брандмауэр Windows 7 и перезагружает компьютер, необходимо учитывать некоторые особенности работы операционной системы. Ваша исходная идея почти правильная, но действительно нуждается в уточнении, чтобы гарантировать успех выполнения задачи. Ниже представлен детальный ответ и пошаговая инструкция.
Инструкция по созданию пакетного файла для отключения брандмауэра и перезагрузки компьютера
-
Отключение брандмауэра:
Чтобы отключить брандмауэр, вы используете команду:netsh advfirewall set allprofiles state off
Эта команда отключает брандмауэр для всех профилей. Однако после перезагрузки Windows автоматически запустит службу брандмауэра.
-
Настройка службы:
Для того чтобы ваше отключение работало и после перезагрузки, вам нужно изменить тип запуска службы брандмауэра на "вручную". Используйте следующую команду:sc config MpsSvc start= demand
Эта команда устанавливает службу "Windows Firewall" (MpsSvc) в режим ручного запуска.
-
Перезагрузка системы:
После отключения брандмауэра и изменения настроек службы необходимо перезагрузить компьютер. Используйте команду:shutdown -r -t 0
Эта команда инициирует немедленную перезагрузку системы.
-
Объединение команд в пакетный файл:
Объедините все вышеперечисленные команды в одном пакетном файле (.bat). Ваш окончательный файл должен выглядеть следующим образом:@echo off netsh advfirewall set allprofiles state off sc config MpsSvc start= demand timeout /t 30 shutdown -r -t 0
Объяснение и структура команд
@echo off
: Отключает вывод команд в окне консоли, для более чистого отображения.netsh advfirewall...
: Отключает брандмауэр.sc config MpsSvc...
: Переключает службу брандмауэра на ручной запуск.timeout /t 30
: Задержка на 30 секунд перед перезагрузкой, чтобы пользователи могли увидеть уведомление об отключении брандмауэра.shutdown -r -t 0
: Выполняет немедленную перезагрузку системы.
Заключение
Создание пакетного файла для отключения брандмауэра и последующей перезагрузки системы в Windows 7 требует внимания к переключению настроек службы брандмауэра. Следуя указанным выше шагам, вы сможете добиться желаемого результата. Однако, помните, что отключение брандмауэра может привести к рискам безопасности, и его следует использовать с осторожностью.
Если у вас есть дополнительные вопросы или требуется помощь, не стесняйтесь задавать их.