我正在创建一个界面,允许用户管理(除其他外)Windows 防火墙。Windows自带的GUI是这样的
我的 GUI 是用 Java 编写的,并使用命令netsh advfirewall firewall
来读取当前设置并保存更改。
有些项目是防火墙中的单个记录。然而,“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
在这种情况下,整个组被禁用,但可以为公共或私有类型启用它,或两者兼而有之。(更不用说域)
当您使用 Windows GUI 启用此组时,如果您只启用其中一种类型,则必须复制组中的所有项目。禁用类型一份,启用类型一份。
当我尝试创建第二个副本时出现问题。该netsh advfirewall firewall add rule
命令不允许我对新项目进行分组。所以这意味着我不能创建第二个副本!这意味着,除非该项目已被 Windows 复制,否则我只能同时启用或禁用这两种类型(公共和私有),这不是我想要的。
如何创建第二个副本?关于如何使用 Java 或命令行进行操作的任何想法?我发现 netsh 导出会创建一个字节文件。看起来它是一个注册表字节文件。有没有办法使用编辑防火墙reg query
?防火墙设置将存储在注册表中的什么位置?我希望避免自己编写.exe
.