2013/12/09

XPでBITSがコケる問題。

なんだか知らんけど、ここのところ何度もハマっているのでメモっておくこととする。
もちろん無保証情報です。

とはいえ、だいたいここら辺の和訳レベルだったりする。
  • XP環境(無印→SP2→SP3とアップデート)
  • Microsoft Updateを実行すると、「更新を探しています…」で帰ってこない
  • 返ってきても、いざインストールをしようとすると全パッチ即時失敗
    (0x80246008とか出たりする)
  • サービス一覧に「Background Intelligent Transfer Service(BITS)」が居ない。
    その代わり、「@%SystemRoot%\system32\qmgr.dll,-1000」とかが居る。
  • 上記サービスを起動しようとすると、エラー 1290: 0x50a で起動できない

ではプロシージャをば。
regsvr32を実行後は「成功しました」というのが出るのを確認すべし。
  1. IE閉じれ。
  2. ファイル名を指定して実行で cmd でDOS窓起動。
  3. regsvr32 qmgr.dll
  4. regsvr32 qmgrprxy.dll
  5. いっぺんWindowsを再起動する。
  6. 再起動完了後、また cmd でDOS窓起動。
  7. 以下コマンドを1行で。コピペが正義。
    %windir%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %windir%\inf\qmgr.inf
    このコマンド実行後「OSのディスクをくれー」と言われる場合があるが、その場合はOSディスクを入れるんじゃなくて、 %windir%\ServicePackFiles\i386 を指定してやる。
  8. 再起動。
  9. 再起動完了後、[マイコンピュータ]を右クリック、[管理]を開いて[サービス]セクションへ。
    BITSを手動で起動してみて起動できたらGood。
  10. 前項9.で起動できない(「指定されたファイルが見つからない」云々)ようなら cmd でDOS窓を開いて下記コマンドを1行で実行。
    Reg add HKLM\SYSTEM\CurrentControlSet\Services\BITS\Parameters /v ServiceDll /t REG_EXPAND_SZ /d %windir%\System32\qmgr.dll
  11. 再起動。
  12. 再起動完了後、9.と同じようにBITSサービスを手動スタートさせてみる。
  13. 開始できないようならさらに以下のコマンドを叩いて再起動。
    Reg add HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup
  14. BITSの手動起動ができたら、スタートアップの種類を「自動」に設定しておこう。
…という感じ。コマンド叩いたりサービス管理を見たりするので、そこら辺の細かい作業方法は別途覚えておくべし。



で、MSのサイトには「WU/MUでトラブってたら自動的に直すよ」というFix itが以下らへんにある。
  http://support.microsoft.com/fixit
  http://support.microsoft.com/mats/windows_update/ja

が、BITSが死んでる場合は基本的に上記の自動修復では治らないので注意。
「不具合発見、完了」とか表示されるけど治りません。

かゆい所に手が届かないことがあるのが残念な感じ。