Take the 2-minute tour ×

What exactly does regsvr32 /i shell32.dll do? The definition of "This command-line tool registers .dll files as command components in the registry." is not exactly informative.

It pops all over the net as a magic pill to solve all kinds of problems, from file associations to desktop icons to enabling camera preview to making coffee (ok, maybe not coffee). What is it actually for and how should, or shouldn't, it be used?

share|improve this question
Have you tried the Wikipedia article on Google search results page 1? –  Daniel Beck Apr 19 '12 at 18:54
@DanielBeck google:"regsvr32 /i shell32.dll" doesn't have a any wikipedia entries in the first 10 pages of results. Which article are you referring to? –  matt wilkie Apr 19 '12 at 20:04
add comment

2 Answers

up vote 1 down vote accepted

Some (dll) files in Windows need to be registered in order to be used by other applications, and by parts of the operating system itself. Shell32.dll is a critical system file that is used everywhere by Windows itself, and by other programs. When you install Windows, it registers all the files it needs, and that registration is basically writing some stuff in the registry (although it can do more than that).

Sometimes, for various reasons (malware, etc) these registry settings get deleted, corrupted, overwritten, etc. This may lead to numerous problems like the ones you are describing (file associations, desktop icons, etc). When that happens, one of the things you can try is repairing the registration of certain DLLs. That is done by re-registering the DLLs, so those registry settings can be restored, re-written.

If we are to compare, this is the DLL equivalent to reinstalling an application. For example, if MS Office starts to malfunction and not work properly, you can try reinstalling it. If some stuff goes wrong in Windows and it's related to shell32.dll, you can try to re-register shell32.dll.

regsvr32.exe is a tool included in Windows that can register and unregister DLL files. In order to use it, you pass the name of the DLL you want to register/unregister, and some flags that specify what you want to do. regsvr32 /i shell32.dll is practically saying "Please register the shell32.dll file for me". This internally calls the DLLs' DllInstall function, and the DLL is registered again.

Here are all the things you can do with regsvr32: Regsvr32

Also, here is an article that explains how to fix several problems in WinXP by re-registering some DLLs: Windows Tips: Fix Windows Glitches by Re-registering Your DLLs

share|improve this answer
add comment

Shell32.dll is responsible for handling shell API calls, which affect a large amount of the items you interact with in Windows (for example opening files).

On occasion some of the things that Shell32 is normally responsible for handling can be reassigned to other applications, or otherwise corrupted, causing any number of issues.

The /i portion of that command calls the DLLInstall portion of Shell32.dll, which offers it the opportunity to do any necessary (re)installation tasks, such as adding/correcting registry entries.

share|improve this answer
add comment

Your Answer


