Windows Management Instrumentation (WMI) is a key core windows management technology. It provides a consistent approach to carry day to day management operations with programming or scripting languages.
I recently started getting WMI failures on daily basis on my 2008R2 domain controllers accompanied by several scripts failure and DNS performance degradation.
Also I noticed that the Configuration Manager SCCM evaluation rules on this domain controller failed and SCCM is reporting errors. The policy Request date on the SCCM is few hours back and it will never report back to SCCM till the DC/Server is rebooted.
I recently started getting WMI failures on daily basis on my 2008R2 domain controllers accompanied by several scripts failure and DNS performance degradation.
Also I noticed that the Configuration Manager SCCM evaluation rules on this domain controller failed and SCCM is reporting errors. The policy Request date on the SCCM is few hours back and it will never report back to SCCM till the DC/Server is rebooted.
Troubleshooting Steps:
- I started by running the WMI diagnosis tool from http://www.microsoft.com/en-us/download/details.aspx?id=7684
- The WMI diag log file reported WBEM_E_QUOTA_VIOLATION as follows:
.5265 16:34:02 (0) ** 981 error(s) 0x8004106C - (WBEM_E_QUOTA_VIOLATION) WMI is taking up too much memory
.5266 16:34:02 (0) ** => This error is typically due to the following major reasons:
.5267 16:34:02 (0) ** - The requested WMI operation is extremely costly in terms of resources and
.5268 16:34:02 (0) ** the WMI provider handling this operation has exceeded the authorized limits.
3. tried later to check whether the basic WMI function is working by running the below test:
1. From Elevated Command Prompt type Run wbemtest, connect the namespace root\cimv2
2. Click Query… and enter the following query “Select * from Win32_ComputerSystem”
3. This test failed and the following error was reported.
0x80041017 Facility: WMI Description: Invalid Query
1 4. I tried fixing and rebuilding the WMI Repository as follows:
- Disable and stop the WMI service. sc config winmgmt start= disabled and net stop winmgmt
- At a command prompt (cmd), change to the WBEM folder. cd %windir%\system32\wbem
- Rename the repository folder. rename repository repository.old
- Re-enable the WMI service. sc config winmgmt start= auto
- Run the following command to manually recompile all of the default WMI .mof files and .mfl files
- cd %windir%\system32\wbem
- for /f %s in ('dir /b *.mof *.mfl') do mofcomp %s
The only way to get around this issue was to manually reboot the server. After Rebooting the server, it works for few hours without a problem then the failures start again. One thing else to be noticed is that the WMIPRVSE.exe process is consuming huge amount of memory during this problem.
Resolution Steps:
- Increased the "MemoryPerHost” value to 1 GB (1073741824), by default it should be 536870912 which means 512 MB as per attached article
Memory and Handle Quotas in the WMI Provider Service
http://blogs.technet.com/b/askperf/archive/2008/09/16/memory-and-handle-quotas-in-the-wmi-provider-service.aspx2. Install the following WMI fixes
KB Article Number (s) : 2705357
Language: All (Global)
Platform: x64
KB Article Number (s) : 2692929
Language: All (Global)
Platform: x64
KB Article Number (s) : 2617858
Language: All (Global)
Platform: x64
KB Article Number (s) : 2465990
Language: All (Global)
Platform: x64
KB Article Number (s) : 2492536
Language: All (Global)
Platform: x64
For a list of suggested WMI hotfixes on different windows platform, please check this blog which is maintained and updated regularly.