1) 正確: WMI。
EnableIPFilterSec WMI クラスの静的メソッドを使用すると、IP にバインドされたすべてのネットワーク アダプターでグローバルに IP セキュリティを有効にすることができます。セキュリティを有効にすると、EnableIPSec WMI クラス メソッドを使用して、特定のアダプタのセキュリティ特性を変更できます。ここの前者のMSDN:
http://msdn.microsoft.com/en-us/library/aa390381%28VS.85%29.aspx
また、EnableIPSec とそのパラメーター (ポートとプロトコルのリストを宣言できるようにする) については、次の MSDN エントリを参照してください。
http://msdn.microsoft.com/en-us/library/aa390382%28VS.85%29.aspx
最後に、これは WMI.NET コード ディレクトリへのリンクです。ここには、System.Management を使用して WQL クエリを実行するコードの有用なサンプルがあります。
http://msdn.microsoft.com/en-us/library/ms257338.aspx
ノート:
私が行ったように、ObjectQuery/SelectQuery System.Management オブジェクトの WQL テストを広範囲にいじる必要がある場合は、wbemtest を試してみてください。これは Windows Management Instrumentation テスターであり、アプリケーションの WQL の作成、テスト、改良をより優れたものにします。
2) 関連: Vista 以降でのファイアウォール API、INetFwRule インターフェイス、およびその他の必要なものを使用したプログラムによるファイアウォールの変更。
Vista 以降では、ipsec 機能が必要であるが従来の PolicyAgent 実装を気にしない場合、FirewallAPI.dll を使用するのが簡単なオプションです。
Vista 以降の Advanced Firewall が、WFP (Windows Filtering Platform) 内で IPSec とファイアウォールを真に結合し、従来の IPSec 実装が PolicyAgent を通過し続けることを知らなかったため、最初はこれがオプションであることに気づきませんでした。
これは、FirewallAPI.dll を使用することで、IPSec のすべての機能にファイアウォールのステートフル インテリジェンスを提供できることを意味します。これはまさに私が望んでいたことです。ブラックリスト ルールを追加するだけで (ブラックリスト ルールが優先されるため)、必要に応じて API を介してブラックリストに追加すると、WFP がトラフィックのドロップを開始します。終わり!