Fix broken Windows Management Instrumentation
A colleague told me a Windows Server 2016 node entered an inconsistent state after an abnormal shutdown. The following symptoms were observed:
- Explorer hangs with “loading…” text
- Hyper-V Management couldn’t connect to the local server
- Group Policy Update consequently failed
- Telemetry metrics disappeared
- WMI Management reported “RPC: the requested object does not exist” for object Root
A quick diagnostics indicated a component failure with Windows Management Instrumentation. To determine the failure source, I ran WMIDiag from Microsoft. The log showed a metadata failure:
.1526 21:47:43 (1) !! ERROR: WMI CONNECTION errors occured for the following namespaces: ………………………………………….. 20 ERROR(S)!
.1527 21:47:43 (0) ** - Root, 0x80010114 - The requested object does not exist..
.1528 21:47:43 (0) ** - Root, 0x80010114 - The requested object does not exist..
.1529 21:47:43 (0) ** - Root/subscription, 0x80010114 - The requested object does not exist..
.1530 21:47:43 (0) ** - Root/DEFAULT, 0x80010114 - The requested object does not exist..
.1531 21:47:43 (0) ** - Root/CIMV2, 0x80010114 - The requested object does not exist..
.1532 21:47:43 (0) ** - Root/CIMV2/Security, 0x80010114 - The requested object does not exist..
.1533 21:47:43 (0) ** - Root/CIMV2/TerminalServices, 0x80010114 - The requested object does not exist..
.1534 21:47:43 (0) ** - Root/nap, 0x80010114 - The requested object does not exist..
.1535 21:47:43 (0) ** - Root/SECURITY, 0x80010114 - The requested object does not exist..
.1536 21:47:43 (0) ** - Root/STANDARDCIMV2, 0x80010114 - The requested object does not exist..
.1537 21:47:43 (0) ** - Root/RSOP, 0x80010114 - The requested object does not exist..
.1538 21:47:43 (0) ** - Root/RSOP/User, 0x80010114 - The requested object does not exist..
.1539 21:47:43 (0) ** - Root/RSOP/Computer, 0x80010114 - The requested object does not exist..
.1540 21:47:43 (0) ** - Root/WMI, 0x80010114 - The requested object does not exist..
.1541 21:47:43 (0) ** - Root/directory, 0x80010114 - The requested object does not exist..
.1542 21:47:43 (0) ** - Root/directory/LDAP, 0x80010114 - The requested object does not exist..
.1543 21:47:43 (0) ** - Root/Policy, 0x80010114 - The requested object does not exist..
.1544 21:47:43 (0) ** - Root/Microsoft, 0x80010114 - The requested object does not exist..
.1545 21:47:43 (0) ** - Root/Microsoft/HomeNet, 0x80010114 - The requested object does not exist..
.1546 21:47:43 (0) ** - Root/aspnet, 0x80010114 - The requested object does not exist..
The documentation suggested performing a metadata registration. The following script is utilized for the metadata repair:
@echo on
cd /d c:\temp
if not exist %windir%\system32\wbem goto TryInstall
cd /d %windir%\system32\wbem
net stop winmgmt
winmgmt /kill
if exist Rep_bak rd Rep_bak /s /q
rename Repository Rep_bak
for %%i in (*.dll) do RegSvr32 -s %%i
for %%i in (*.exe) do call :FixSrv %%i
for %%i in (*.mof,*.mfl) do Mofcomp %%i
net start winmgmt
goto End
:FixSrv
if /I (%1) == (wbemcntl.exe) goto SkipSrv
if /I (%1) == (wbemtest.exe) goto SkipSrv
if /I (%1) == (mofcomp.exe) goto SkipSrv
%1 /RegServer
:SkipSrv
goto End
:TryInstall
if not exist wmicore.exe goto End
wmicore /s
net start winmgmt
:End
It will throw some errors. Ignore them. Then reboot the server.