Naprawienie problemu zajęło mi kilka godzin, ponieważ lokalny magazyn składników został uszkodzony, a komputery uzyskują dostęp do lokalnego serwera WSUS zamiast publicznego serwera aktualizacji firmy Microsoft (i ponieważ bardzo rzadko używam Dism). W celach informacyjnych i aby pomóc innym osobom z tym samym problemem, napiszę opis problemu i przedstawię rozwiązanie.
Od czasu uaktualnienia do systemu Windows 10 Pro w wersji 1511 (kompilacja 10586) mam problem z uszkodzonym plikiem opencl.dll w kilku lokalizacjach.
Próbowałem sfc.exe /scannow
, ale nie udało się rozwiązać problemu. Komunikaty o błędach to między innymi:
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
Okej, więc problem jest teraz jasny. Niestety SFC nie jest w stanie rozwiązać problemu, ponieważ lokalny magazyn komponentów również został uszkodzony. Niestety zgubiłem komunikaty o błędach wskazujące na uszkodzenie magazynu składników.
Więc próbowałem Dism /Online /Cleanup-Image /RestoreHealth
bezskutecznie. Błąd kończy się błędem 0x800f081f , który wskazuje na inny problem z plikami źródłowymi.
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]
Patrząc na komunikaty o błędach, staje się jasne, że system Windows jest skonfigurowany do korzystania z naszego lokalnego serwera WSUS i dlatego Dism nie jest w stanie pobrać poprawnego pliku z repozytoriów. Chociaż jestem pewien, że mógłbym jakoś skonfigurować WSUS, aby zapewniał niezbędne pliki, nie wiem jak i potrzebuję szybkiej poprawki. (Jeśli ktoś wie, jak odpowiednio skonfigurować WSUS, proszę podać informacje).
Ograniczenie dostępu do lokalnej pamięci przez dodanie parametru /LimitAccess
byłoby bezużyteczne, ponieważ lokalny magazyn komponentów jest również uszkodzony, jak wspomniano wcześniej.
Ten problem wystąpił na dwóch komputerach. Odświeżania systemu Windows 10 nie rozwiąże problemu.