通常,我會使用防火牆阻止應用程式存取互聯網。但我不想僅為一個應用程式設定我的防火牆系統。
我想要的是:建立一個bat檔來啟動應用程式。 bat檔案類似於這。
如果我運行 bat 文件,應用程式將被阻止訪問互聯網。如果我直接運行該應用程序,該應用程式可以訪問互聯網。
可以這樣做嗎?
答案1
您可以在執行應用程式之前新增防火牆規則以阻止任何傳入和傳出流量,並在退出後停用(或刪除)防火牆規則。
設定阻止規則
:: Variables
set RULE_NAME=TemporaryBlock
set PROGRAM=C:\Program Files (x86)\App\app.exe
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=in action=block profile=any program="%PROGRAM%"
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=out action=block profile=any program="%PROGRAM%"
在互聯網被阻止的情況下運行應用程式
@echo off
:: Variables
set RULE_NAME=TemporaryBlock
set PROGRAM=C:\Program Files (x86)\App\app.exe
:: Block the app
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=in new enable=yes
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=out new enable=yes
:: Running the app
start "" /wait "%PROGRAM%"
:: Disable the firewall rules
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=in new enable=no
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=out new enable=no
細節
- 文件:
netsh advfirewall firewall add rule -?
- 您也可以在每次運行應用程式時建立和刪除規則,但我喜歡建立一次規則,然後再啟用或停用它
- 你需要管理員權限