Windows 8, laptop Acer Aspire M.
O arquivo C:\Windows\SysWOW64\msi.dll
foi corrompido (visualizando com um editor hexadecimal, os primeiros 0x4000 bytes são zero). Isto é provavelmente devido a um erro no disco rígido. Este arquivo corrompido impede a execução de vários outros programas, por exemplo, MS Outlook.
Como restauro uma versão funcional deste arquivo?
A execução de sfc /scannow
percebe o problema, mas diz que não foi possível corrigi-lo; o arquivo CBS.log
mostra:
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
No entanto, se eu executar sfc /scanfile=c:\windows\syswow64\msi.dll
(ou, de fato, especificar qualquer nome de arquivo, mesmo um arquivo que não exista) de um cmd
elevado, a mensagem de erro será exibida imediatamente na janela do console:
Windows Resource Protection could not perform the requested operation.
e depois há uma pausa de 5 segundos antes do prompt de comando aparecer.
Como sugerido em vários sites, verifiquei que "Windows Modules Installer" é "Manual" e "Running" nos Serviços, e é. Eu tentei parar e reiniciar este serviço, mas nunca parou (ele só ficou no estado "Parando" até a próxima reinicialização).
Se eu inicializo no prompt de comando do console de recuperação e tento sfc
, ocorre um erro de que ele não pode fazer isso porque uma varredura está pendente (desculpe, não gravei a mensagem de erro exata).
Eu tenho receio de fazer uma Restauração do Sistema, pois ela também pode reverter outras alterações. Eu preferiria encontrar uma maneira de corrigir apenas um arquivo (e um punhado de outros arquivos mencionados no CBS.log) em vez de dê esse passo drástico.
Atualização: conforme sugerido em um comentário, descompactei msi.dll
de KB2918614
wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810
.
No entanto, copiar esse arquivo em C: \ Windows \ SysWOW64 \ msi.dll fornece um erro "Você requer permissão do TrustedInstaller".
Copiando o arquivo em C:\Windows\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dll
depois de assumir a propriedade, conforme descrito aqui é bem-sucedido, mas isso não faz com que a versão do SysWOW64 seja atualizada (e, portanto, o MS Outlook, que lê a versão no SysWOW64, ainda falha ao executar dizendo que o msi.dll está corrompido).
Como obtenho com sucesso a versão do SysWOW64 atualizada com o novo arquivo?