“netsh advfirewall 防火墙删除规则名称程序”语法不起作用

Ric*_*rca 6 windows-7 batch windows-firewall netsh

我正在尝试使用 netsh 从命令行删除 Windows 防火墙规则。我正在尝试使用以下语法;然而,结果明智对我来说不起作用。

netsh advfirewall firewall delete rule program="C\Program Files (x86)\utorrent\uTorrent.exe"
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?我使用的是 Windows 7 Ultimate 64 位。

Vom*_*yle 10

您似乎正在尝试在删除语句中使用“程序”参数和值而不是“规则”名称。

您可以运行netsh advfirewall firewall show rule status=enabled name=all或者netsh advfirewall firewall show rule status=enabled name=all | FIND /I "uTorrent"获取已启用的规则列表,以帮助定位规则的实际名称。

确定后,您可以运行netsh advfirewall firewall delete rule name="<Rule Name>"并相应地插入规则的名称,以便删除该规则。

例子

创建一个名为“IP Block”的规则

netsh advfirewall firewall add rule name="IP Block" dir=in interface=any action=block remoteip=<IPaddress>/32
Run Code Online (Sandbox Code Playgroud)

删除名为“IP Block”的规则

netsh advfirewall firewall delete rule name="IP Block"
Run Code Online (Sandbox Code Playgroud)

更多资源


Ric*_*rca 2

我找到了另一个强大的解决方案:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
REG EXPORT "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" "%TEMP%\RegBackup.reg" /y > NUL 2> NUL
TYPE "%TEMP%\RegBackup.reg" | FINDSTR /i /v torrent > "%TEMP%\RegBackupNew.reg"
REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" /f /va > NUL 2> NUL
REG IMPORT "%TEMP%\RegBackupNew.reg" 2> NUL
REG EXPORT "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" "%TEMP%\RegBackup.reg" /y > NUL 2> NUL
TYPE "%TEMP%\RegBackup.reg" | FINDSTR /i /v torrent > "%TEMP%\RegBackupNew.reg"
REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" /f /va > NUL 2> NUL
REG IMPORT "%TEMP%\RegBackupNew.reg" 2> NUL
DEL /q "%TEMP%\RegBackup.reg" 2> NUL
DEL /q "%TEMP%\RegBackupNew.reg" 2> NUL
endlocal
Run Code Online (Sandbox Code Playgroud)