Board logo

标题: [文本处理] 批处理如何禁止指定的IE的加载项? [打印本页]

作者: qq3475534    时间: 2011-4-4 12:08     标题: 批处理如何禁止指定的IE的加载项?

本帖最后由 qq3475534 于 2011-4-6 11:10 编辑

IE插件里面有一个 HintBrowseA 的这个插件,

我这里是用PUBWIN的,每次开机 HintBrowseA 的这个插件位置都不一样,附上注册表。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3D9622B8-A9E5-482A-B4B8-8334CB92C4E4}]
@="HintBrowseA"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3D9622B8-A9E5-482A-B4B8-8334CB92C4E4}\InprocServer32]
@="C:\\WINDOWS\\system32\\drivers\\BHOEx.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3D9622B8-A9E5-482A-B4B8-8334CB92C4E4}\ProgID]
@="BHOEx.TIEAdvBHO"

以上是HintBrowseA 的这个插件详细的注册表。 备注( 由于最新的PUBWIN 客户端 直接删除IE里的加载项的话,没什么用,如果是禁止掉IE插件的话,则有用。)

我想用批处理禁掉HintBrowseA 这个IE插件,并不是删除,在论坛搜索了下之前高人的帖子,那个帖子的批处理内容如下
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set FullKey=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
  4. set TempFile="%temp%\CLSID.reg"
  5. echo 正在导出 CLSID 下所有子项和值...
  6. reg query %FullKey% /s >%TempFile%
  7. echo 正在搜索...
  8. for /f "delims=:" %%a in ('findstr /nie HintBrowseA %TempFile%') do (
  9.     set /a #Line# = %%a - 1
  10.     set Command="findstr /n .* %TempFile% | findstr /b !#Line#!:"
  11.     for /f "tokens=1,* delims=:" %%b in (' !Command! ') do (
  12.         reg delete %%c /f >nul
  13.         echo 删除成功!
  14.     )
  15. ) 2>nul
  16. if not defined #Line# echo 没有找到
  17. del %TempFile%
  18. echo 按任意键退出...
  19. pause >nul
复制代码
上面那段批处理可以删除IE里的HintBrowseA这个插件,但是我想要的是,并不是删除这个插件,而是在IE加载项中 禁止掉这个插件,

如果批处理可以根据注册表中 HintBrowseA 这个的数值来分析DLL文件在那里 然后在禁止掉HintBrowseA这个插件,那就好了。。

请教下各位,如何可以做到呢?


2011.04.06 试了下面的批处理。,还是不行

正在查询 "HintBrowseA" 对应的 CLSID...
失败:没有找到对应的 CLSID
请按任意键退出...




作者: TX_kakashi    时间: 2011-4-4 12:24

BHOEx.dll这个名字不会变吧?还有如果把这文件名改了,那么是不是ie就不会加载这个插件了?
作者: hanyeguxing    时间: 2011-4-4 13:34

本帖最后由 hanyeguxing 于 2011-4-4 13:36 编辑

根据楼主提供的注册表数据,推荐使用以下方法:
已知:类型,BHO;名称,HintBrowseA
所以递归HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects下的CLSID,通过这些CLSID到HKCR\CLSID下查询其值为HintBrowseA是否存在。当条件满足时写CLSID到HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings
作者: tmplinshi    时间: 2011-4-4 13:42

本帖最后由 tmplinshi 于 2011-4-4 16:35 编辑

步骤:

1、查找插件对应的 CLSID

获取 HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats 下的 CLSID
然后在 HKCR\CLSID\CLSID 的默认值中查找插件名称。

2、禁用

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\CLSID]
"Flags"=dword:00000001
"Version"="*"
-------------------------------------
  1. :: 禁用指定的IE加载项.bat
  2. @echo off
  3. set "插件名称=HintBrowseA"
  4. echo 正在查询 "%插件名称%" 对应的 CLSID...
  5. SetLocal EnableDelayedExpansion
  6. set regp=HKCU\Software\Microsoft\Windows\CurrentVersion\Ext
  7. for /f "skip=5 tokens=8 delims=\" %%i in ('reg query %regp%\Stats') do (
  8.     for /f "skip=4 delims=" %%n in ('reg query HKCR\CLSID\%%i /ve') do (
  9.         set var=%%n
  10.         if /i "!var:*REG=!" == "%插件名称%" (
  11.             reg add %regp%\Settings\%%i /v Flags /t REG_DWORD /d 1 /f >nul
  12.             reg add %regp%\Settings\%%i /v Version /d * /f >nul
  13.             echo 成功:已禁止 IE 加载项 "%插件名称%"
  14.             goto exit
  15.         )
  16.     )
  17. ) 2>nul
  18. echo 失败:没有找到对应的 CLSID
  19. :exit
  20. echo 请按任意键退出...
  21. pause >nul
复制代码

作者: hanyeguxing    时间: 2011-4-4 14:06

本帖最后由 hanyeguxing 于 2011-4-4 14:24 编辑

4# tmplinshi


1,使用 IE 的管理加载项去禁用,则默认是写在HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings下的,如果使用reg命令,也可以写在HKLM\Software\Microsoft\Windows\CurrentVersion\Ext\Settings下(默认这里是空的)
2,考虑到CLSID不断变化,而被禁用的项名会逐渐增多,根据上一条,可以reg add前先删除HKLM\Software\Microsoft\Windows\CurrentVersion\Ext\Settings
3,以上的手工删除不会影响到使用 IE 的管理加载项去禁用或解禁其他项目
  1. @echo off&SetLocal EnableDelayedExpansion
  2. set "n=HintBrowseA"
  3. for /f "skip=5 delims=" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects"') do (
  4.     set "a=%%a"
  5.     reg query HKCR\CLSID\!a:~93! /ve|find /i "%n%">nul 2>nul&&(set b=!a:~93!&goto:n)
  6. ) 2>nul
  7. :n
  8. if defined b (
  9.     set "a=HKLM\Software\Microsoft\Windows\CurrentVersion\Ext\Settings"&set "b=>nul reg add !a!\%b% /f /v "
  10.     reg delete !a! /f >nul 2>nul
  11.     !b!Flags /d 1 /t REG_DWORD
  12.     !b!Version /d *
  13. )
复制代码

作者: tmplinshi    时间: 2011-4-4 16:31

5# hanyeguxing


楼主是用在网吧上的吧,每次开机电脑会还原,所以不会有“被禁用的项名会逐渐增多”的问题。
作者: qq3475534    时间: 2011-4-6 11:07

4# tmplinshi


不行,,老大帮在看下!
作者: qq3475534    时间: 2011-4-6 11:11

5# hanyeguxing


老大还是不行!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2