如何修复 msi.dll

如何修复 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 中的版本更新(因此,读取 SysWOW64 中的版本的 MS Outlook 仍然无法运行,并提示 msi.dll 已损坏)。

如何使用新文件成功更新 SysWOW64 版本?

相关内容