4

我得到了一个 .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

我正在寻找的另一个功能是将其全部添加到鼠标右键单击而不是正常的右键单击中,因为我真的不经常使用该功能,所以我每次右键单击.EXE 时都会看到它

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

Windows Registry Editor Version 5.00


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

希望收到某人的来信,并在此先表示感谢;)

4

1 回答 1

6

以下将完全按照您的要求进行,但它要求您禁用 UAC。如果不创建脚本文件或使用第三方工具 或者 覆盖密钥,我认为您将无法创建 UAC 提示。runas

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命令不是因为它的循环功能,而是因为它让我可以访问参数扩展。我用to use和to use修改%%a(我们会说它的值是x:\fully\qualified\path\filename.exe)。%%~nxafilename.exe%%~nafilename

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

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

希望能帮助到你!

于 2013-05-01T06:14:54.650 回答