Windows 8, ноутбук Acer Aspire M.
Файл C:\Windows\SysWOW64\msi.dll
поврежден (просмотр в шестнадцатеричном редакторе, первые 0x4000 байт равны нулю). Вероятно, это произошло из-за ошибки жесткого диска. Этот поврежденный файл не позволяет запуститься другим программам, например MS Outlook.
Как восстановить рабочую версию этого файла?
Running 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-секундная пауза, прежде чем появится командная строка.
Как предлагалось на разных сайтах, я проверил, что "Windows Modules Installer" находится в состоянии "Ручной" и "Работает" в Службах, и это так. Я попытался остановить и перезапустить эту службу, но она так и не остановилась (она просто оставалась в состоянии "Остановка" до следующей перезагрузки).
Если я загружаюсь в командную строку консоли восстановления и пытаюсь выполнить sfc
команду, выдается ошибка, что это невозможно сделать, поскольку ожидается сканирование (извините, я не записал точное сообщение об ошибке).
Я опасаюсь выполнять восстановление системы, поскольку это может также откатить другие изменения. Я бы предпочел найти способ исправить только один файл (и несколько других файлов, упомянутых в 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 (и поэтому MS Outlook, который считывает версию в SysWOW64, по-прежнему не запускается, сообщая, что msi.dll поврежден).
Как успешно обновить версию SysWOW64 с помощью нового файла?