找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 10|回復: 0

將某目錄下面包含子目錄中所有的exe加入防火牆封鎖

[複製鏈接]

42

主題

8

回帖

318

積分

管理員

積分
318
發表於 前天 21:12 | 顯示全部樓層 |閱讀模式
將某目錄下面包含子目錄中所有的exe加入防火牆封鎖


這裡封鎖的話是 in/out 都封,就是這些 exe 檔完全不能連網
為什麼要這麼做,懂的都懂


  1. @echo off
  2. chcp 65001 >nul
  3. setlocal enabledelayedexpansion

  4. REM ======================================
  5. REM   Firewall Rule Manager
  6. REM   Author: Edward Tai
  7. REM   Website: panaplat.com
  8. REM   Date: 2025.12.14
  9. REM ======================================

  10. set "default_path=C:\Program Files\Adobe"
  11. set "rule_prefix=BlockExe_Panaplat_"

  12. :menu
  13. cls
  14. echo ======================================
  15. echo   Firewall Rule Manager
  16. echo ======================================
  17. echo   Author: Edward Tai
  18. echo   Website: panaplat.com
  19. echo   Date: 2025.12.14
  20. echo ======================================
  21. echo.
  22. echo [1] Add Block Rules
  23. echo [2] Delete All Rules
  24. echo [3] Open Firewall Settings
  25. echo [4] Exit
  26. echo.
  27. set /p choice=Select (1-4):

  28. if "%choice%"=="1" goto add_rules
  29. if "%choice%"=="2" goto delete_rules
  30. if "%choice%"=="3" goto open_firewall
  31. if "%choice%"=="4" exit /b
  32. goto menu

  33. :add_rules
  34. cls
  35. set "target_path="
  36. echo Default Path: %default_path%
  37. set /p target_path=Enter target path (Press Enter for default):

  38. if "!target_path!"=="" set "target_path=%default_path%"

  39. if not exist "!target_path!" (
  40.     echo Error: Path not found
  41.     pause
  42.     goto menu
  43. )

  44. echo.
  45. echo Scanning: !target_path!
  46. echo.

  47. set count=0
  48. pushd "!target_path!"
  49. for /r %%f in (*.exe) do (
  50.     set "exe_path=%%f"
  51.     set "exe_name=%%~nxf"
  52.    
  53.     for %%d in (in out) do (
  54.         set /a count+=1
  55.         echo [!count!] Adding %%d rule: !exe_name!
  56.         netsh advfirewall firewall add rule name="%rule_prefix%!exe_name!" dir=%%d action=block program="!exe_path!" enable=yes >nul
  57.     )
  58. )
  59. popd

  60. if !count!==0 (
  61.     echo No EXE files found!
  62. )

  63. echo.
  64. echo Total: !count! rules added
  65. pause
  66. goto menu

  67. :delete_rules
  68. cls
  69. echo Delete all block rules? (Y/N)
  70. set /p confirm=

  71. if /i "!confirm!"=="Y" (
  72.     echo.
  73.     echo Deleting all %rule_prefix% rules...
  74.     echo.
  75.    
  76.     set count=0
  77.     for /f "tokens=*" %%i in ('netsh advfirewall firewall show rule name^=all ^| findstr /I "%rule_prefix%" ^| findstr /V "@{"') do (
  78.         for /f "usebackq tokens=2 delims=:" %%j in ('echo %%i') do (
  79.             for /f "tokens=*" %%k in ("%%j") do (
  80.                 set /a count+=1
  81.                 echo [!count!] Deleting: %%k
  82.                 netsh advfirewall firewall delete rule name="%%k"
  83.             )
  84.         )
  85.     )
  86.    
  87.     if !count!==0 (
  88.         echo No rules found!
  89.     ) else (
  90.         echo.
  91.         echo Total: !count! rules deleted
  92.     )
  93. ) else (
  94.     echo Cancelled
  95. )
  96. pause
  97. goto menu

  98. :open_firewall
  99. start wf.msc
  100. goto menu

複製代碼

block_exes.zip

1.1 KB, 下載次數: 0

PW:panaplat

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|Panaplat

GMT+8, 2025-12-16 23:37 , Processed in 0.067865 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表