标题: [网络连接] 批处理如何阻止与解除某个exe进程的联网? [打印本页]
作者: wh123wh123 时间: 2021-7-21 21:33 标题: 批处理如何阻止与解除某个exe进程的联网?
本帖最后由 wh123wh123 于 2021-7-22 00:03 编辑
批处理如何阻止与解除某个exe进程的联网(假如程序名称为:AAA.exe,不是结束进程,只是暂时阻止联网即可)?
想通过BAT或VBS实现,间隔5秒钟阻断一次exe联网,然后过8秒钟解除允许联网,再过5秒钟再次阻断联网,以此类推循环执行。
能不能实现这样的功能?求完整代码。
最好有显示执行情况,也就是显示当前循环执行第几次了
作者: newswan 时间: 2021-7-21 22:24
回复 1# wh123wh123
先找下防火墙里有没有这个程序的规则,如果有,就不用第一句了- New-NetFirewallRule -DisplayName "aaa" -Program "notepad.exe" -Action Allow
- do
- {
- Enable-NetFirewallRule -DisplayName "aaa"
- start-sleep 5
- disable-NetFirewallRule -DisplayName "aaa"
- start-sleep 8
- }
- while {$true}
复制代码
作者: wh123wh123 时间: 2021-7-21 23:50
本帖最后由 wh123wh123 于 2021-7-21 23:51 编辑
回复 2# idwma
不得结束进程,只要求暂时阻止联网即可,过几秒钟再放行,循环的,另外能不能增加显示第几次循环执行命令?exe程序名称怎么加入到代码里?
作者: wh123wh123 时间: 2021-7-21 23:55
回复 3# newswan
aaa是啥?是程序名称吗?能不能显示当前执行第几次?
作者: wh123wh123 时间: 2021-7-21 23:56
回复 3# newswan
脚本: C:\Users\Administrator\Desktop\新建文本文档.vbs
行: 1
字符: 1
错误: 缺少语句
代码: 800A0400
源: Microsoft VBScript 编译器错误
作者: wh123wh123 时间: 2021-7-21 23:58
回复 2# idwma
为什么运行后闪一下就窗口消失了?
作者: wh123wh123 时间: 2021-7-22 00:25
回复 9# idwma
新建.ps1这样?运行后直接打开的是代码啊,并没有实际运行,能不能弄成bat或vbs的
作者: wh123wh123 时间: 2021-7-22 00:53
本帖最后由 wh123wh123 于 2021-7-22 00:57 编辑
回复 2# idwma
为什么运行后所有程序都无法联网了?我只要求阻止某一个程序,例如AAA.exe
另外代码里面的 netsh advfirewall firewall add rule name="阻断一次" dir=out action=allow program="d:\阻断一次.exe" enable=yes
"d:\阻断一次.exe"这个是啥?是代码自动生成的阻断程序还是要阻断的程序路径名称?
name="阻断一次" 是代表进程名称?还是啥意思
能不能显示当前执行第几次,间隔时间等?
作者: newswan 时间: 2021-7-22 01:02
回复 11# wh123wh123
恢复默认- netsh advfirewall set domainprofile firewallpolicy blockinbound,AllowOutbound
- netsh advfirewall set privateprofile firewallpolicy blockinbound,AllowOutbound
- netsh advfirewall set publicprofile firewallpolicy blockinbound,AllowOutbound
复制代码
作者: newswan 时间: 2021-7-22 01:03
回复 11# wh123wh123
一般防火墙里都有程序的规则,先去找到这个规则的名字,如果没有再创建一个
作者: wh123wh123 时间: 2021-7-22 01:03
在线期待老师完整代码
作者: wh123wh123 时间: 2021-7-22 01:13
回复 13# newswan
能不能弄成可以控制的(因为运行后无法控制,只能结束进程和关闭防火墙才行),可以设定例如AAA.exe某一个程序而不影响其他程序的联网的那种,
作者: wh123wh123 时间: 2021-7-22 01:18
回复 13# newswan
高级安全防火墙里的出站规则里没有要阻止的程序名称,求完整代码
作者: wh123wh123 时间: 2021-7-22 01:21
间隔5秒钟阻断一次exe联网,阻断等待8秒钟再解除允许联网,再过5秒钟再次阻断联网,以此类推循环执行。
作者: newswan 时间: 2021-7-22 01:29
回复 15# wh123wh123
没有,一般都有的啊
作者: newswan 时间: 2021-7-22 01:42
- $program = "D:\program files\mobaxterm\root\slash\bin\xwin_mobax.exe"
- New-NetFirewallRule -DisplayName "bbb" -Profile Private,Public -Direction Outbound -Program $program -Action block
- $count = 0
- do
- {
- $count += 1
- write-host "count:" $count
- Enable-NetFirewallRule -DisplayName "bbb"
- start-sleep 5
- disable-NetFirewallRule -DisplayName "bbb"
- start-sleep 8
- }
- while {$true}
复制代码
作者: wh123wh123 时间: 2021-7-22 01:52
本帖最后由 wh123wh123 于 2021-7-22 01:53 编辑
回复 19# newswan
$program = "D:\program files\mobaxterm\root\slash\bin\xwin_mobax.exe"这是需要阻止的程序名称吗?是不是只需修改这里即可?
DisplayName "bbb"下面的这2处bbb是啥?需要修改吗?
作者: newswan 时间: 2021-7-22 01:52
回复 20# wh123wh123
是
作者: wh123wh123 时间: 2021-7-22 01:54
回复 21# newswan
DisplayName "bbb"下面的这2处bbb是啥?需要修改吗?
作者: wh123wh123 时间: 2021-7-22 01:58
回复 21# newswan
代码保存为:新建文本文档.ps1 这样吗?为什么运行后闪了一下就消失了,需要阻止的程序依然正常联网,没效果
作者: newswan 时间: 2021-7-22 02:03
本帖最后由 newswan 于 2021-7-22 02:23 编辑
回复 23# wh123wh123
bbb 是规则名 ,
插入为第一行保存为bat,管理员运行- @powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit
复制代码
其他方式去去看其他帖子
作者: newswan 时间: 2021-7-22 02:24
先头一段时间进不了论坛
作者: wh123wh123 时间: 2021-7-22 02:31
本帖最后由 wh123wh123 于 2021-7-22 02:35 编辑
回复 24# newswan
你的意思是加入第一行后把下面代码保存为bat?然后运行即可只对D:\AAA.exe阻止和放行?
@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit
$program = "D:\AAA.exe"
New-NetFirewallRule -DisplayName "bbb" -Profile Private,Public -Direction Outbound -Program $program -Action block
$count = 0
do
{
$count += 1
write-host "count:" $count
Enable-NetFirewallRule -DisplayName "bbb"
start-sleep 5
disable-NetFirewallRule -DisplayName "bbb"
start-sleep 8
}
while {$true}
作者: wh123wh123 时间: 2021-7-22 02:39
回复 24# newswan
提示错误
作者: newswan 时间: 2021-7-22 02:44
回复 27# wh123wh123
什么错?
http://www.bathome.net/thread-31071-1-1.html
作者: wh123wh123 时间: 2021-7-22 02:52
本帖最后由 wh123wh123 于 2021-7-22 02:53 编辑
回复 28# newswan
能不能把下面代码完善一下,只正对AAA.exe阻断和放行,并且显示正在执行第几次
@echo off
title=恢复默认
netsh advfirewall set domainprofile firewallpolicy blockinbound,AllowOutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,AllowOutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,AllowOutbound
pause
@echo off
title=批处理阻止与解除某个exe进程的联网
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
:loop
ping -n 6 127.0.1 >nul
echo 已断开
netsh advfirewall firewall delete rule name="阻断一次"
ping -n 9 127.0.1 >nul
echo 已连接
netsh advfirewall firewall add rule name="阻断一次" dir=out action=allow program="D:\AAA.exe" enable=yes
goto :loop
作者: newswan 时间: 2021-7-22 03:11
回复 29# wh123wh123
netsh 不熟悉了,要试试
作者: newswan 时间: 2021-7-22 03:23
netsh方式- set %program%="D:\Program Files\realVNC\VNC-Viewer.exe"
- netsh advfirewall firewall add rule name="bbb" profile=public,private dir=out program=%program% action=block
- set count=0
- :Loop
- set /a count+=1
- echo count: %count%
- netsh advfirewall firewall set rule name="bbb" new enable=no
- choice /t 5 /d y /n >nul
- netsh advfirewall firewall set rule name="bbb" new enable=yes
- choice /t 8 /d y /n >nul
- goto :Loop
复制代码
作者: wh123wh123 时间: 2021-7-22 10:12
本帖最后由 wh123wh123 于 2021-7-22 10:16 编辑
回复 31# newswan
保存为.bat?运行提示语法不正确
命令语法不正确。
一个或多个重要的参数没有输入。
请验证需要的参数,然后再次输入。
count: 1
没有与指定标准相匹配的规则。
没有与指定标准相匹配的规则。
已断开
已删除 1 规则。
确定。
已连接
确定。
count: 2
没有与指定标准相匹配的规则。
没有与指定标准相匹配的规则。
已断开
已删除 1 规则。
确定。
已连接
确定。
count: 3
没有与指定标准相匹配的规则。
没有与指定标准相匹配的规则。
已断开
已删除 1 规则。
确定。
已连接
确定。
count: 4
没有与指定标准相匹配的规则。
没有与指定标准相匹配的规则。
已断开
已删除 1 规则。
确定。
已连接
确定。
count: 5
没有与指定标准相匹配的规则。
作者: cmd1152 时间: 2021-7-22 11:16
回复 6# wh123wh123
这不是Vbs脚本...
作者: wh123wh123 时间: 2021-7-22 12:08
回复 33# cmd1152
求完整有效功能的代码
作者: wh123wh123 时间: 2021-7-22 12:14
netsh方式
newswan 发表于 2021-7-22 03:23
这个好像无实际效果,在防火墙里能看到灰色和绿色以及删除添加的变化,但是程序并没有因此而跟随变化
作者: wh123wh123 时间: 2021-7-22 12:23
@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit
$program = "D:\AAA.exe"
New-NetFirewallRule -DisplayName "阻断一次" -Profile Private,Public -Direction Outbound -Program $program -Action block
$count = 0
do
{
$count += 1
write-host "count:" $count
Enable-NetFirewallRule -DisplayName "阻断一次"
start-sleep 5
disable-NetFirewallRule -DisplayName "阻断一次"
start-sleep 8
}
while {$true}
提示错误
作者: cmd1152 时间: 2021-7-22 12:41
回复 34# wh123wh123
我不会
作者: newswan 时间: 2021-7-22 12:53
本帖最后由 newswan 于 2021-7-22 12:55 编辑
回复 36# wh123wh123
😓,刚才注意到,低级错误复制代码
另外,保存为ansi,否则中文会导致出错
作者: newswan 时间: 2021-7-22 12:57
本帖最后由 newswan 于 2021-7-22 13:01 编辑
回复 35# wh123wh123
有的程序用这种方式不行,要找到实际联网的那些。
你手动操作防火墙,看看怎么能阻止。
作者: wh123wh123 时间: 2021-7-22 13:24
回复 38# newswan
您发完整代码,看不懂刚才这是啥意思啊
作者: newswan 时间: 2021-7-22 13:30
回复 40# wh123wh123 复制代码
改为复制代码
作者: wh123wh123 时间: 2021-7-22 13:50
回复 wh123wh123 改为
newswan 发表于 2021-7-22 13:30
这不是一样嘛?
作者: newswan 时间: 2021-7-22 13:55
回复 42# wh123wh123
() 和 {}
作者: wh123wh123 时间: 2021-7-22 13:56
本帖最后由 wh123wh123 于 2021-7-22 14:08 编辑
回复 43# newswan
.ps1这样的后缀名?没法运行啊,闪一下就消失了
作者: wh123wh123 时间: 2021-7-22 14:27
回复 43# newswan
@if(0)==(0) echo off
@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit
$program = "D:\AAA.exe"
New-NetFirewallRule -DisplayName "阻断一次" -Profile Private,Public -Direction Outbound -Program $program -Action block
$count = 0
do
{
$count += 1
write-host "count:" $count
Enable-NetFirewallRule -DisplayName "阻断一次"
start-sleep 5
disable-NetFirewallRule -DisplayName "阻断一次"
start-sleep 8
}
while ($true)
BAT没法正常运行啊,后缀改为.ps1闪一下消失了
作者: wh123wh123 时间: 2021-7-22 20:16
在线期待老师给个完整完美版的代码,先谢谢各位老师
作者: wh123wh123 时间: 2021-7-22 20:18
回复 2# idwma
在线等老师
作者: wh123wh123 时间: 2021-7-22 22:17
本帖最后由 wh123wh123 于 2021-7-22 22:36 编辑
回复 48# idwma
不是阻断所有程序,而是只阻断某一个,例如D:/AAA.exe,阻断AAA.exe联网后不影响其他程序正常联网的那种,也就是只针对一个例如AAA.exe控制
作者: wh123wh123 时间: 2021-7-22 22:52
回复 50# idwma
正在测试,有效果,但是发现阻断网络好像和拦截效果是不是不一样?拦截的话是不是等放行后数据会一次性到?而阻断的话相当是丢包?
作者: wh123wh123 时间: 2021-7-22 22:59
回复 48# idwma
@echo off
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall firewall add rule name="允许所有" dir=out action=allow enable=yes
:loop
set/a n+=1
ping -n 6 127.0.1 >nul
echo 已断开%n%
netsh advfirewall firewall add rule name="阻断一次" dir=out action=block program="d:\阻断一次.exe" enable=yes
ping -n 9 127.0.1 >nul
echo 已连接%n%
netsh advfirewall firewall delete rule name="阻断一次"
goto :loop
如果只允许AAA.exe联网,而阻断和放行其他所有联网的话怎么修改?
作者: cmd1152 时间: 2021-7-22 23:37
回复 6# wh123wh123
这不是VBS代码
作者: newswan 时间: 2021-7-23 00:49
回复 45# wh123wh123
怎么使用powershell
http://www.bathome.net/thread-59270-1-1.html
作者: newswan 时间: 2021-7-23 00:54
本帖最后由 newswan 于 2021-7-23 01:02 编辑
回复 39# newswan
netsh 和 ps 的完全等效
你这个 aaa.exe 本身并不联网,他会启动 aaa1.exe aaa2.exe 用这些程序联网
所以,你必须找到实际联网的那个程序,才能阻止
作者: wh123wh123 时间: 2021-7-23 01:10
回复 54# idwma
如果只允许AAA.exe联网,而阻断和放行其他所有联网的话怎么修改?
老师,您发完整代码,我比对一下才能看明白哪里不同
作者: wh1234567 时间: 2021-7-23 19:54
回复 58# idwma
::阻断除AAA.exe之外的其他程序联网后不影响AAA.exe正常联网,也就是只允许AAA.exe联网,间断性阻断和放行其他程序联网 下面代码对不对?求修正
@echo off
title=批处理阻止与解除某个exe程序的联网
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall firewall add rule name="禁止所有" dir=out action=block enable=yes
:loop
set/a n+=1
ping -n 6 127.0.1 >nul
echo 已断开%n%
netsh advfirewall firewall add rule name="阻断所有" dir=out action=allow program="D:\AAA.exe" enable=yes
ping -n 9 127.0.1 >nul
echo 已连接%n%
netsh advfirewall firewall delete rule name="阻断所有"
goto :loop
作者: wh1234567 时间: 2021-7-23 20:29
回复 60# idwma
楼上的标题忘记修改了,
title=批处理阻止与解除某个exe程序的联网
应该是仅允许某个exe程序的联网,间断性禁止和放行其他程序联网
作者: wh1234567 时间: 2021-7-23 20:34
本帖最后由 wh1234567 于 2021-7-23 21:02 编辑
回复 60# idwma
@echo off
title=批处理阻止与解除除某个exe之外的其他程序的联网(阻断其他程序联网后不影响AAA.exe正常联网)
netsh advfirewall firewall add rule name="允许AAA.exe联网" dir=out action=allow program="D:\AAA.exe" enable=yes
:loop
set/a n+=1
ping -n 6 127.0.1 >nul
echo 已断开%n%
netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound
ping -n 9 127.0.1 >nul
echo 已连接%n%
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
goto :loop
是这样吗?这就是我说的另外一种功能代码吗?
作者: wh1234567 时间: 2021-7-23 21:03
回复 63# idwma
呵呵呵,
@echo off
title=全部禁止联网
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
pause
全部禁止联网的话是不是这样?
作者: wh1234567 时间: 2021-7-23 21:07
本帖最后由 wh1234567 于 2021-7-23 21:14 编辑
回复 65# idwma
那咋写?
----------请选择要执行的模式----------
1.间断性阻断AAA.exe联网后不影响其他所有程序正常联网
2.间断性阻断除AAA.exe之外的其他所有程序联网后不影响AAA.exe正常联网
3.恢复默认【全部允许正常联网】
4.全部禁止联网
0.退出
请输入数字选项[1/2/3/4/0]:
作者: wh1234567 时间: 2021-7-23 21:28
回复 67# idwma
是的,老师,您把各个功能全部放进去完善一下代码吧
作者: idwma 时间: 2021-7-23 21:29
回复 68# wh1234567
你自己放啊,你有见过老师帮学生写作业的吗
作者: wh1234567 时间: 2021-7-23 21:34
回复 69# idwma
@echo off
setlocal EnableDelayedExpansion
@color 0a
title WIN高级防火墙的出站白名单模式控制联网
echo.
echo ----------请选择要执行的模式----------
echo.
echo 1.间断性阻断AAA.exe联网后不影响其他所有程序正常联网
echo 2.间断性阻断除AAA.exe之外的其他所有程序联网后不影响AAA.exe正常联网
echo 3.恢复默认【全部允许正常联网】
echo 4.全部禁止联网
echo 0.退出
echo.
echo.
:choose
set num=
set /p num=请输入数字选项[1/2/3/4/0]:
if "!num!"=="1" goto A
if "!num!"=="2" goto B
if "!num!"=="3" goto C
if "!num!"=="4" goto D
if "!num!"=="0" goto exit
Echo 选择无效,请重新输入
Echo.
Goto choose
:A
:echo 正在执行【仅阻断AAA.exe联网】
::阻断AAA.exe联网后不影响其他程序正常联网,也就是只针对一个exe控制
::如果不能结束进程的情况下,可以试试系统防火墙的出站白名单模式
@echo off
title=批处理阻止与解除某个exe程序的联网
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall firewall add rule name="允许所有" dir=out action=allow enable=yes
:loop
set/a n+=1
ping -n 6 127.0.1 >nul
echo 已断开%n%
netsh advfirewall firewall add rule name="阻断一次" dir=out action=block program="D:\AAA.exe" enable=yes
ping -n 9 127.0.1 >nul
echo 已连接%n%
netsh advfirewall firewall delete rule name="阻断一次"
goto :loop
:goto A
:B
:echo 正在执行【仅阻断除AAA.exe之外的其他程序联网】
::阻断除AAA.exe之外的其他程序联网后不影响AAA.exe正常联网,也就是只允许AAA.exe联网,间断性阻断和放行其他程序联网
@echo off
title=批处理阻止与解除除某个exe之外的其他程序的联网(阻断其他程序联网后不影响AAA.exe正常联网)
netsh advfirewall firewall add rule name="允许AAA.exe联网" dir=out action=allow program="D:\AAA.exe" enable=yes
:loop
set/a n+=1
ping -n 6 127.0.1 >nul
echo 已断开%n%
netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound
ping -n 9 127.0.1 >nul
echo 已连接%n%
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
goto :loop
:goto B
:C
:echo 正在执行【全部允许正常联网】
@echo off
title=恢复默认【全部允许正常联网】
netsh advfirewall set domainprofile firewallpolicy blockinbound,AllowOutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,AllowOutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,AllowOutbound
pause
:goto C
:echo 正在执行【全部禁止联网】
@echo off
title=全部禁止联网
netsh advfirewall set domainprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set privateprofile firewallpolicy blockinbound,blockoutbound
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound
pause
:goto D
作者: wh1234567 时间: 2021-7-23 21:35
回复 69# idwma
有不对的地方请老师修正一下吧
作者: idwma 时间: 2021-7-23 21:47
回复 71# wh1234567
一百分
作者: wh1234567 时间: 2021-7-23 22:12
本帖最后由 wh1234567 于 2021-7-23 22:14 编辑
回复 72# idwma
老师不够认真,问一句回答一句 很感谢老师的辛苦帮助,谢谢了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |