Como reparar msi.dll

Como reparar msi.dll

Windows 8, notebook Acer Aspire M.

O arquivo C:\Windows\SysWOW64\msi.dllfoi corrompido (visualizando com um editor hexadecimal, os primeiros 0x4000 bytes são zero). Provavelmente isso se deve 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?

Running sfc /scannowpercebe o problema, mas diz que não foi possível corrigi-lo; o CBS.logarquivo 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) a partir de um arquivo elevado cmd, a mensagem de erro aparecerá imediatamente na janela do console:

Windows Resource Protection could not perform the requested operation.

e há uma pausa de 5 segundos antes que o prompt de comando apareça.

Conforme sugerido em vários sites, verifiquei se "Instalador de Módulos do Windows" está "Manual" e "Em Execução" nos Serviços, e está. Tentei parar e reiniciar este serviço, mas ele nunca parou (apenas permaneceu no estado "Parando" até minha próxima reinicialização).

Se eu inicializar no prompt de comando do console de recuperação e tentar, sfcocorrerá um erro informando que não é possível fazer isso porque uma verificação está pendente (desculpe, não anotei a mensagem de erro exata).

Tenho receio de fazer uma Restauração do Sistema, pois ela também pode reverter outras alterações. Prefiro encontrar uma maneira de corrigir apenas um arquivo (e alguns outros arquivos mencionados no CBS.log) em vez de tomar essa decisão drástica etapa.


Atualização: conforme sugerido em um comentário que descompactei msi.dlldo arquivo KB2918614 wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810.

No entanto, copiar esse arquivo em C:\Windows\SysWOW64\msi.dll gera um erro "Você precisa de permissão do TrustedInstaller".

Copiando o arquivo C:\Windows\WinSxS\wow64_microsoft-windows-installer-engine_31bf3856ad364e35_6.3.9600.17198_none_fe869f30bbe12810\msi.dllapós assumir a propriedade conforme descritoaquié bem-sucedido, no entanto, isso não faz com que a versão no SysWOW64 seja atualizada (e, portanto, o MS Outlook, que lê a versão no SysWOW64, ainda falha ao executar, dizendo que msi.dll está corrompido).

Como faço para atualizar com êxito a versão do SysWOW64 com o novo arquivo?

informação relacionada