4

Windows Server 2003 で C# を使用してプログラムで IP セキュリティ ポリシーを追加または削除できるようにしたいと考えています。

通常、これらのポリシーは gpedit.msc スナップイン ([Windows の設定] -> [ローカル ポリシー] -> [ローカル コンピューターの IP セキュリティ ポリシー] の下) を介して手動で操作します。しかし、コードを使用して IP フィルター ポリシーを追加できる必要があります。

これを行う方法についてのアイデアはありますか?

4

2 に答える 2

3

私はこの問題に約 2 週間対処してきましたが、残念ながら、必要な制御の深さに応じて 2 つのオプションがあります。

1) WMI による直接操作。直感に反して、これは実際にはオプション 2 よりも少ないコントロールを公開します (これは私が自分で行っていることです)。これはすべて、Win32_NetworkAdapterConfiguration クラスを通じて行われます。これについて私が尋ねた質問へのリンクと、それを調査した後しばらくしてからの回答を次に示します。

C#でipsecルールをプログラムで変更する方法は?

アダプタの IPsec を介して制御できるのは、TCP ポート、UDP ポート、IP プロトコルの 3 つだけであるため、公開される機能は少なくなります。(複数のポリシー、異なるサブネット マスクなどには対応できません)

2) netsh ipsec をラップして、面倒な作業をすべて実行します。PowerShell (System.Management.Automation の PowerShell クラスを介して呼び出すことができる) には現在、IPSec の変更を行うためのコマンドレットがないため、これが進むべき道です。

PowerShell 2 に ipsec の変更を処理するコマンドレットはありますか?

System.Management.Automation.PowerShellを介して呼び出されるpowershellパイプラインを介してnetsh ipsecをラップすることは、私が最終的に行ったことです。

System.Diagnostics.Process を使用してシェルを生成および制御するか、前述のように PowerShell クラスを使用します。どちらかが仕事を成し遂げるはずです。

: ある時点で 2008 に切り替える場合は、netsh ipsec が非推奨であることに注意し、代わりに netsh advfirewall を使用してください。

幸運を!

于 2009-11-12T19:41:15.770 に答える
-2

System.Diagnostics.Process を使用し、ipsec コマンドを引数として「cmd.exe」を実行できます。

試すことができる別のリソースは、Microsoft の Web サイトまたはGoogleです。

于 2009-03-31T22:20:20.133 に答える