在 Windows 中通过命令行开启防火墙

以下是使用命令行开启 Windows Defender 防火墙的几种方法:

1. 使用 netsh 命令(推荐)

netsh advfirewall set allprofiles state on

解释

  • 这会同时启用域网络、专用网络和公用网络的防火墙
  • 需要以管理员身份运行命令提示符

2. 使用 PowerShell 命令

Windows PowerShell:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

或者更简洁的写法:

Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled True

3. 单独启用不同网络配置的防火墙

:: 启用域网络防火墙
netsh advfirewall set domainprofile state on

:: 启用专用网络防火墙
netsh advfirewall set privateprofile state on

:: 启用公用网络防火墙
netsh advfirewall set publicprofile state on

4. 使用 sc 命令启动防火墙服务

如果需要先确保防火墙服务正在运行:

sc config MpsSvc start= auto
net start MpsSvc

5. 检查防火墙状态

启用后可以检查状态:

netsh advfirewall show allprofiles state

或使用 PowerShell:

Get-NetFirewallProfile | Select-Object Name, Enabled

注意事项

  1. 管理员权限:所有修改防火墙设置的操作都需要管理员权限
  2. 组策略限制:如果企业环境中组策略控制了防火墙设置,这些命令可能无效
  3. 杀毒软件冲突:某些第三方安全软件可能会覆盖这些设置
  4. Windows版本:这些命令适用于 Windows 7 及更高版本

完整批处理脚本示例

@echo off
:: 检查是否以管理员身份运行
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 请以管理员身份运行此脚本
    pause
    exit /b
)
:: 启用防火墙
echo 正在启用防火墙...
netsh advfirewall set allprofiles state on
:: 检查结果
echo 防火墙当前状态:
netsh advfirewall show allprofiles state
pause

将该脚本保存为 .bat 文件,右键选择"以管理员身份运行"即可。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐