Levei várias horas para corrigir o problema porque o armazenamento de componentes locais estava corrompido e os computadores estão acessando um servidor WSUS local em vez do servidor de atualização público da Microsoft (e porque eu uso o Dism muito raramente). Para referência e para ajudar outras pessoas com o mesmo problema, vou escrever uma descrição do problema e fornecer uma solução.
Desde a atualização para o Windows 10 Pro versão 1511 (compilação 10586), tenho um problema com um opencl.dll arquivado corrompido em vários locais.
Eu tentei sfc.exe /scannow
, mas ele não conseguiu resolver o problema. As mensagens de erro são, entre outras:
2015-12-08 08:50:43, Info CSI 00003c3a Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3b [SR] Cannot repair member file [l:10]"opencl.dll" of microsoft-windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-C, version 10.0.10586.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-12-08 08:50:43, Info CSI 00003c3c [SR] This component was referenced by [l:125]"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.10586.0.RemoteFX clientVM and UMTS files and regkeys"
2015-12-08 08:50:43, Info CSI 00003c3d Hashes for file member \??\C:\WINDOWS\SysWOW64\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3e Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3f [SR] Could not reproject corrupted file [l:23 ml:24]"\??\C:\WINDOWS\SysWOW64"\[l:10]"opencl.dll"; source file in store is also corrupted
Ok, então o problema está claro agora. Infelizmente, o SFC não pode resolver a corrupção porque o armazenamento de componentes local também foi corrompido. Infelizmente, perdi as mensagens de erro indicando a corrupção do armazenamento de componentes.
Então eu tentei Dism /Online /Cleanup-Image /RestoreHealth
sem sucesso. Ele falha com o erro 0x800f081f , indicando outro problema com os arquivos de origem.
2015-12-08 08:57:35, Info CBS Exec: Download qualification evaluation, business scenario: Manual Corruption Repair
2015-12-08 08:57:35, Info CBS Exec: Clients specified using Windows Update.
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe2.update.microsoft.com/v6/, Name: Microsoft Update
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe2.ws.microsoft.com/v6/, Name: Windows Store
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe3.delivery.mp.microsoft.com/, Name: Windows Store (DCat Prod)
2015-12-08 08:57:35, Info CBS WU: WSUS service is the default, URL: (null), Name: Windows Server Update Service
2015-12-08 08:57:35, Info CBS DWLD:Search is done, set download progress to 20 percent.
2015-12-08 08:57:35, Info CBS Nothing to download, unexpected
2015-12-08 08:57:35, Info CBS Failed to collect payload and there is nothing to repair. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2015-12-08 08:57:35, Info CBS Failed to repair store. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
Observando as mensagens de erro, fica claro que o Windows está configurado para usar o servidor WSUS local e, portanto, o Dism não pode recuperar o arquivo válido dos repositórios. Embora tenha certeza de que, de alguma forma, eu possa configurar o WSUS para fornecer os arquivos necessários, não sei como e preciso de uma solução rápida. (Se alguém souber como configurar o WSUS adequadamente, forneça informações).
Limitar o acesso ao armazenamento local adicionando o parâmetro /LimitAccess
seria inútil, pois o armazenamento de componentes local também está corrompido, conforme mencionado anteriormente.
Eu experimentei esse problema em duas máquinas. Uma atualização do Windows 10 não corrigiu o problema.
fonte
Respostas:
Para corrigir esse problema, você precisa ter o ISO da versão exata que instalou.
mkdir C:\WIM
Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
Isso deve resolver o problema.
Editar
Conforme indicado nos comentários, pode haver uma abordagem mais direta. O TL; DR é que ele não funcionou para mim, portanto, minha abordagem mais detalhada. Mas estou interessado se você teve algum problema com a abordagem direta. Por favor comente.
fonte
/source:wim
parâmetro na documentação oficial das Opções de Linha de Comando do Dism .Em vários fóruns na Internet, montei o seguinte procedimento de reparo:
MediaCreationTool.exe
ac:\temp\windows.iso
c:\temp\windows.iso
para pastac:\temp\windows
Converter
install.esd
eminstall.wim
O índice de verificação e a versão do Windows no
.wim
arquivo-
index são usados para o próximo comando Dism no parâmetro/Source:wim:path_to_wim:[index]
Restaure os componentes do Windows Health da imagem do Windows baixada e convertida (wim):
Reparar arquivos corrompidos:
Reparará arquivos corrompidos - mensagem de sucesso:
Windows Resource Protection found corrupt files and successfully repaired them.
Verifique os arquivos do sistema novamente para garantir um reparo bem-sucedido:
Mensagem de sucesso após a verificação:
Windows Resource Protection did not find any integrity violations.
fonte
Um ESD não é um WIM "criptografado", é um WIM que foi altamente compactado / reencodificado de maneira muito diferente (com uma estrutura mais complexa).
Um WIM é apenas "rápido" compactado por unidades inquebráveis de 4KB ou 16 KB, usando uma compactação rápida de Huffmann. Um ESD usa uma compactação baseada em LZ mais avançada sem limitações de tamanho de bloco. Essa compactação não permite que a imagem seja aberta no modo de leitura e gravação, pois a compactação é global (cada arquivo no archive não é mais compactado separadamente, vários arquivos lógicos podem compartilhar o armazenamento real dos segmentos, para alcançar uma compactação muito mais alta nível, principalmente quando existem muitos arquivos pequenos com partes de cabeçalhos comuns, como coleções de ícones ou partes de seus dados de assinatura digital, avisos de direitos autorais, cabeçalhos HTML, scripts incorporados etc.).
Um SWM é um WIM de várias partes que foi dividido em vários arquivos com tamanhos menores e com um tamanho máximo (aproximado), mas ainda é gravável e pode ser armazenado em vários DVDs.
Os provedores de CBS permitem vários formatos de arquivamento que podem ser suportados pelo DISM, incluindo ISOs WIM, CAB, ZIP, VHD, VHDX, multisessão ... Mas o Windows vem com dois provedores internos para os formatos WIM e ESD (ESD é novo no Windows 10, no Windows 8, apenas o formato WIM era suportado, mas as imagens eram maiores)
O formato ESD foi ajustado para permitir que a distribuição multilíngue completa do Windows 10 caiba em um único DVD com menos de 3 GB ...
Você pode transformar um ESD em WIM, mas o resultado será um arquivo muito maior. A conversão inversa também é possível (para que você possa ler / gravar no WIM expandido) para compactá-la novamente em um novo ESD. A descompactação de um ESD para WIM é relativamente rápida, mas a compactação de um WIM para ESD requer muitos recursos de CPU e é muito mais longa (é por isso que você não pode ler / gravar diretamente em um ESD, mas pode fazê-lo facilmente em um WIM com recursos modestos). Utilização do CPU).
Quando você "monta" um ESD com o DISM, a primeira coisa a fazer é expandi-lo para um armazenamento temporário e agir como se fosse um WIM, para que você possa atualizar os arquivos nesse armazenamento local. Para desmontá-lo, serão necessárias duas etapas: recriar um WIM (muito rápido) e empacotá-lo novamente em um ESD (muito lento).
fonte
Resolvi o problema com o opengl.dll da seguinte maneira:
Monte a imagem do Windows 10.
Dism / Online / Imagem-de-limpeza / RestoreHealth / Origem: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22 \
sfc / scannow
Boa sorte!
fonte
Passei alguns dias percorrendo esses caminhos e finalmente encontrei uma solução para minha situação. Estou executando o Windows 10 versão 1511 Build 10586.545. Aqui está a minha progressão:
A partir daqui, o Windows Update começou a funcionar novamente.
Portanto, em resumo, se você estiver enfrentando problemas com esses erros e nada parece funcionar, tente desativar os drivers da NVIDIA GeForce e tente algumas dessas etapas (ou copie manualmente em uma versão limpa da DLL).
fonte
Por não ter uma cópia local e, por um motivo separado, incapaz de baixar o arquivo ISO (o ISO não era do tipo Windows 10 que eu instalei), há uma solução de hotfix usada aqui que envolve o download de um arquivo especializado chamado "SFCFix ":
Observe que a execução do arquivo SFCFix.exe sem o hotfix ZIP será um processo demorado e lento que alcança muito pouco; é necessário executá-lo com o método de arrastar / soltar do arquivo ZIP e o resultado é quase instantâneo.
fonte
Você deve poder utilizar uma imagem esd, de acordo com o artigo técnico do DISM. Uma imagem ESD (entrega eletrônica de software) é simplesmente uma versão criptografada de um WIM e também utiliza um algoritmo de compactação muito melhor do que o formato WIM (geralmente uma compactação 1.5x melhor).
Se tudo que você tem é um ESD, mas prefere usar um WIM, você pode converter um ESD para WIM com o comando de exportação DISM. Você também pode converter um WIM em ESD especificando / compact: recovery dentro do comando export ou capture. A conversão de uma para a outra consome muitos recursos e, por isso, é recomendável utilizar o script ESD para WIM que foi escrito anos atrás e está disponível no fórum MSFN. Utilizando o script, apenas ~ 50% dos recursos do sistema são dedicados à exportação versus os 90% + que geralmente são utilizados para a exportação.
fonte
Acabei de ir para outra máquina x64 do Windows 10 Pro e copiei o arquivo opencl.dll (do mesmo diretório). Em seguida, assumi a propriedade do opencl.dll inválido, o renomeei para opencl.old e copiei o novo. Reinicie novamente no modo de segurança e execute sfc / scannow e ele volta a funcionar corretamente. No meu caso, esse era o ÚNICO arquivo ruim listado em cbs.log ... Posso ver onde seria melhor ter o sfc funcionando se você tiver muitos arquivos corrompidos e não quiser corrigir cada um individualmente. Mas se o seu problema é apenas uma dll, uma cópia simples parece funcionar.
fonte
Parece que a imagem de instalação (
install.esd
) da mídia de instalação da Atualização do Criador é incompatível com o método DISM descrito aqui. Você receberá um erro,0x800f081f
independentemente do tipo de comando digitado. Também não ajuda a extrair o corretoinstall.wim
do arquivo ESD. Por fim, tentei montar o arquivo WIM sem sucesso também.Veja também discussões em https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723
Atualização: o erro persistente não tem nada a ver com o comando dism ou com os arquivos wim. Isso ocorre devido a um pacote chamado Microsoft-Windows-TestRoot-and-FlightSigning-Package para o qual não há fontes de trabalho disponíveis. Os arquivos estão em C: \ Windows \ Servicing \ Packages e precisam ser removidos dali. Além disso, há duas referências no registro que precisam ser excluídas. Consulte o encadeamento sysnative vinculado para obter detalhes.
fonte