Legacy — msxml.dll — problem and a solution

Windows is one ancient OS. And you are the Admin (with capital A) on this legacy server farm. There is much (much) more of these, than people are led to believe. And you have the problem, perhaps other admins are dumping onto you: All of a sudden on this legacy machine MMC does not work. Gasp!

And, contrary to popular belief you know on your farm there are many servers running all possible version of Windows. Why and how? Well, let’s not go in there right now.

Hint: problem is in MSXML .

This is the article I am hoping might help you, in the 2020 Q1 that is. And beyond.

First published: 9 Mar 2009

Windows XP editions
Windows XP editions (Photo credit: Wikipedia)

Sounds as a bit of a pompous title, does it not?

Well believe me it is not that much pompous. 48 hours ago my trusty HTA application stopped working. I went in with the VS2008 debugger and … the error was in the middle of a large comment. Very ominous that is. Something can not stop working just like that. Unless we are talking windows that is.

So yet another risky journey into recovering perfectly OK Win installation has begun. All sorts of other things started to happen. Search companion stopped working (file missing)  ? IE7 stopped understanding any DOM or JavaScript whatsoever. Virus? Malware? Must unlikely since I use Kaspersky 2009. Hours have been passing buy. Weekend was wasted.

I decided to re-install SP3. Restart. Windows start-up screen appear. “Please Wait…”, for ever. “Magic” button. Restart. F8. Recovery mode worketh. Phew ;o(

MMS does not work. Message says something about not having access rights to MSC files etc. Very bad. This means I can not see the event log, can not add another fresh admin user etc …

Trusty EasyCleaner shows me, that each and every Office 2007 update has failed. Or is in a limbo. And Office setup failed with yet another spurious error. Same goes for .NET 3.5 SP1.

Spent few more hours applying VS2008 SP1 , by hand. looking into its XML setup config file.

Started moving/copying everything to the external USB 300GB WD HD. Which has taken 5+ more hours because it is done in a Recovery mode and because it is USB, of course.

Erased all the temp rubbish from the C: drive.  One more unsuccessful normal login attempt. Than at last a successful non-diagnostic, login.

It was already Sunday 00:30. Then went to www one more time to see if there is anything about a problem with MMC not loading MSC files. Google spills out the search result.

Do not skip the first one

Ah, what the heck. Just  select the first one, just for luck  …. and there was the solution.

Which I of course did not knew when looking into it, first few minutes. Remember we are talking Sunday 01:00 am here.

This author was talking about re-registering MSXML files, and refreshing the old ones by puling them from DLL CACHE … Applied the cmd file presented. Nothing. Then checked msxml dll’s in system32, and found few more. Obviously ITPRO text was few years old. Edited the cmd file by adding MSXML4 and MSXML6. Started it.

And my WIN XP  PRO SP3 is back!

Here is the bacth file. As I said: it there ever was a usefull advice take this one: copy this into cmd file and keep it safe on your USB key fob.

::
:: WIN XP PRO
:: You are in this situation
:: ERROR 10418 » You received 'MMC cannot open the file
:: C:\WINDOWS\system32\devmgmt.msc' when you open Device
:: Manager or the Computer Management window? (20-Apr-06)
::
::
:: When you attempt to open Device Manager, or the Computer
:: Management window, you receive an error similar to:
:: MMC cannot open the file C:\WINDOWS\system32\devmgmt.msc.
::
:: This situation may occur if one or more library files used
:: by the MMC are missing or corrupted. The solution :
::
::
:: (c) 2009-2013-2020 by DBJ.ORG
::
:: Fix the corrupted msxml dll on the current machine
::
@echo off
PUSHD %SystemRoot%System32
FOR /F "tokens=*" %%G IN ('dir /b msxml*.*') DO CALL :proc %%G
goto :end

:proc
SETLOCAL
echo ------------------------------------------
echo %1
copy /Y %windir%system32\DLLCACHE%1 %1
regsvr32 /s %1
ENDLOCAL _retval="OK"
goto :eof
:end
POPD
echo.
echo Done!
echo.
pause

Execute this in a safe mode (by pressing F8, before Windows Starts) Keep this batch file VERY SAFE. And hope you will not need it. Ever.

The fact that one single dll can do this to (I think) very experienced Windows user is a material for the whole book, of course.

Administrator on an Windows Legacy farm, at work.

One thought on “Legacy — msxml.dll — problem and a solution”

Comments are closed.