Мне потребовалось несколько часов, чтобы решить эту проблему, потому что локальное хранилище компонентов было повреждено, и компьютеры обращаются к локальному серверу WSUS вместо общедоступного сервера обновлений Microsoft (и потому что я использую Dism очень редко). Для справки и для помощи другим людям с той же проблемой я напишу описание проблемы и предоставлю решение.
После обновления до Windows 10 Pro версии 1511 (сборка 10586) у меня возникла проблема с поврежденным файлом opencl.dll в нескольких местах.
Я пытался sfc.exe /scannow
, но это не помогло решить проблему. Сообщения об ошибках, среди прочего:
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
Хорошо, теперь проблема ясна. К сожалению, SFC не может устранить повреждение, поскольку локальное хранилище компонентов также повреждено. К сожалению, я потерял сообщения об ошибках, указывающие на повреждения хранилища компонентов.
Поэтому я пытался Dism /Online /Cleanup-Image /RestoreHealth
безрезультатно. Сбой с ошибкой 0x800f081f , что указывает на другую проблему с исходными файлами.
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]
Глядя на сообщения об ошибках, становится ясно, что Windows настроена на использование нашего локального сервера WSUS, и поэтому Dism не может получить действительный файл из репозиториев. Хотя я уверен, что мог бы как-то настроить WSUS для предоставления необходимых файлов, я не знаю, как, и мне нужно быстрое решение. (Если кто-то знает, как настроить WSUS соответственно, предоставьте информацию).
Ограничение доступа к локальному хранилищу путем добавления параметра /LimitAccess
было бы бесполезным, поскольку хранилище локальных компонентов также повреждено, как упоминалось ранее.
Я испытал эту проблему на двух машинах. Обновления в Windows 10 не решить проблему.
источник
Ответы:
Чтобы решить эту проблему, вам нужно иметь ISO-версию именно той сборки, которую вы установили.
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
Это должно решить проблему.
Редактировать
Как указано в комментариях, может быть более прямой подход. TL; DR в том, что у меня это не сработало, поэтому мой более детальный подход. Но мне интересно, были ли у вас проблемы с прямым подходом. Пожалуйста, прокомментируйте.
источник
/source:wim
параметра в официальной документации для параметров командной строки Dism .Из разных форумов в интернете я собрал следующую процедуру ремонта:
MediaCreationTool.exe
кc:\temp\windows.iso
c:\temp\windows.iso
в папкуc:\temp\windows
Конвертировать
install.esd
вinstall.wim
Проверьте индекс и версию Windows в индекс
.wim
файла-
используется для следующей команды Dism в параметре/Source:wim:path_to_wim:[index]
Восстановите работоспособные компоненты Windows из загруженного и преобразованного образа Windows (WIM):
Восстановление поврежденных файлов:
Это восстановит поврежденные файлы - сообщение об успехе:
Windows Resource Protection found corrupt files and successfully repaired them.
Проверьте системные файлы еще раз, чтобы убедиться в успешном восстановлении:
Сообщение об успешном завершении сканирования:
Windows Resource Protection did not find any integrity violations.
источник
ESD - это не «зашифрованный» WIM, это WIM, который был сильно упакован / перекодирован очень по-разному (с более сложной структурой).
WIM просто «быстро» сжимается неразрывными блоками по 4 КБ или 16 КБ, используя быстрое сжатие Хаффмана. ESD использует более совершенное сжатие на основе LZ без ограничения размера блока. Это сжатие не позволяет открывать изображение в режиме чтения-записи, поскольку сжатие является глобальным (каждый файл в архиве больше не сжимается отдельно, несколько логических файлов могут совместно использовать фактическое хранилище сегментов, чтобы достичь более высокого сжатия уровень, особенно когда имеется много небольших файлов с общими частями заголовков, такими как наборы значков или части их данных цифровой подписи, уведомления об авторских правах, заголовки HTML, встроенные сценарии и т. д.).
SWM - это многокомпонентный WIM, который разделен на несколько файлов меньшего размера с (грубым) максимальным размером, но он все еще доступен для записи и может храниться на нескольких DVD.
Поставщики CBS допускают несколько форматов архивации, которые могут поддерживаться DISM, включая WIM, CAB, ZIP, VHD, VHDX, мультисессионные ISO-образы ... Но Windows поставляется с двумя встроенными поставщиками для форматов WIM и ESD (ESD является новым для Windows 10, в Windows 8 поддерживался только формат WIM, но изображения были больше)
Формат ESD был настроен для того, чтобы позволить полный многоязычный дистрибутив Windows 10 уместиться на одном DVD с объемом менее 3 ГБ ...
Вы можете преобразовать ESD в WIM, но в результате вы получите гораздо больший файл. Также возможно обратное преобразование (чтобы вы могли читать и писать в расширенном WIM), чтобы снова упаковать его в новый ESD. Распаковка ESD в WIM относительно быстрая, но сжатие WIM в ESD требует много ресурсов ЦП и намного дольше (поэтому вы не можете читать и записывать напрямую в ESD, но вы можете сделать это довольно легко в WIM со скромным Использование процессора).
Когда вы «монтируете» ESD с помощью DISM, первое, что он сделает, - это разверните ESD во временное хранилище и действуйте на нем, как если бы это был WIM, чтобы вы могли обновлять файлы в этом локальном хранилище. Чтобы демонтировать его, потребуется два шага: воссоздать WIM (довольно быстро), а затем снова упаковать его в ESD (очень медленно).
источник
Я решил проблему с opengl.dll следующим образом:
Смонтировать образ Windows 10.
Dism / Online / Cleanup-Image / RestoreHealth / Источник: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054 \ 56911
SFC / SCANNOW
Удачи!
источник
Я провел несколько дней, идя по этим путям, и, наконец, нашел решение для моей ситуации. Я использую Windows 10 версии 1511 Build 10586.545. Вот моя прогрессия:
Отсюда снова начал работать Центр обновления Windows.
Итак, в итоге, если вы боретесь с этими ошибками и, похоже, ничего не работает, попробуйте отключить драйверы NVIDIA GeForce и затем выполнить некоторые из этих шагов (или вручную скопировать в чистую версию DLL).
источник
Из-за отсутствия локальной копии и по отдельной причине невозможно загрузить файл ISO (ISO был не того типа Windows 10, который я установил). Здесь есть исправление, которое я использовал, которое включает загрузку специализированного файла под названием "SFCFix «:
Обратите внимание, что запуск файла SFCFix.exe без исправления ZIP будет долгим медленным процессом, который очень мало достигает, вам нужно запустить его методом перетаскивания ZIP-файла, и результат будет практически мгновенным.
источник
Вы должны быть в состоянии использовать образ ESD, в соответствии со статьей DISM technet. Образ ESD (Electronic Software Delivery) представляет собой просто зашифрованную версию WIM, а также использует намного лучший алгоритм сжатия, чем формат WIM (обычно сжатие примерно в 1,5 раза лучше).
Если у вас есть только ESD, но вы предпочитаете использовать WIM, вы можете преобразовать ESD в WIM с помощью команды экспорта DISM. Вы также можете преобразовать WIM в ESD, указав / compress: recovery в команде export или capture. Преобразование одного в другое требует значительных ресурсов, поэтому рекомендуется использовать сценарий ESD для WIM, который был написан несколько лет назад и доступен на форуме MSFN. Используя сценарий, только ~ 50% системных ресурсов выделяется на экспорт по сравнению с 90% +, который обычно используется для экспорта.
источник
Я просто пошел на другой компьютер с Windows 10 Pro x64 и скопировал файл opencl.dll (из той же директории). Затем я стал владельцем плохого opencl.dll, переименовал его в opencl.old и скопировал в новый. Перезагрузитесь в безопасном режиме и запустите sfc / scannow, и все вернется. В моем случае это был ЕДИНСТВЕННЫЙ плохой файл, указанный в cbs.log ... Я вижу, где было бы лучше, если бы sfc работал, если у вас много поврежденных файлов и вы не хотите патчить каждый из них по отдельности. Но если ваша проблема только одна DLL, то, кажется, работает простая копия.
источник
Кажется, что образ установки (
install.esd
) с установочного носителя Обновления Создателя несовместим с методом DISM, описанным здесь. Вы получите ошибку0x800f081f
независимо от того, какую команду вы наберете. Это также не помогает извлечь правильныйinstall.wim
файл ESD. Наконец, я даже попытался смонтировать WIM-файл, но безрезультатно.Смотрите также обсуждения на https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723
Обновление: постоянная ошибка не имеет ничего общего с командой dism или файлами wim. Это связано с пакетом Microsoft-Windows-TestRoot-and-FlightSigning-Package, для которого нет доступных рабочих источников. Файлы находятся в C: \ Windows \ Servicing \ Packages и должны быть удалены оттуда. Кроме того, в реестре есть две ссылки, которые необходимо удалить. Смотрите связанную ветку sysnative для деталей.
источник