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