Hinzufügen und Löschen von Regeln in der Windows-Firewall

1716
Serge Rogatch

Ich muss ein Tool implementieren, das Regeln in der Windows-Firewall hinzufügt und löscht. Die Regeln können eingehend oder ausgehend sein und die Kommunikation mit angegebenen Protokollen, IPs und Ports verbieten. Ich habe Probleme mit der Entwurfsentscheidung, welche der folgenden Optionen mir bekannt ist:

  1. PowerShell, wie z . B. in https://technet.microsoft.com/de-de/library/jj554906 ( v=wps.630).aspx beschrieben . Das Problem bei dieser Option ist (korrigieren Sie mich, wenn ich falsch liege). Es scheint, dass sie unter Windows 7 nicht unterstützt wird, während mein Tool unter Windows 7, Windows 8 (.1) und wünschenswerterweise späteren Versionen von Windows funktionieren muss. Außerdem darf ich C # nicht verwenden, während PowerShell nicht in C ++ integriert ist, außer (möglicherweise bin ich mir nicht sicher), indem ich den PowerShell-Prozess aufrufe, ihm Befehlszeilenoptionen gebe und aus / in seine Ausgabe / Eingabe schreibe Ströme.
  2. "netsh advfirewall firewall" weg. Das Problem bei dieser Option ist, dass Windows 8.1 sagt, dass der Kontext "netsh advfirewall" veraltet ist und möglicherweise aus späteren Versionen von Windows entfernt wird. Daher befürchte ich, dass mein Werkzeug auf Windows 9 oder 10 nicht funktioniert.
  3. COM-Schnittstellen der Windows-Firewall, wie in diesen Beispielen https://msdn.microsoft.com/de-de/library/windows/desktop/dd339604(v=vs.85).aspx . Die erforderliche C ++ - Codierung ist kein Problem, kann jedoch länger dauern als die Verwendung von PowerShell oder der Befehlszeile (netsh advfirewall firewall).

Welche Option wäre die beste Entwurfsentscheidung für das Hinzufügen / Löschen von Windows-Firewall-Regeln? Gibt es andere Optionen oder Vor- / Nachteile der aufgeführten Optionen?

0
Die einfache Meinungsumfrage ist nicht thematisch. Wir können Ihnen nicht bei der Entscheidung helfen. Sie können jedoch gerne nach einem bestimmten Implementierungsproblem fragen, entweder hier oder höchstwahrscheinlich in StackOverflow (zu dem Fragen in Bezug auf die Programmierung gehören). Karan vor 8 Jahren 0
Das spezifische Problem bei der Implementierung ist das "Hinzufügen / Löschen von Regeln in der Windows-Firewall" (wie der Titel der Frage besagt), sodass die Implementierung für alle Windows-Versionen ab Windows 7 funktioniert. Die Befehlszeilenoptionen wie PowerShell und "netsh advfirewall" Firewall "scheint hier mehr zu gehören (Systemverwaltung), während die COM-Option zu StackOverflow gehört. Serge Rogatch vor 8 Jahren 0

1 Antwort auf die Frage

1
Julian Knight

Bei Windows 7 ist der Weg anders

Alles, was mit der Firewall in Server 2008 / Vista / Server R2 / Windows 7 zusammenhängt, wird durch das COM-Objekt HNetCfg.FwPolicy2 verwaltet

von hier aus

Wenn Sie PowerShell verwenden möchten, aber auf beide Versionen des Betriebssystems abzielen möchten, würde ich sagen, dass das Schreiben von 2 Funktionen am einfachsten ist, da Sie bereits wissen, wie dies für Windows 8 zu tun ist.