使用上下文菜单在 Windows 防火墙中阻止 .EXE

Posted

技术标签:

【中文标题】使用上下文菜单在 Windows 防火墙中阻止 .EXE【英文标题】:Block .EXE in Windows Firewall with context menu 【发布时间】:2013-03-14 10:12:06 【问题描述】:

我得到以下 .REG 文件的代码,它在右键单击 .EXE 文件时将“添加到防火墙”添加到上下文菜单中。它只是在 Windows 防火墙中为您选择的特定文件创建出站规则,而不是手动执行。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell]

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall]

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall\command]
@="netsh advfirewall firewall add rule name=\"%1\" dir=out action=block program=\"%1\""

http://oi46.tinypic.com/2rgnxaf.jpg

我的问题是下面的语法name=\"%1\" 将完整目录(C:\New folder\test.exe)作为 Windows 防火墙中的名称,而不仅仅是一个简单的 test.exe

我正在寻求的另一个功能是将其全部添加到鼠标右键单击而不是正常的右键单击中,因为我真的不经常使用该功能,所以我每次右键单击时都希望看到它。可执行文件

附言。运行以下命令再次将其从上下文菜单中删除。

Windows Registry Editor Version 5.00


[-HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall]

希望收到某人的来信,在这里提前非常感谢;)

【问题讨论】:

源链接 - maketecheasier.com/… 【参考方案1】:

以下内容将完全按照您的要求进行,但需要您禁用 UAC。如果不创建脚本文件或使用 third party tools 或覆盖 runas 键,我认为您将无法创建 UAC 提示。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock]
@="Add to Firewall"         ; String to be displayed in context menu
"HasLUAShield"=""           ; Adds UAC shield icon to the left of the command
"Extended"=""               ; Requires shift to be held when right-clicking

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock\command]
@="cmd.exe /s /c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\""

详细地说,我使用FOR 命令不是因为它的循环功能,而是因为它让我可以访问parameter extensions。我用%%~nxa修改%%a(我们会说它的值为x:\fully\qualified\path\filename.exe)以使用filename.exe%%~na以使用filename

至于 UAC 的东西,我只是使用我上面提到的第三方工具之一并相应地更改命令,例如:

@="elevate.exe -c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\""

希望对你有帮助!

【讨论】:

甜蜜!效果很好,n都很好地解释了。谢谢 ;) 我通常在没有启用 UAC 的情况下运行 Windows,所以只选择了你的第一个选项。 谢谢!我遇到的小问题:您的代码为 program.exe 添加了一条没有路径的规则,因此仍然允许该程序通过。我使用 $1 而不是 %%~nxa 来使其工作:@="cmd.exe /s /c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"Block %%~na\" dir=out action=block program=\"%1\""

以上是关于使用上下文菜单在 Windows 防火墙中阻止 .EXE的主要内容,如果未能解决你的问题,请参考以下文章

windows smartscreen筛选器已阻止启动

win11防火墙出入站规则无效

Windows 7防火墙阻止了远程桌面连接的解决方法

怎样解除被防火墙阻止运行的程序

是啥导致 Windows 防火墙阻止应用程序?

如果防火墙打开,Java 7 会阻止 Windows Vista 和 7 上的 FTP 传输。有任何想法吗?