2013-03-25 10 views
5

Ich habe das folgende Bit für eine .REG-Datei erhalten, die "Hinzufügen zu Firewall" mit der rechten Maustaste auf eine .EXE-Datei zum Kontextmenü hinzufügt. Es erstellt einfach eine ausgehende Regel in der Windows-Firewall für die ausgewählte Datei, die Sie ausgewählt haben, anstatt es manuell zu tun.Blockieren Sie .EXE in der Windows-Firewall mit Kontextmenü

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\exefile\shell] 

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall] 

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall\command] 
@="netsh advfirewall firewall add rule name=\"%1\" dir=out action=block program=\"%1\"" 

http://oi46.tinypic.com/2rgnxaf.jpg

Mein Problem ist, dass die folgende Syntax name=\"%1\" die vollständige Verzeichnis gibt (C: \ Neuer Ordner \ test.exe) als Namen in den Windows-Firewall anstelle von nur einem einfachen test.exe

Ein anderes Feature, das ich suche, ist das Hinzufügen von allem zu einem Rechtsklick mit der rechten Maustaste anstelle eines normalen Rechtsklicks, weil ich die Funktion nicht oft verwende, so dass ich sie jedes Mal sehen kann, wenn ich mit der rechten Maustaste klicke. EXE

PS. Führen Sie Folgendes aus, um es erneut aus dem Kontextmenü zu entfernen.

Windows Registry Editor Version 5.00 


[-HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall] 

Hoffnung von jemandem zu hören, und im Voraus einen großen Dank von hier;)

+0

Quelllink - http://maketecheasier.com/block-application-access-to-internet-from-context-menu/2011/01/11 – zyl1647

Antwort

7

Im Folgenden wird genau das tun, was Sie fragen, aber es erfordert, dass Sie UAC deaktiviert. Ohne eine Skriptdatei zu erstellen oder thirdpartytools zu verwenden oder alternativ den Schlüssel runas zu überschreiben, glaube ich nicht, dass Sie in der Lage wären, eine UAC-Eingabeaufforderung zu erstellen.

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 
"Extended"=""    ; Requires shift to be held when right-clicking 

[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\"" 

Um dies näher auszuführen, verwende ich die FOR Befehl nicht wegen seiner Looping Funktionalität, sondern weil es mir Zugang zu parameter extensions. Ich ändere %%a (was wir sagen, hat einen Wert von x:\fully\qualified\path\filename.exe) mit %%~nxa zu verwenden filename.exe und %%~na zu verwenden filename.

Was die UAC Sachen, würde ich eines dieser Tools von Drittanbietern verwenden, nur ich oben erwähnt und den Befehl entsprechend ändern, z.B .:

@="elevate.exe -c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\"" 

Hoffe, es hilft!

+0

Sweet! funktioniert gut, alles sehr schön erklärt. Danke;) Ich laufe normalerweise Windows ohne UAC aktiviert, also ging einfach mit Ihrer ersten Option. – zyl1647

+0

Vielen Dank! Kleines Problem, das ich hatte: Ihr Code hinzugefügt eine Regel für Programm.exe ohne Pfad, so dass das Programm noch durchgelassen wurde. Ich habe $ 1 anstelle von %% ~ nxa verwendet, um es funktionieren zu lassen: '@ =" cmd.exe/s/c für %% a in (\ "% 1 \") netsh advfirewall Firewall Regel Name hinzufügen \ "Block% % ~ na \ "dir = out Aktion = Block Programm = \"% 1 \ "" ' – Juhani