windows禁止某个目录下的所有exe程序联网
最近工作上有个需求需要禁止某些文件下的程序联网
需求
1.用户输入程序路径后自动搜索路径下的所有exe文件
2.将搜索到的程序添加到Windows防火墙中禁止联网
批处理代码
新建文本文件更改文件的扩展名为bat,以下为文件内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 @echo off
rem 关闭自动输出
setlocal ENABLEDELAYEDEXPANSION
mode con: cols=65 lines=25
color 0a
rem 批处理获取管理员权限
:-------------------------------------
%1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&&exit /b
CD /D "%~dp0"
:-------------------------------------
:begin
rem 接收输入
set name=
set Fpath=
set /p name=请输入防火墙策略名称(使用软件名即可):
set /p Fpath=请输入软件安装路径(C:\Program Files\WinRAR):
rem 输出得到的输入信息
echo 您输入的防火墙策略名称是:%name%
echo 您输入的软件安装路径是:%Fpath%
echo "确认请按任意键否则请按Ctrl+C取消"
pause
setlocal enabledelayedexpansion
set /a n=0
for /r "%Fpath%" %%i in (*.exe) do (
set /a n+=1
echo "!n!_%name%","%%i"
netsh advfirewall firewall del rule name="!n!_%name%">nul 2>nul
netsh advfirewall firewall add rule name="!n!_%name%" program="%%i" action=block dir=out>null
echo 阻止!n!_%name%程序出站规则已添加成功
)
rem pause>null
echo.
rem 从begin标签出,再次运行
goto begin