私はこの問題に約 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 を使用してください。
幸運を!