Windows 2000 (32 ビット) サーバーから Windows 2008 R2 (64 ビット) に移行する大きなコードベース (主に vbscript) があります。このコードの大部分は MSXML 4.0 パーサーに依存しており、残念ながら、バージョン 3 または 6 を使用するオプションはありません (この質問の範囲を超えた理由により)。
http://www.microsoft.com/en-us/download/details.aspx?id=15697の指示に従って MSXML の 4.0 バージョンをインストールし、正しくインストールされていることを確認しました。「msxml4.dll」は「c:\windows\syswow64」に存在し、レジストリの HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.4.0 にキーがあります。dll に対して regsrv32.exe を実行したところ、正しく登録されていることがわかりました。
しかし、やろうとすると
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
前もって感謝します。