Me tomó varias horas solucionar el problema porque el almacén de componentes local estaba dañado y las computadoras están accediendo a un servidor WSUS local en lugar del servidor de actualización público de Microsoft (y porque uso Dism muy raramente). Como referencia y para ayudar a otras personas con el mismo problema, escribiré una descripción del problema y proporcionaré una solución.
Desde la actualización a Windows 10 Pro versión 1511 (compilación 10586) tengo un problema con un archivo opencl.dll dañado en varias ubicaciones.
Lo intenté sfc.exe /scannow
, pero no pudo solucionar el problema. Los mensajes de error son, entre otros:
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
Bien, entonces el problema está claro ahora. Desafortunadamente, SFC no puede resolver la corrupción porque el almacén de componentes local también se corrompió. Desafortunadamente, perdí los mensajes de error que indican que el componente almacena daños.
Así que intenté Dism /Online /Cleanup-Image /RestoreHealth
en vano. Falla con el error 0x800f081f , lo que indica otro problema con los archivos de origen.
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]
Al observar los mensajes de error, queda claro que Windows está configurado para usar nuestro servidor WSUS local y, por lo tanto, Dism no puede recuperar el archivo válido de los repositorios. Si bien estoy seguro de que de alguna manera podría configurar WSUS para proporcionar los archivos necesarios, no sé cómo y necesito una solución rápida. (Si alguien sabe cómo configurar WSUS en consecuencia, proporcione información).
Limitar el acceso al almacenamiento local agregando el parámetro /LimitAccess
sería inútil ya que el almacén de componentes local también está dañado, como se mencionó anteriormente.
Experimenté este problema en dos máquinas. Una actualización de Windows 10 no solucionó el problema.
fuente
Respuestas:
Para solucionar este problema, debe tener el ISO de la compilación exacta que ha instalado.
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
Eso debería solucionar el problema.
Editar
Como se señaló en los comentarios, puede haber un enfoque más directo. El TL; DR es que no funcionó para mí, de ahí mi enfoque más detallado. Pero estoy interesado si tuvo algún problema con el enfoque directo. Por favor comenta.
fuente
/source:wim
parámetro en la documentación oficial de las Opciones de línea de comandos de Dism .Desde varios foros en Internet, he reunido el siguiente procedimiento de reparación:
MediaCreationTool.exe
parac:\temp\windows.iso
c:\temp\windows.iso
a la carpetac:\temp\windows
Convertir
install.esd
ainstall.wim
El índice de verificación y la versión de Windows en
.wim
el-
índice del archivo se utilizan para el siguiente comando Dism en el parámetro/Source:wim:path_to_wim:[index]
Restaure los componentes de Windows de salud desde la imagen de Windows descargada y convertida (wim):
Reparar archivos corruptos:
Reparará archivos corruptos - mensaje de éxito:
Windows Resource Protection found corrupt files and successfully repaired them.
Verifique nuevamente los archivos del sistema para asegurarse de una reparación exitosa:
Mensaje de éxito después del escaneo:
Windows Resource Protection did not find any integrity violations.
fuente
Un ESD no es un WIM "cifrado", es un WIM que se ha empaquetado / vuelto a codificar de manera muy diferente (con una estructura más compleja).
Un WIM es simplemente "rápido" comprimido por unidades irrompibles de 4KB o 16KB, usando una compresión rápida de Huffmann. Un ESD utiliza una compresión más avanzada basada en LZ sin limitaciones de tamaño de bloque. Esta compresión no permite que la imagen se abra en modo lectura-escritura, ya que la compresión es global (cada archivo en el archivo ya no se comprime por separado, varios archivos lógicos pueden compartir el almacenamiento real de segmentos, para alcanzar una compresión mucho mayor nivel, especialmente cuando hay muchos archivos pequeños con partes de encabezados comunes, como colecciones de iconos o partes de sus datos de firma digital, avisos de derechos de autor, encabezados HTML, scripts incrustados, etc.
Un SWM es un WIM multiparte que se ha dividido en varios archivos con tamaños más pequeños con un tamaño máximo (aproximado), pero aún es grabable y puede almacenarse en varios DVD.
Los proveedores de CBS permiten varios formatos de archivo que pueden ser compatibles con DISM, incluidos WIM, CAB, ZIP, VHD, VHDX, ISO de múltiples sesiones ... Pero Windows viene con dos proveedores incorporados para los formatos WIM y ESD (ESD es nuevo en Windows 10, con Windows 8, solo se admitía el formato WIM, pero las imágenes eran más grandes)
El formato ESD se ha ajustado para permitir que la distribución multilingüe completa de Windows 10 se ajuste a un solo DVD con menos de 3 GB ...
Puede transformar un ESD a WIM, pero el resultado será un archivo mucho más grande. La conversión inversa también es posible (para que pueda leer y escribir en el WIM expandido) para empacar nuevamente en un nuevo ESD. Descomprimir un ESD a WIM es relativamente rápido, pero comprimir un WIM a ESD requiere muchos recursos de CPU y es mucho más largo (es por eso que no puede leer y escribir directamente en un ESD, pero puede hacerlo con bastante facilidad en un WIM con modestia). Uso de CPU).
Cuando "monta" un ESD con DISM, lo primero que hará es expandir el ESD en un almacenamiento temporal y actuar sobre él como si fuera un WIM, para que pueda actualizar los archivos en este almacenamiento local. Desmontarlo requerirá dos pasos: recrear un WIM (bastante rápido) y luego empacarlo nuevamente en un ESD (muy lento).
fuente
Resolví el problema con opengl.dll de la siguiente manera:
Monta la imagen de Windows 10.
Dism / Online / Cleanup-Image / RestoreHealth / Source: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22 \
sfc / scannow
¡Buena suerte!
fuente
Pasé unos días recorriendo estos caminos y finalmente encontré una solución para mi situación. Estoy ejecutando Windows 10 versión 1511 Build 10586.545. Aquí está mi progresión:
A partir de aquí, Windows Update comenzó a funcionar nuevamente.
En resumen, si tiene problemas con estos errores y parece que nada funciona, intente deshabilitar los controladores NVIDIA GeForce y luego intente algunos de estos pasos (o copie manualmente en una versión limpia de la DLL).
fuente
Debido a que no tengo una copia local y por una razón separada no puedo descargar el archivo ISO (el ISO no era del tipo de Windows 10 que he instalado) Aquí hay una solución de revisión que utilicé y que implica descargar un archivo especializado llamado "SFCFix ":
Tenga en cuenta que ejecutar el archivo SFCFix.exe sin el hotfix ZIP será un proceso largo y lento que logra muy poco, debe ejecutarlo con el método de arrastrar / soltar el archivo ZIP, y el resultado es casi instantáneo.
fuente
Debería poder utilizar una imagen esd, según el artículo de DISM technet. Una imagen ESD (Electronic Software Delivery) es simplemente una versión encriptada de un WIM, y también utiliza un algoritmo de compresión mucho mejor que el formato WIM (generalmente una compresión 1,5 veces mejor).
Si todo lo que tiene es un ESD, pero prefiere usar un WIM, puede convertir un ESD a WIM con el comando de exportación DISM. También puede convertir un WIM a ESD especificando / comprimir: recuperación dentro del comando de exportación o captura. La conversión de uno a otro requiere muchos recursos, y debido a esto, se recomienda utilizar la secuencia de comandos ESD a WIM que se escribió hace años y está disponible en el foro de MSFN. Utilizando el script, solo ~ 50% de los recursos del sistema se dedican a la exportación frente al 90% + que generalmente se utiliza para la exportación.
fuente
Simplemente fui a otra máquina con Windows 10 Pro x64 y copié el archivo opencl.dll (del mismo directorio). Luego tomé posesión del mal opencl.dll, lo renombré a opencl.old y copié el nuevo. Reinicie nuevamente en modo seguro y ejecute sfc / scannow y todo volverá bien. En mi caso, este fue el ÚNICO archivo incorrecto enumerado en cbs.log ... Puedo ver dónde podría ser mejor tener sfc funcionando si tiene muchos archivos corruptos y no desea parchear cada uno individualmente. Pero si su problema es solo el dll, entonces parece que una copia simple funciona.
fuente
Parece que la imagen de instalación (
install.esd
) del medio de instalación de Creator's Update es incompatible con el método DISM descrito aquí. Obtendrá un error0x800f081f
sin importar qué tipo de comando escriba. Tampoco ayuda extraer el correctoinstall.wim
del archivo ESD. Finalmente, incluso intenté montar el archivo WIM en vano también.Vea también las discusiones en https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723
Actualización: el error persistente no tiene nada que ver con el comando dism o los archivos wim. Se debe a un paquete llamado Microsoft-Windows-TestRoot-and-FlightSigning-Package para el cual no hay fuentes de trabajo disponibles. Los archivos están en C: \ Windows \ Servicing \ Packages y deben ser retirados de allí. Además, hay dos referencias en el registro que deben eliminarse. Vea el hilo sysnative vinculado para más detalles.
fuente