1

ユーザーが(とりわけ)Windowsファイアウォールを管理できるようにするインターフェイスを作成しています。Windowsに付属のGUIは次のようになります

ここに画像の説明を入力してください

私のGUIはJavaで書かれておりnetsh advfirewall firewallコマンドを使用して現在の設定を読み取り、変更を保存します。

一部のアイテムは、ファイアウォール内の単一のレコードです。ただし、「Windowsリモート管理」アイテムは「グループ化された」アイテムの1つです。これは複数のアイテムの組み合わせです。これが組み合わせのアイテムの1つです。

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を使用してこのグループを有効にする場合、1つのタイプのみを有効にすると、グループ内のすべてのアイテムを複製する必要があります。無効タイプ用に1つ、有効タイプ用に1つ。

2番目のコピーを作成しようとすると、問題が発生します。このnetsh advfirewall firewall add ruleコマンドでは、新しいアイテムにグループ化を設定できません。つまり、2番目のコピーを作成できないということです。つまり、アイテムがWindowsによって既に複製されていない限り、両方のタイプ(パブリックとプライベート)を一緒に有効または無効にすることしかできません。これは私が望んでいることではありません。

この2番目のコピーを作成するにはどうすればよいですか?Javaまたはコマンドラインでそれを行う方法について何かアイデアはありますか?netshエクスポートでバイトファイルが作成されることがわかりました。レジストリバイトファイルのようです。を使用してファイアウォールを編集する方法はありreg queryますか?ファイアウォール設定はレジストリのどこに保存されますか?私は自分自身を書くことを避けたいと思ってい.exeます。

4

1 に答える 1

0

レジストリ内でWindowsファイアウォールルールが保存されている場所は次のとおりです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

このレジストリキーのデータには、を介して編集可能な同じ変数がありますnetsh advfirewall firewall。実際の名前と説明のほとんどは、次のような参照です@FirewallAPI.dll,-31293。ファイアウォールエントリには一意のIDがなく、名前で識別されます。このため、および参照が何を指しているのかがわからなかったため、を使用してファイアウォールエントリを削除し、を使用netsh advfirewall firewallしてそれらを追加し直しましたreg query

于 2012-04-19T22:02:33.950 に答える