[28389]  WindowsMediaエンコーダ9シリーズ@NEC98用Windows2000
投稿者:QKK さん   2010-06-26 13:10:16
 このスレッドは、どる仲の「ChachaひそかにRenewal」で開始された内容ですが、
どるこむの過去ログにあれば、有用であろうかと考え、こちらに取り上げました。

 NEC98のWindows2000に、WindowsMediaエンコーダ9シリーズをインストールしていると
それのアップデートに失敗します。
 以前からKB954156が失敗していたんですが、
今月のアップデート(自動)で新たにKB979332が失敗しました。

 個別にDLしてインストールするとプラットフォームが違うと跳ねられるので
AT互換機用のファイルになっているようです。
前者は「日本語(NEC)」が選択できなかったのですが、
後者は選択でき、[更新]を押した後にDLしても「-x86-」のファイルがDLされます。
選択肢が現れる以上はWME9自体がPC-98を保証していなかったとも思えないのですが。

ファイル名は
WindowsMedia9-KB954156-x86-JPN.exe
WindowsMedia9-KB979332-x86-JPN.exe
でした。

 この現象を検証してみたところ、
KB979332のNEC98用で落とせるファイルは、X86用とバイナリレベルで同一でした。
 どうも、M$のチョンボまたは手抜きのようです。

 この手の、NEC98用Windows2000のアップデートに対する間違いは、結構あり、
KB927779「Microsoft Data Access Components 2.5 Service Pack3 用セキュリティ更新プログラム」は
Microsoft Updateで自動実行すると失敗します
(ダウンロードセンターから落としたファイルは問題ありません)。
 また、DirectX9.0cはNEC98用Windows2000には、インストールできないはずなのに、
それ用のアップデート(KB975560,KB975562)が用意されており、
無理矢理DX9.0cをインストールした環境ではMicrosoft Updateで検出され、
普通にインストールできてしまいます。
 そのほか、過去のアップデートにもあったと思います。

 一般的に、WindowsのセキュリティアップデートはDLLファイルの入替がほとんどです。
一部のアップデートでは、これに加えレジストリの書換も必要とします。
 このことを踏まえて、KB954156,KB979332のアップデート失敗の回避方法を検討してみました。
その結果、以下の手動式で何とか回避できました。

1)以下の2つのファイルをダウンロードし、解凍します(CAB圧縮)。
WindowsMedia9-KB954156-x86-JPN.exe
WindowsMedia9-KB979332-x86-JPN.exe
2)解凍されたwm91wmex.dll,wm91wmenceng.dllをWME9のインストールフォルダ
(標準では"%programfiles%Windows Media ComponentsEncoder")
に上書きコピーします。
3)レジストリエディタで、
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility{A8D3AD02-7508-4004-B2E9-AD33F087F43C}]に
Dword値"Compatibility Flags"を作成し、
値に"0400"(16進数)を入力します。

 以上の方法を適用したところ、Microsoft Updateで検出されなくなり、
Microsoft Baseline Security Analyzer 2.1.1
http://www.microsoft.com/downloads/details.aspx?FamilyID=b1e76bbe-71df-41e8-8b52-c871d012ba78&DisplayLang=ja
http://download.microsoft.com/download/A/1/0/A1052D8B-DA8D-431B-8831-4E95C00D63ED/MBSASetup-x86-JA.msi
で適用が確認できました。
 なおWME9は起動できることを確認した程度で、機能が正常か否かは確認してません。
  1. QKK さん   2010-06-26 14:23:45
     上記の手動インストールをを自動実行できるように、バッチファイルを考えて見ました。

    1)以下の内容を記載したテキストファイルを、"KB954156.REG"の名前で保存します。
    -----------------------------------------------------------------
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility{A8D3AD02-7508-4004-B2E9-AD33F087F43C}]
    "Compatibility Flags"=dword:00000400
    -----------------------------------------------------------------

    2)以下の内容を記載したテキストファイルを、WME9_SET.CMDの名前で保存します。
    -----------------------------------------------------------------
    @echo off
    TITLE Updater for Windows Media Encoder 9 Series
    cls
    echo.
    echo Updating Windows Media Encoder 9 Series

    copy /Y %~dp0wmex.dll /B "%ProgramFiles%Windows Media ComponentsEncoder" /B >nul
    copy /Y %~dp0wmenceng.dll /B "%ProgramFiles%Windows Media ComponentsEncoder" /B >nul
    %SystemRoot%REGEDIT /S "%~dp0KB954156.REG"

    EXIT
    -----------------------------------------------------------------

    3)KB954156、KB979332のDLLファイル、wmex.dllとwmenceng.dllを、上の2ファイルと同一フォルダにコピーします。

     WME9_SET.CMDを実行すれば、アップデートが自動実行できます。
     IExpressを使って、Install ProgramをWME9_SET.CMDにして、1つのファイルにまとめておけば、もっと便利に使えます。