Clear Internet Explorer Cache using Rundll32 Command-Line

The rundll32 command-line involving inetcpl.cpl and the entry point ClearMyTracksByProcess which is widely in use since Internet Explorer 7, is effective only if it’s run in low integrity level. This is because in Windows Vista and higher, Internet Explorer manages two different cache containers, one for the Protected Mode and another cache folder to store files when Internet Explorer is outside the Protected Mode.

When a user executes the following command in order to clear the cache:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

The command executes with a Medium integrity level and thus clears only the cache folder for websites visited outside of Protected Mode. Whereas all of your cache files are in the Protected mode area, that is under the Low directory.

In order to properly clear the cache, you’ll have to run the same command again but this time launch it in Low integrity level. This is what Internet Explorer exactly does when you try to clear the cache via menu options. This is evident from the following graphic.

Clear Internet Explorer Cache

How to Clear Internet Explorer Cache Using Command-Line?

To properly clear the Internet Explorer Temporary Internet Files cache, use one of these options.

Option 1: Using PsExec.exe

Use from Windows SysInternals to launch Rundll32.exe with low Integrity Level. Download PsExec.exe from Windows SysInternals and save it to a convenient location. To clear IE cache, run this command:

<Path:>\psexec.exe -l c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Example:

c:\tools\psexec.exe -l c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Thanks to magicandre1987 at StackOverflow for the PsExec tip.

Option 2: Make a Copy of Rundll32.exe and Set it to Run with Low IL

Open your Windows\System32 directory. Make a copy of rundll32.exe and name the copy as rundll32-low.exe

Clear Internet Explorer Cache

Now, open an elevated or administrator Command Prompt, and type in:

icacls rundll32-low.exe /setintegritylevel low

You should “see the successfully processed 1 files” in the output.



Clear Internet Explorer Cache

Optionally, make a note of the disk space consumed by Internet Explorer’s Temporary Internet Files\Low directory, that’s where the real cache (for Protected mode) is stored.

Clear Internet Explorer Cache

Press WinKey + R, and type the command-line to clear the IE cache, but this time using rundll32-low.exe.

RunDll32-low.exe InetCpl.cpl,ClearMyTracksByProcess 8

Clear Internet Explorer Cache

That does the job perfectly. Here you go.

Clear Internet Explorer Cache

You could also make a shortcut to the above command-line if you want.

Note: The above method has a small drawback. The rundll32-low.exe process does clear the cache perfectly, but doesn’t exit cleanly. The process shows up in Task Manager until you exit it manually. This shouldn’t affect the performance though.


One small request: If you liked this post, please share this?

One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
  • Pin it!
  • Share it to your favorite blog + Facebook, Reddit
  • Tweet it!
So thank you so much for your support. It won't take more than 10 seconds of your time.

Ramesh Srinivasan is passionate about Microsoft technologies and he has been a ten-time recipient of the Microsoft MVP award in Windows Desktop Experience (Windows Shell), from 2003 to 2012. Ramesh founded Winhelponline.com in 2005.

4 thoughts on “Clear Internet Explorer Cache using Rundll32 Command-Line”

Leave a Comment