
Windows 8、Acer Aspire M ラップトップ。
ファイルC:\Windows\SysWOW64\msi.dll
が破損しています (16 進エディタで表示すると、最初の 0x4000 バイトがゼロです)。これはおそらくハード ドライブ エラーが原因です。この破損したファイルにより、MS Outlook など、さまざまな他のプログラムが実行できなくなります。
このファイルの作業バージョンを復元するにはどうすればよいですか?
実行するとsfc /scannow
問題は認識されますが、修正できなかったと表示されます。CBS.log
ファイルには次のように表示されます。
2014-09-01 20:51:48, Info CSI 000005fb Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dll do not match actual file [l:14{7}]"msi.dll" :
Found: {l:32 b:KJdGPdPAioESHNMhDPmtJmU3JUt41bgkewkNvS9O41w=} Expected: {l:32 b:eC+L/SyQlvUf0W5fDBePZ46JrV54jXjWmUYbms9v8rA=}
2014-09-01 20:51:48, Info CSI 000005fc [SR] Cannot repair member file [l:14{7}]"msi.dll" of Microsoft-Windows-Installer-Engine, Version = 6.3.9600.17198, pA = PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (10), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
ただし、sfc /scanfile=c:\windows\syswow64\msi.dll
管理者特権で実行すると (または実際には存在しないファイルであっても任意のファイル名を指定すると) cmd
、コンソール ウィンドウにエラー メッセージがすぐに表示されます。
Windows Resource Protection could not perform the requested operation.
その後、コマンド プロンプトが表示されるまで 5 秒間待機します。
さまざまな Web サイトで提案されているように、サービスで「Windows モジュール インストーラー」が「手動」かつ「実行中」になっていることを確認しました。そのとおりです。このサービスを停止して再起動しようとしましたが、停止しませんでした (次に再起動するまで「停止中」の状態のままでした)。
回復コンソールのコマンド プロンプトを起動して実行しようとすると、sfc
スキャンが保留中のため実行できないというエラーが表示されます (申し訳ありませんが、正確なエラー メッセージを書き留めていませんでした)。
システムの復元を行うと他の変更もロールバックされる可能性があるため、その極端な手順を実行するのではなく、1 つのファイル (および CBS.log に記載されている他のいくつかのファイル) を修正する方法を見つけたいと思います。
更新: コメントで提案されたとおり、msi.dll
から解凍しましたKB2918614
wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810
。
ただし、そのファイルを C:\Windows\SysWOW64\msi.dll にコピーすると、「TrustedInstaller からの許可が必要です」というエラーが発生します。
C:\Windows\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dll
所有権を取得した後、ファイルをコピーするここ成功しますが、SysWOW64 のバージョンは更新されません (そのため、SysWOW64 のバージョンを読み取る MS Outlook は、msi.dll が破損していると表示され、実行に失敗します)。
SysWOW64 バージョンを新しいファイルで正常に更新するにはどうすればよいですか?