Wie können ich IPSec -Richtlinien auf Windows Server mit C#hinzufügen und entfernen?

StackOverflow https://stackoverflow.com/questions/703225

  •  22-08-2019
  •  | 
  •  

Frage

Ich möchte in der Lage sein, IP -Sicherheitsrichtlinien auf Windows Server 2003 programmgesteuert mit C#hinzuzufügen oder zu entfernen.

Normalerweise haben Sie diese Richtlinien Manipulation durch das gpedit.MSC -Snap -In (unter Windows -Einstellungen -> lokale Richtlinien -> IP -Sicherheitsrichtlinien auf dem lokalen Computer) manipulieren. Aber ich muss in der Lage sein, IP -Filterrichtlinien über Code hinzuzufügen.

Irgendwelche Ideen, wie man das macht?

War es hilfreich?

Lösung

Ich habe mich seit ungefähr zwei Wochen mit diesem Problem befasst und haben leider zwei Optionen, abhängig von der Tiefe der Kontrolle, die Sie benötigen:

1) Direktmanipulation mit WMI. Gegen intuitiv enthält dies tatsächlich weniger Kontrolle als Option 2 (was ich selbst mache). Dies alles wird durch die Klasse Win32_NetworkAdapterConfiguration geschehen. Hier ist ein Link zu der Frage, die ich dazu gestellt habe, mit meiner Antwort darauf eine Weile später, nachdem ich sie recherchiert hatte:

Methoden zur programatischen Änderung von IPSec -Regeln mit C#?

Dies enthüllt weniger Funktionen, da Sie nur drei Dinge über IPSec für die Adapter steuern können: TCP -Ports, UDP -Ports und IP -Protokolle. (Sie können nicht mit mehreren Richtlinien, unterschiedlichen Subnetzmasken usw. umgehen.)

2) Wickeln von NetSH IPSec, um alle Ihre schmutzigen Arbeiten zu erledigen. Dies ist der richtige Weg, wie PowerShell (der durch die PowerShell -Klasse in System.management.Automation) derzeit ein CMDLET fehlt, um IPSec -Änderungen vorzunehmen.

Gibt es ein CMDLet in PowerShell 2, um IPSec -Änderungen zu bewältigen?

Wickeln von netsh ipsec durch eine PowerShell -Pipeline, die durch System genannt wird.

Verwenden Sie entweder System.diagnostics Beides sollte den Job erledigen.

HINWEISWenn Sie irgendwann zu 2008 wechseln, beachten Sie, dass NetSH IPSec veraltet ist, und stellen Sie stattdessen sicher, dass NetSH AdvFirewall verwendet wird.

Viel Glück!

Andere Tipps

Sie können System.Diagnostics.Process verwenden und "cmd.exe" mit dem IPSec -Befehl als Argumente ausführen.

Eine weitere Ressource, die Sie versuchen können, ist Microsoft -Website oder Google.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top