2013-03-25 20 views
5

Ho ottenuto il seguente bit di codice per un file .REG che aggiunge "Aggiungi al firewall" al menu di scelta rapida facendo clic con il pulsante destro del mouse su un file .EXE. Crea semplicemente una regola in uscita nel firewall di Windows per quel file specifico che hai selezionato invece di farlo manualmente.Blocco .EXE in Windows Firewall con menu di scelta rapida

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

mio problema è che la seguente sintassi name=\"%1\" dà la directory completa (C: \ Nuova cartella \ test.exe) come nome in Windows Firewall invece di un semplice test.exe

Un'altra funzione che sto cercando è aggiungere tutto a uno spostamento con il tasto destro del mouse anziché un normale clic destro, perché in realtà non uso la funzione che spesso, quindi lo vedrò ogni volta che clicco su di un tasto destro. EXE

PS. Eseguire la seguente procedura per rimuoverlo dal menu di scelta rapida.

Windows Registry Editor Version 5.00 


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

speranza di sentire da qualcuno, e in anticipo, un grande grazie da qui;)

+0

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

risposta

7

Di seguito farà esattamente quello che stai chiedendo, ma richiede che si dispone di UAC disabilitato. Senza creare un file di script o utilizzando thirdpartytools o in alternativa sovrascrivendo la chiave runas, non penso che sarebbe possibile creare un prompt UAC.

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

di elaborare, io uso il FOR comando non a causa della sua funzionalità looping, ma perché mi dà l'accesso a parameter extensions. Modifico %%a (che diremo ha un valore di x:\fully\qualified\path\filename.exe) con %%~nxa per utilizzare filename.exe e %%~na per utilizzare filename.

Per quanto riguarda la roba UAC, mi basta usare uno di quegli strumenti di terze parti che ho citato sopra e cambiare il comando di conseguenza, ad es .:

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

Speranza che aiuta!

+0

Dolce! funziona bene, tutto molto ben spiegato. Grazie;) Normalmente eseguo Windows senza UAC abilitato, quindi sono andato con la tua prima opzione. – zyl1647

+0

Grazie! Minore problema che ho avuto: il codice ha aggiunto una regola per program.exe senza percorso, quindi il programma era ancora consentito. Ho usato $ 1 invece di %% ~ nxa per farlo funzionare: '@ =" cmd.exe/s/c per %% a in (\ "% 1 \") do netsh advfirewall firewall aggiungi nome regola = \ "Block% % ~ na \ "dir = out action = block program = \"% 1 \ "" ' – Juhani