netsh und PowerShell

Windows-Praxis: Firewall per Kommandozeile steuern

Das Verhalten der Firewall steuern

Gerade wenn es darum geht, das Verhalten der Firewall entsprechend den eigenen Vorstellungen zu steuern, zeigen sich die neuen PowerShell-Befehle weitaus flexibler und mächtiger, als die entsprechenden Befehle der netsh waren. So war und ist es nach wie vor möglich, mithilfe der netsh die Standardeinstellungen vorzunehmen, die global für die Firewall gelten sollen. Auch an dieser Stelle darf natürlich der Hinweis nicht fehlen, dass all diese Einstellung auch über die grafische Schnittstelle der Konsole vorgenommen werden können. So können mit dem folgenden netsh-Aufruf die Standardaktionen sowohl für den eingehenden (blockieren) als auch für den ausgehenden (erlauben) Netzwerkverkehr festgelegt werden:

netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound

Mit einem weiteren Aufruf werden die Berechtigungen für die Anwender gesetzt, wenn es um die Anzeige bei einem blockierten Programm geht:

netsh advfirewall set allprofiles settings inboundusernotification enable

Nun sollen (ein weiterer Befehl) Unicast-Antworten auf Broadcast- und Multicast-Netzwerkverkehr zugelassen werden:

netsh advfirewall set allprofiles settings unicastresponsetomulticast enable

und schließlich wollen wir noch erreichen, dass die Protokolldaten an einem anderen als den Standardspeicherort (%SystemRoot%\System32\LogFiles\Firewall) abgelegt werden:

netsh advfirewall set allprofiles logging filename "L:\Daten\Firewall\pfirewall.log"

All diese Einstellungen lassen sich nun auch mit der PowerShell vornehmen, wobei es hier möglich ist, diese in einem Befehl zu erledigen. Dabei wichtig: Auch wenn dieser oder andere Befehle hier wegen des Umbruchs in mehreren Zeilen dargestellt werden müssen, geben Sie sie bitte in einer einzigen Zeile ein:

Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow -NotifyOnListen True -AllowUnicastResponseToMulticast True -LogFileName "L:\Daten\Firewall\pfirewall.log"

Hier zeigt sich ein weiteres Mal deutlich, wie viel kompakter Administratoren ihre Befehle mithilfe der PowerShell umsetzen können.