【发布时间】:2011-09-07 16:28:46
【问题描述】:
我正在创建一个界面,允许用户管理(除其他外)Windows 防火墙。 Windows自带的GUI是这样的
我的 GUI 是用 Java 编写的,并使用 the netsh advfirewall firewall commands 读取当前设置并保存更改。
有些项目是防火墙中的单个记录。然而,“Windows 远程管理”项目是“分组”项目之一。这是多个项目的组合。这是组合中的其中一项。
Rule Name: Windows Remote Management - Compatibility
Mode (HTTP-In)
----------------------------------------------------------------------
Enabled: No
Direction: In
Profiles: Private,Public
Grouping: Windows Remote Management
LocalIP: Any
RemoteIP: LocalSubnet
Protocol: TCP
LocalPort: 80
RemotePort: Any
Edge traversal: No
Action: Allow
在这种情况下,整个组都被禁用,但可以为 public 或 private 类型启用它,或两者兼而有之。 (更不用说域名了)
当您使用 Windows GUI 启用此组时,如果您只启用其中一种类型,则必须复制组中的所有项目。禁用类型一份,启用类型一份。
当我尝试创建第二个副本时出现问题。 netsh advfirewall firewall add rule command 不允许我对新项目进行分组。所以这意味着我不能创建第二个副本!这意味着,除非该项目已被 Windows 复制,否则我只能同时启用或禁用这两种类型(公共和私有),这不是我想要的。
如何创建第二个副本?关于如何使用 Java 或命令行进行操作的任何想法?我发现 netsh 导出会创建一个字节文件。看起来它是一个注册表字节文件。有没有办法使用reg query 编辑防火墙?防火墙设置将存储在注册表中的什么位置?我希望避免自己写.exe。
【问题讨论】:
标签: java registry firewall windows-firewall netsh