What does "regsvr32 /i shell32.dll" do?

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


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.