标题: [文件操作] 批处理如何全盘禁止运行某exe程序? [打印本页]
作者: chen115 时间: 2010-6-26 14:50 标题: 批处理如何全盘禁止运行某exe程序?
如题。不知路径、属硬盘版程序,只知道文件名中包含“EDC”(大小写未知)。不允许运行或者运行批处理时删除目标EXE皆可。有可能吗?谢谢
作者: xinje 时间: 2010-6-26 15:19
如果纯用BAT实现可能会耗费大量系统资源。
禁止运行不知如何实现,看别人有没有方法。但是运行后结束进程可以用BAT实现。
关于删除EXE,需要全盘搜索了,估计会很长时间。并且正在运行的程序是不能被删掉的。
------------------------
给你个思路。检测EDC相关文件名的进程。如果有,取进程路径,结束进程,删除文件。
用C++我知道如何实现,但是用BAT就有点无力了。看别人能不能帮你写出来。
作者: chen115 时间: 2010-6-26 16:37 标题: 回复 2楼 的帖子
禁止运行好像有人通过删除注册表项什么的,但得是非常了解的程序。请问如果通过全盘搜索,应该怎么写。
作者: Seter 时间: 2010-6-26 17:46
用gpedit的文件禁用可行么?我知道完全文件名是可行的.不知道能不能禁用含有特定字符串的
作者: 1uso2r6oioih 时间: 2010-6-26 18:26
- @echo off
- set "str=EDC" :: 文件名中含有的字符
- set 盘符=c d e f g h i j k l m n o p q r s t u v w x y z
-
- :: 如果已禁止运行,则恢复
- set file=
- if exist "%appdata%\.DisabledFile" set /p file=<"%appdata%\.DisabledFile"
- if defined file goto 取消映像劫持
-
- echo 是否禁止运行"*%str%*.exe"?
- pause
-
- echo 全盘搜索文件名中含有"%str%"的 .exe 后缀文件:
- for %%d in (%盘符%) do (
- if exist %%d: (
- echo 正在搜索 %%d 盘...
- for /f "delims=" %%f in ('dir /a:-d /b /s "%%d:\*%str%*.exe"') do (
- set file=%%~nxf
- goto 映像劫持
- )
- ) 2>nul
- )
- findstr /a:c /d:"::无法找到文件名中含有"%str%"的 .exe 后缀文件:" . * 2>nul
- goto exit
-
- :取消映像劫持
- echo 是否恢复%file%的正常运行?
- pause
- del /a /f "%appdata%\.DisabledFile"
- reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%file:"=%" /f >nul
- findstr /a:a /d:"::已恢复:" . * 2>nul
- goto exit
-
-
- :映像劫持
- reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%file%" /v debugger /d "debugfile.exe" /f >nul
- >"%appdata%\.DisabledFile" echo "%file%"
- findstr /a:a /d:"::已禁止运行 "%file%"!重新运行此批处理可恢复:" . * 2>nul
-
- :exit
- echo,
- echo 按任意键退出...
- pause >nul
复制代码
[ 本帖最后由 1uso2r6oioih 于 2010-6-26 18:43 编辑 ]
作者: xinje 时间: 2010-6-26 18:27
我有个思路。。。。。。
自己编写文件禁用的第三方程序~
作者: ZJHJ 时间: 2010-6-26 21:04
在软件限制策略里设置一下就可以了
作者: xinje 时间: 2010-6-26 21:51
我已经写好了。你可以到http://www.bathome.net/thread-8358-1-1.html下载
作者: chen115 时间: 2010-6-27 14:27 标题: 回复 5楼 的帖子
哇,牛啊!居然办到了!太谢谢了!
作者: chen115 时间: 2010-6-27 14:30 标题: 回复 8楼 的帖子
我看了下,比较笨,没弄明白怎么用···
那个,我再看了下,有点明白了,通过FileLock.exe代替原来的进程运行,以达到目的,但这样就需要保持那个窗口,而且需要知道exe文件的准确路径,我是初学者,那个DIR /B /S后面是不是要加上什么。
[ 本帖最后由 chen115 于 2010-6-27 14:37 编辑 ]
作者: xinje 时间: 2010-6-28 13:50 标题: 回复 10楼 的帖子
FileLock.exe 不是要代替。而是挟持文件。让其无法读取。
比如锁定c盘的含有EDC的文件
1、获得含有EDC的文件列表,保存到C盘下的LIST.txt:
DIR /B /S C:\*EDC*.* c:\list.txt
2、用FileLock.EXE进行锁定列表即可。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |