So fügen Sie Regeln in der Windows-Firewall hinzu/löschen sie

So fügen Sie Regeln in der Windows-Firewall hinzu/löschen sie

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 über bestimmte Protokolle, IPs und Ports verbieten. Ich habe Probleme bei der Entwurfsentscheidung, welche der folgenden mir bekannten Optionen ich verwenden soll:

  1. PowerShell, wie beschrieben z.B. inhttps://technet.microsoft.com/en-us/library/jj554906(v=wps.630).aspx. Das Problem mit dieser Option ist, dass sie (korrigieren Sie mich, wenn ich falsch liege) anscheinend unter Windows 7 nicht unterstützt wird, während mein Tool unter Windows 7, Windows 8(.1) und vorzugsweise späteren Windows-Versionen funktionieren muss. Außerdem darf ich C# nicht verwenden, während PowerShell sich nicht in C++ integrieren lässt, außer (möglicherweise, ich bin nicht sicher) durch Aufrufen eines PowerShell-Prozesses, indem ich ihm Befehlszeilenoptionen gebe und von/in seine Ausgabe-/Eingabe-Streams lese/schreibe.
  2. "netsh advfirewall firewall"-Methode. Das Problem bei dieser Option ist, dass Windows 8.1 angibt, dass der Kontext "netsh advfirewall" veraltet ist und aus späteren Windows-Versionen entfernt werden kann. Ich befürchte also, dass mein Tool auf diesem Weg unter Windows 9 oder 10 nicht mehr funktioniert.
  3. COM-Schnittstellen der Windows-Firewall, wie in diesen Beispielenhttps://msdn.microsoft.com/en-us/library/windows/desktop/dd339604(v=vs.85).aspx. Die erforderliche C++-Codierung stellt kein Problem dar, kann jedoch länger dauern als die Verwendung von PowerShell oder der Befehlszeile (Netsh Advfirewall-Firewall).

Welche Option wäre die beste Designentscheidung zum Hinzufügen/Löschen von Windows-Firewall-Regeln? Gibt es andere Optionen oder Vorteile/Nachteile der von mir aufgeführten Optionen?

Antwort1

Unter Windows 7 ist die Vorgehensweise anders

Alles, was mit der Firewall in Server 2008/Vista/Server R2/Windows 7 zu tun hat, wird über das COM-Objekt HNetCfg.FwPolicy2 verwaltet.

ausHier

Wenn Sie PowerShell verwenden möchten, aber auf beide Betriebssystemversionen abzielen müssen, ist es meiner Meinung nach am einfachsten, zwei Funktionen zu schreiben, da Sie anscheinend bereits wissen, wie das für Windows 8 geht.

verwandte Informationen