【问题标题】:How can I delete Internet Explorer cookies using bat script?如何使用 bat 脚本删除 Internet Explorer cookie?
【发布时间】:2015-10-31 01:43:57
【问题描述】:

我已经为我的计算机编写了一个简单的 bat 脚本来做一些事情。其中之一是从我的计算机中删除 cookie。

我选择了以下命令来执行此操作;

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

因为此页面上给出了以下命令列表;

https://social.msdn.microsoft.com/Forums/ie/en-US/ce81943b-32b8-437b-b620-171c3d5893e7/inetcplcpl-with-clearmytracksbyprocess?forum=ieextensiondevelopment

echo Clear Temporary Internet Files: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 


echo Clear Cookies: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 


echo Clear History: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 


echo Clear Form Data: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 


echo Clear Saved Passwords: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32 


echo Delete All: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 


echo Delete All w/Clear Add-ons Settings: 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

但是,运行我的防病毒软件后运行它仍然会删除大量 cookie,所以我知道它没有按预期删除 cookie。但是,它确实会清除我的互联网历史记录。

有人能解释为什么这不起作用吗? Microsoft 是否更改了 IE 以使 cookie 无法删除,或者网站是否使用不同的 cookie 文件夹?另外,我应该使用什么命令来成功删除 cookie?

【问题讨论】:

  • 您以正常权限运行脚本,而 IE 以低 IL 运行(由 UAC 引起),这就是 cookie 仍然存在的原因
  • 这里的 IL 指的是什么?
  • 我是否只需更改我的 UAC 设置来解决此问题?
  • 使用 **psexec -l ** 以低 IL 运行它

标签: batch-file cookies windows-7 command internet-explorer-11


【解决方案1】:

正如其他人所说,rundll32.exe当你正常运行时,它在Medium IL下运行。有一种方法可以在低 IL 中启动它,这样它就可以清除 IE 临时 Internet 文件\Low 文件夹中的内容。只需复制 rundll32.exe 并使用 CACLS 将其设置为在低 IL 中运行。更多内容:http://www.winhelponline.com/blog/rundll32-command-clear-ie-cache-ineffective-windows-vista-higher/

令人惊奇的是大多数人只是相信通过正常运行命令来清除缓存。

【讨论】:

  • 我更喜欢 PSEXEC 变体,因为 RUNDLL 可能会偶尔更新。
【解决方案2】:

这个批处理文件背后的想法是不使用命令行运行Rundll32.exe,因为命令行无法执行此行,但 vbscript 可以,所以转过批处理使用 VBScript 但在批处理命令中
意思是用命令行创建VBscript文件并运行这个vbscript文件然后删除

@echo off
(
echo  with createobject^("wscript.shell"^)
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8" 
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2" 
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1"
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16" 
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32" 
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255" 
echo .exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351"
echo End with
) > %tmp%\r.vbs && start /wait %tmp%\r.vbs && del /f %tmp%\r.vbs

【讨论】:

    【解决方案3】:
    @echo off
    copy %windir%\system32\RUNDLL32.EXE %TMP%\RUNDLL32-IL.EXE
    ICACLS %TMP%\RUNDLL32-IL.EXE /SETINTEGRITYLEVEL LOW
    echo createobject^("shell.application"^).shellexecute "cmd.exe",""" /c START /W /B %TMP%\RunDll32-IL.exe InetCpl.cpl,ClearMyTracksByProcess 255""","","runas",0  > %TMP%\rundll32.vbs
    start /w /b %TMP%\rundll32.vbs
    

    首先从Temp文件夹中的Rundll32.exe复制
    然后将该副本的完整性级别更改为低,以便在运行时没有保护模式
    然后以管理员身份运行它以清理 Internet explorer

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 2020-05-25
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多