Board logo

标题: [文件操作] 批处理如何全盘禁止运行某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

  1. @echo off
  2. set "str=EDC" :: 文件名中含有的字符
  3. 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
  4. :: 如果已禁止运行,则恢复
  5. set file=
  6. if exist "%appdata%\.DisabledFile" set /p file=<"%appdata%\.DisabledFile"
  7. if defined file goto 取消映像劫持
  8. echo 是否禁止运行"*%str%*.exe"?
  9. pause
  10. echo 全盘搜索文件名中含有"%str%"的 .exe 后缀文件:
  11. for %%d in (%盘符%) do (
  12.     if exist %%d: (
  13.         echo     正在搜索 %%d 盘...
  14.         for /f "delims=" %%f in ('dir /a:-d /b /s "%%d:\*%str%*.exe"') do (
  15.             set file=%%~nxf
  16.             goto 映像劫持
  17.         )
  18.     ) 2>nul
  19. )
  20. findstr /a:c /d:"::无法找到文件名中含有"%str%"的 .exe 后缀文件:" . * 2>nul
  21. goto exit
  22. :取消映像劫持
  23. echo 是否恢复%file%的正常运行?
  24. pause
  25. del /a /f "%appdata%\.DisabledFile"
  26. reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%file:"=%" /f >nul
  27. findstr /a:a /d:"::已恢复:" . * 2>nul
  28. goto exit
  29. :映像劫持
  30. reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%file%" /v debugger /d "debugfile.exe" /f >nul
  31. >"%appdata%\.DisabledFile" echo "%file%"
  32. findstr /a:a /d:"::已禁止运行 "%file%"!重新运行此批处理可恢复:" . * 2>nul
  33. :exit
  34. echo,
  35. echo 按任意键退出...
  36. 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