C#のでWindows Server上でIPSecポリシーを追加および削除する私のオプションは何ですか?
質問
私は、プログラムのC#でWindows Server 2003上でIPセキュリティポリシーを追加または削除できるようにしたい。
通常は、manaullyを通じてこれらのポリシーを操作したいgpedit.mscをスナップイン(Windowsの設定]の下 - > [ローカルポリシー] - > [ローカルコンピュータのIPセキュリティポリシー)。しかし、私は、コードを介してIPフィルタポリシーを追加できるようにする必要があります。
これを行う方法上の任意のアイデア?
解決
私は約2週間、この問題に対処してきた、と、残念ながら、あなたが必要とする制御の深さに応じて、2つのオプションがあります:
WMIと1)直接操作。カウンター直感的に、これは実際には(私は自分自身をやっているものです)オプション#2未満コントロールを公開します。これは、すべてのWin32_NetworkAdapterConfigurationクラスを介して行われます。
:ここで私はそれを研究した後、しばらく後でそれに私の応答で、これについて尋ねた質問へのリンクです プログラム的にC#のでIPSecのルールを変更する TCPポート、UDPポート、IPプロトコル:あなたは3つのアダプタのIPsecによるもののみを制御することができますので、これは、より少ない機能を公開します。 (あなたがなど、複数のポリシー、異なるサブネットマスクを扱うことができません。)
2)すべての汚い仕事をするためのnetsh ipsecのラッピング。 (System.Management.AutomationでPowerShellのクラスを介して呼び出すことができます)PowerShellは、現在のIPSecの変更を行うためのコマンドレットを欠いているとして、これは、移動するための方法である。
は、PowerShellのコマンドレット2ではありますIPSecの変更を処理するには?の
System.Management.Automation.PowerShellを通して呼び出さPowerShellのパイプラインを介してのnetsh ipsecのをラップすると、私がやってしまったものです。
スポーンとシェルを制御、又は上述したようにPowerShellのクラスを使用するかSystem.Diagnostics.Processを使用。どちらかが仕事を得る必要があります。
の の注意のの あなたには、いくつかの時点で2008に切り替えると、netshのIPsecは廃止されていることに注意してください、そして代わりのnetshをadvfirewallを使用してください。
グッドラック!
他のヒント
あなたはSystem.Diagnostics.Processを使用し、引数としてipsecコマンドで「CMD.EXE」を実行することができます。
あなたが試すことができます別のリソースは、 MicrosoftのWebサイトであるか、 Googleのの。