• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:windowsインストーラーがおかしいです.)

windowsインストーラーの不具合について

このQ&Aのポイント
  • Windowsインストーラーの不具合により、Windows updateの自動更新がエラーになる問題や、ネットワーク経由のソフトウェアのインストールやアップデートができない問題が発生しています。
  • 解決方法として、セーフモード起動後にコマンドプロンプトで「msiexec /regserver」と入力する方法や、「attrib -r -s -h dllcache」と入力する方法がありますが、いずれもうまく動作せず、再起動後も問題が解決されません。
  • Windows起動時にはデュアルブートのような状態になっており、Windows XP Home Editionを選択すると起動できず、「<Windows root>\system32\hal.dll」のファイルが存在しないか壊れているというエラーメッセージが表示されます。また、Windowsインストーラーのサービスが停止状態になっており、手動で起動する必要があります。OSの再インストールをせずに問題を解決したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuka81
  • ベストアンサー率40% (2/5)
回答No.5

最後のアドバイスです。 コマンドで以下を入力、スペースに注意。 cd \windows\system32 ren msi.dll msi.old ren msihnd.dll msihnd.old ren msiexec.exe msiexec.old exit 再起動のあとmsダウンロードセンターからSP3 をインストールしてみてください。 GOODLUCK

maomao0115
質問者

補足

ありがとうございます. ren msihnd.dll msihnd.oldがファイルが見つかりませんとなります. エクスプローラで見てもmsihnd.dllがありません.前はあったのですが...

その他の回答 (5)

  • asuka81
  • ベストアンサー率40% (2/5)
回答No.6

追記です。すでに.oldのファイルがあるとエラーが出たらsystem32内の3つの .oldファイルを先に削除してください。想像ですが以前は コマンドのあと再起動してwindowsインストーラー4.5をインストールされたのでは ないですか。再起動したらすぐにsp3をインストールしてくださいね。

maomao0115
質問者

お礼

何をやってもwindowsインストーラがエラーのままなので,一念発起し,OSクリーンインストールしました. 直りましたが,microsoft updateの数が半端じゃなく何回再起動したことか・・・. 色々とアドバイスくださりありがとうございました.

maomao0115
質問者

補足

度々のご回答ありがとうございます. 前はあったmsihnd.dllがエクスプローラで見てもありません.他の2つのファイルはあるのですが. この場合どういう順序で行ったらいいでしょうか.

  • asuka81
  • ベストアンサー率40% (2/5)
回答No.4

JAVAのアップデートが出来ない時点でWINDOWSインストーラーが直ってないですね。 MSアップデートはインストーラーを使うもの(OFFICE等)と使わないもの(WINDOWS そのもののアップデート)があるのでたまたま成功したのでしょう。 スタートメニューのファイル名を指定して実行でmsiexec.exeを実行、windowsインストーラー のバージョン他を示すダイアログが出ればインストーラーは問題なし。何の反応もなければインストーラーは壊れている。当方sp3の再インストールで直ったのでこれ以上のアドバイスはできません。一つだけ思い当たることはwindowsインストーラー4.5をインストールされたようなのでこれを削除してから前回の回答方法を試してみてください。

maomao0115
質問者

お礼

度々のアドバイスありがとうございます. >スタートメニューのファイル名を指定して実行でmsiexec.exeを実行、windowsインストーラー のバージョン他を示すダイアログが出ればインストーラーは問題なし。何の反応もなければインストーラーは壊れている。 なんの反応もないので壊れているということですよね.エクスプローラからmsiexec.exeのプロパティを見るとバージョンは4.5になっています. この先どうしたらいいかといのはもう分からないんですよね.もし何か分かればまたお願いいたします. ちなみにhttp://d.hatena.ne.jp/shishimaruby/20090602/1243937001に書いてあるやり方をやろうとして,ファイル名を指定して実行でmsiexec /unregisterと入力すると「別のインストールがすでに実行されています.別のインストールを完了してから,このインストールを実行してください」とのダイアログが出ます.何もインストールしていないんですけどね...

  • asuka81
  • ベストアンサー率40% (2/5)
回答No.3

初めに、JAVAはセキュリティが甘くライブカメラくらいしか使わないので 入れていないので推測になりますが、JAVAをアンインストールした後で 新規にインストールすれば最新版がインストールされるのでアップデートの必要はないはず。

maomao0115
質問者

お礼

ありがとうございます.JAVAは大して必要ないんですね.言われた通りまたやってみたいと思います.No.2のお礼欄にも書きましたが,今朝PC起動して自動更新の残りをインストールしようとしたところ,またすべて失敗しました.昨晩は成功したんですが・・・.前進したかに見えましたがまた少し戻った感じです.よろしければまたアドバイスいただければ幸いです.

  • asuka81
  • ベストアンサー率40% (2/5)
回答No.2

msi.dll,msi.old,msihnd.dll,msihnd.old,msiexec.exe,msiexec.oldを全て削除した後 MSサイトダウンロードセンターからXP SP3をインストールしてみてください。

maomao0115
質問者

お礼

今朝PC起動して自動更新の残りをインストールしようとしたところ,またすべて失敗しました.昨晩は成功したんですが・・・.前進したかに見えましたがまた少し戻った感じです.何か不安定なんでしょうか? お礼欄と補足欄の順序が逆になったような気がします.失礼しました.

maomao0115
質問者

補足

言われた通りにやってみて,試しに自動更新を1つ選択してみたら無事インストールできました.他の更新はまだ試していませんが,1つできたのでこの感じだとできそうな気がします.ただJavaのアップデートのインストーラはやはり失敗しまして「windows インストーラーサービスにアクセスできませんでした。セーフモードでwindowsを実行している場合またはwindowsインストーラーが正しくインストールされていないばあいに発生する可能性があります」と出ます.これはどうしたらいいでしょうか?自動更新できただけでもかなり前進です.本当にありがとうございます.

  • plt_
  • ベストアンサー率59% (16/27)
回答No.1

たぶんサイトの誤植ですが、attribコマンドの部分はスペースを補う必要があります。 attrib -r -s -h これでも良かったような? attrib -rsh また、いろいろ試されたようなので、レアケースを探してみると、こんなことがあるようです。 http://blog.fumiz.me/2007/05/25/windows-installer%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8B%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB/ 何かの拍子でsystem32フォルダの中にmsiexecという別のファイルが作られると、 各種コマンドが妨害されてしまう場合があるらしく。 (手元のWindows 8 Pro x64ではなぜか再現しないのですが。) 一度、ご確認を……。

maomao0115
質問者

お礼

アドバイスありがとうございました.また自分で調べてみてhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1346850858 ここを見て.oldファイルを削除した後,コマンドを入れると何も表示されなかったのでリネームが通ったようです.再起動⇒Windowsインストーラ(WindowsXP-KB942288-v3-x86.exe)の再インストールとしてみましたが,やはり自動更新やAIRのアップデートが失敗してまだ解決にはいたっておりません.

maomao0115
質問者

補足

ありがとうございます.スペースを補ったら,何も表示されなかったのでこのコマンドは通ったのだと思います.ただ次以降のコマンドは変わりません. ren msi.dll msi.old ren msihnd.dll msihnd.old ren msiexec.exe msiexec.old いずれも「重複するファイル名が存在するか、またはファイルが見つかりませんでした。」となります.実際C:\windows\system32フォルダを見るとmsi.dll,msi.old,msihnd.dll,msihnd.old,msiexec.exe,msiexec.oldが存在しています.コマンドが正しく通ってるかどうかよくわかりません. それと,別のファイルをというのは作られてはいませんでした.ありがとうございます.

関連するQ&A