bugger
Goto Top

Windows 10 Firewall Context Menü

Hi,

Ich hätte gerne einen Eintrag im Context Menü sodass ich per Rechtsklick auf eine .exe Datei diese in der Firewall blockieren, erlauben oder aus der Firewall entfernen kann.

Ich hatte schon einen viel versprechenden Code gefunden der aber leider nicht funktioniert, zumindest nicht mit Windows 10:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock]
@="Add to Firewall"         ; String to be displayed in context menu  
"HasLUAShield"=""           ; Adds UAC shield icon to the left of the command  

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock\command]
@="cmd.exe /s /c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\""  

UAC soll ausgeschaltet sein bei dem Code was auch der Fall ist, aber Windows 10 stellt sich da ja möglicherweise mehr an. Third Party Tools möchte ich nicht nutzen dafür.

Jmd. eine Idee? face-smile

Gruß
Bugger

Content-ID: 292040

Url: https://administrator.de/contentid/292040

Ausgedruckt am: 04.12.2024 um 08:12 Uhr

colinardo
Lösung colinardo 01.01.2016 aktualisiert um 14:12:45 Uhr
Goto Top
Hallo Bugger,
hiermit gehts auch mit aktivierter UAC unter Windows 10:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock]
@="Add to Firewall"  
"HasLUAShield"=""  

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -Executionpolicy ByPass -WindowStyle Hidden -NoLogo -Command \"start powershell -Verb runas -ArgumentList \\\"-NoLogo -WindowStyle Hidden -command `\\\"New-NetFirewallRule -DisplayName ([System.IO.Path]::GetFilenameWithoutExtension('%1')) -Name '%1' -Enabled True -Direction Outbound -Action Block -Program '%1'`\\\"\\\"\""  

[HKEY_CLASSES_ROOT\exefile\shell\firewallremove]
@="Remove from Firewall"  
"HasLUAShield"=""  

[HKEY_CLASSES_ROOT\exefile\shell\firewallremove\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -Executionpolicy ByPass -WindowStyle Hidden -NoLogo -Command \"start powershell -Verb runas -ArgumentList \\\"-NoLogo -WindowStyle Hidden -command `\\\"Remove-NetFirewallRule -Name '%1'`\\\"\\\"\""  
Grüße Uwe
Bugger
Bugger 01.01.2016 aktualisiert um 13:51:00 Uhr
Goto Top
Hallo Uwe,

vielen Dank. Das mit den Leerzeichen hast du ja schon selber bemerkt.
Ist es möglich den Namen der Regel auf die Datei zu Begrenzen ohne Pfadangabe? Und wie ist das mit dem entfernen?

@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -Executionpolicy ByPass -Command \"start powershell -Verb runas -ArgumentList \\\"-command `\\\"Remove-NetFirewallRule –DisplayName `\\\"Block_%1`\\\"  

Das hat nicht funktioniert.
colinardo
colinardo 01.01.2016 aktualisiert um 14:11:55 Uhr
Goto Top
Ist alles oben nachgetragen. Aus Sicherheitsgründen habe ich den internen Namen der Regel auf den tatsächlichen Pfad der exe gelegt denn es könnte ja sein das du eine EXE mit selbem Namen in einem anderen Verzeichnis sperren willst, dann käme es beim entfernen sonst zu Problemen! Der Displayname bleibt dabei aber als Dateiname ohne Extension so wie im obigen Batch.

Hier beides erfolgreich gestestet.
Bugger
Bugger 01.01.2016 um 14:12:39 Uhr
Goto Top
Super, vielen Dank! Funktioniert perfekt! Auch toll, dass man mehrere Dateien gleichzeitig hinzufügen oder entfernen kann - echt klasse face-smile