Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
objPolicy.FirewallEnabled = FALSE
Этот сценарий больше не работает в Vista / 2008 и Windows 7. Даже с возвышением.
В окне ошибки отображается "программа или брандмауэр несовместимы с этой версией Windows"
Для простой командной строки \ пакетного файла:
netsh firewall set opmode disable
Или с помощью PowerShell:
$firewall = New-Object -com HNetCfg.FwMgr
$firewall.LocalPolicy.CurrentProfile.FirewallEnabled = $false
Оба прекрасно работают под Windows Vista. Если у вас все еще есть проблемы, я бы копнул дальше, чтобы убедиться, что у вас есть нужные разрешения и что вы используете основные компоненты Windows для выполнения сценария. У меня есть параллельная установка PowerShell (используется VMWare VI Toolkit), которая выдает точно такое же исключение безопасности, которое вы указали выше, когда я пытаюсь использовать его для отключения брандмауэра, но для базовой установки Powershell v1.0 он работает нормально.