背景说明

字节云的Windows server真是有点问题,忽然就开始自动开启防火墙,手动关闭了过几个小时又重新开启了,导致远程桌面都连不上。

【教程】强制关闭Windows防火墙的自启动_#windows

强制关闭

修改注册表来禁用防火墙服务

1. 打开注册表编辑器:

regedit

2. 定位到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MpsSvc

3. 找到 Start 值,修改为 4

  • 2
  • 3
  • 4

【教程】强制关闭Windows防火墙的自启动_#防火墙_02

脚本持续监控防火墙状态

1. 可以写个“哨兵脚本”,定时关闭防火墙,把它保存为 C:\DisableFirewall.ps1

# C:\DisableFirewall.ps1
$log = 'C:\Logs\DisableFirewall.log'
New-Item -Path (Split-Path $log) -ItemType Directory -Force | Out-Null

while ($true) {
    try {
        $needDisable = (Get-NetFirewallProfile).Enabled -contains $true
        if ($needDisable) {
            Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False
            "$(Get-Date -Format u) 发现防火墙被打开,已关闭" | Add-Content $log
        } else {
            "$(Get-Date -Format u) 防火墙保持关闭" | Add-Content $log
        }
    } catch {
        "$(Get-Date -Format u) 出错:$($_.Exception.Message)" | Add-Content $log
    }
    Start-Sleep 30
}
  • Private:专用网络
  • Public:公用网络
  • Domain:域网络

2. 以管理员方式运行cmd

【教程】强制关闭Windows防火墙的自启动_#踩坑_03

3. 注册为开机任务:

schtasks /create /tn "DisableFirewallMonitor" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\DisableFirewall.ps1" /sc onstart /ru SYSTEM /rl HIGHEST

【教程】强制关闭Windows防火墙的自启动_#踩坑_04

4. 立即运行脚本:

schtasks /run /tn "DisableFirewallMonitor"

停止任务:

schtasks /end /tn "DisableFirewallMonitor"

5. 检查是否运行成功:

schtasks /query /tn "DisableFirewallMonitor" /v /fo LIST

【教程】强制关闭Windows防火墙的自启动_#踩坑_05