MSXML4.0 в Windows Server 2008r2 - невозможно создать объект MSXML2.ServerXMLHTTP.4.0

У нас есть большая кодовая база (в первую очередь, vbscript), которую я перевожу с сервера Windows 2000 (32-разрядный) на Windows 2008 R2 (64-разрядный). Большая часть этого кода основана на синтаксическом анализаторе MSXML 4.0, и, к сожалению, у нас нет возможности использовать версию 3 или 6 (по причинам, выходящим за рамки этого вопроса).

Я установил версию MSXML 4.0 в соответствии с инструкциями на http://www.microsoft.com/en-us/download/details.aspx?id=15697 и убедился, что он установлен правильно. "msxml4.dll" существует в "c:\windows\syswow64", и в реестре есть ключ HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.4.0 . Я даже запустил regsrv32.exe против DLL, и он сказал, что он был зарегистрирован правильно.

Однако при попытке сделать

    Set objAsp = CreateObject("MSXML2.ServerXMLHTTP.4.0")

Это терпит неудачу с:

    Script: C:\test.vbs
    Line:   1
    Char:   1
    Error:  ActiveX component can't create object: 'MSXML2.ServerXMLHTTP.4.0'
    Code:   800A01AD
    Source:     Microsoft VBScript runtime error

И в PowerShell:

     $objAsp = New-Object -ComObject MSXML2.ServerXMLHTTP.4.0

это терпит неудачу с:

    New-Object : Retrieving the COM class factory for component with CLSID {88D969C6-
    F192-11D4-A65F-0040963251E5} failed due to the following error: 80040154 Class not   
    registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    At line:1 char:11
    + $objAsp = New-Object -ComObject MSXML2.ServerXMLHTTP.4.0
    +           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
    + FullyQualifiedErrorId :  
    NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

Заранее спасибо.

1 ответ

Я думаю, что вы используете 64-битные версии CScript и Powershell по умолчанию, но MSXML - это 32-битный компонент.

Вот ссылка, объясняющая, как запустить 32-разрядную версию Powershell в 64-разрядной ОС: Запуск 32-разрядной версии Windows PowerShell

Другие вопросы по тегам