10
votes

windows has many MSXML versions that can be installed side by side. i.e ver 3, 4, 5 & 6.

I have to find which msxml file is present on the system. My query is limited through registry only.

2

2 Answers

14
votes

All of the MSXML versions installed on your machine will be in the following registry GUID:

HKEY_CLASSES_ROOT\CLSID\{2933BF90-7B36-11D2-B20E-00C04F983E60}\VersionList.  

If you are looking for a specific version, say 3.0, you would check that Name = 3.0.

3
votes

Getting you all versions installed via Powershell:

    New-PSDrive -PSProvider registry -Root HKEY_CLASSES_ROOT -Name HKCR
get-item "HKCR:\CLSID\{2933BF90-7B36-11D2-B20E-00C04F983E60}\VersionList"

First line gets you to have the HKEY_Classes_Root as a drive in powershell. Second line gets you the versions installed.

Output similar to:

    Hive: HKEY_CLASSES_ROOT\CLSID\{2933BF90-7B36-11D2-B20E-00C04F983E60}

Name                           Property
----                           --------
VersionList                    6.0 : C:\Windows\System32\msxml6.dll
                               3.0 : C:\Windows\System32\msxml3.dll