Rebuilding and reinstalling the WMI Repository

If you experience behavior when using WMI, such as application errors or scripts that used to work are no longer working, you may have a corrupted WMI repository. To fix a corrupted WMI repository, use these steps:

Windows XP and Windows Vista

Click Start -> Run and type CMD.EXE
Note: In Windows Vista, you need to open an elevated Command Prompt window. To do so, click Start, click All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.

Type this command and press Enter:

net stop winmgmt

Using Windows Explorer, rename the folder %windir%\System32\Wbem\Repository. (For example, %windir%\System32\Wbem\Repository_bad). %windir% represents the path to the Windows directory, which is typically C:\Windows.

Switch to Command Prompt window, and type the following and press ENTER after each line:
net start winmgmt
EXIT

For Windows XP Service Pack 2 and Service Pack 3

Click Start, Run and type the following command:
rundll32 wbemupgd, UpgradeRepository

This command is used to detect and repair a corrupted WMI Repository. The results are stored in the setup.log (%windir%\system32\wbem\logs\setup.log) file.

For Windows Vista

Open an elevated Command Prompt window. To do so, click Start, click All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type the following command:

winmgmt /salvagerepository

The above command Performs a consistency check on the WMI repository, and if an inconsistency is detected, rebuilds the repository. The content of the inconsistent repository is merged into the rebuilt repository, if it can be read.

For Windows Server 2003

Use the following command to detect and repair a corrupted WMI Repository:

rundll32 wbemupgd, RepairWMISetup

Re-registering the WMI components

The .DLL and .EXE files used by WMI are located in %windir%\system32\wbem. You might need to re-register all the .DLL and .EXE files in this directory. If you are running a 64-bit system you might also need to check for .DLLs and .EXE files in %windir%\sysWOW64\wbem.

To re-register the WMI components, run the following commands at the command prompt:
  • CD %windir%\system32\wbem
  • for /f %s in ('dir /b /s *.dll') do regsvr32 /s %s
  • for /f %s in ('dir /b *.mof') do mofcomp %s 
Registering WMI Service itself

Open the command console, type "net stop winmgmt". When you get the warning that other services need to be stopped type 'Y' and continue.

Open 'My Computer' and then go to the folder '%SystemRoot%\System32\WBEM\Repository' and delete that folder.

Reboot your system.

After you login, open the command console, and type the following commands in order: 

winmgmt /clearadap
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf
Note: If this doesn't fix the problem, you need to try reinstalling Comprehensive rebuild method.

Comprehensive rebuild method

Important note: If you've installed a Service Pack, you need to insert your Windows XP CD with Service Pack integration (called as the Slipstreamed Windows XP CD). If you don't have one, you may point to the %Windir%\ServicePackFiles\i386 folder for a recent version of the system files required during WMI repair. Or you may create a slipstreamed Windows XP CD and insert it when prompted.


Click Start, Run and type the following command, and press ENTER:

rundll32.exe setupapi,InstallHinfSection WBEM 132 %windir%\inf\wbemoc.inf

Insert your Windows XP CD into the drive when prompted. Repair process should take few minutes to complete. Then restart Windows for the changes to take effect.

Note that none of the above two methods restore the missing files related to Windows Management Instrumentation (WMI). So, below is a comprehensive repair procedure that restores all the missing WMI modules. In case of missing WMI modules, you may use the following method.

Repair WMI using BAT File:

Most of the WMI problems can be solved by rebuilding the WMI Repository, re-registering the WMI components. To automate this, you could create a BAT file. Copy the following lines to a text file and save it with .BAT extension and run it to fix common WMI issues.
net stop winmgmt /y
%SYSTEMDRIVE%
CD %windir%\system32\wbem
rd /S /Q repository
net start winmgmt
for /f %%s in ('dir /b /s *.dll') do regsvr32 /s %%s
for /f %%s in ('dir /b *.mof') do mofcomp %%s

7 comments:

Anonymous said...

very useful

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

This also worked for me. Thanks for the write up.

Anonymous said...

It fix my problem. thanks.

Amit Pandeya said...

Thanks it worked wonders to my windows7...

Anonymous said...

worked on windows RT :) thanks!

Anonymous said...

This also worked for me. Thanks for the write up.

Post a Comment