Всем привет.
Начну с небольшого определения:
Что такое cbs.log?
Файл-лог журнала обслуживания windows, который содержит подробные сведения об ошибках автономного обслуживания, подробные сведения об ошибках интерактивного обслуживания, а так же как вспомогательный элемент для dism.exe
Не вдаваясь в тонкости осмысливания написанного ( определение взято отсюда ) сообщу следующее:
Многим из нас знакома программа sfc.exe, с помощь которой можно проверить состояние целостности защищенных системных файлов.
(Обсуждение в этой теме:
Обзор утилиты sfc.exe
)
Результат ее работы будет отражен как раз так же в этом логе.
Но, для большинства пользователей, анализ результата проверки остается трудновыполнимой задачей.
Хорошо, если система рапортует о том, что защита ресурсов wiindows не обнаружила поврежденных файлов или что все поврежденные файлы восстановлены.
А что делать, если мы видим что то вроде такого сообщения?
Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них
Один из шагов к решению проблемы — это произвести анализ лога, который создается при сканировании. Лог-файл находится по пути %windir%\logs\cbs\cbs.log
и открыть его можно любым текстовым редактором, включая стандартный notepad.
Неподготовленный пользователь, открыв и посмотрев лог, скорее всего испытает острое желание закрыть файл и больше не открывать. Поэтому, для комфорта восприятия, пользователи придумали приводить лог в более читабельный вид, распарсив его и отфильтровав «лишние» записи оставить только те, что нужны.
Сделать это можно разными методами, кстати — в сети распространен метод с парсингом файла cbs.log введя в командной строке простую команду:
findstr/c: «[SR]» %windir%\logs\cbs\cbs.log > "указать адрес, куда вы хотите сохранить лог"\sfcdetails.txt
Но, как показала практика, этот метод подходит лишь для того, что бы понять были повреждены защищенные системные файлы или нет.
Как оказалось, иногда, в случае выявления проблем или когда необходимо увидеть какие операции производились, то полученной таким методом информации оказывается недостаточно для того, отразить полноценную куартину.
Как быть?
Для более комфортного первоначального анализа мы с коллегами создали такой скрипт:
Проверка целостности системных файлов утилитой sfc
Запустив скрипт вы сможете произвести проверку целостности системных файлов, произвести очистку и восстановление хранилища данных windows, в котором хранятся резервные копии защищенных системных файлов windows.
Из этих копий и производится восстановление поврежденных файлов.
Скрипт выводит аналогичный, но чуть более информативный лог + копирует в каталог запуска скрипта сам файл cbs.log.
А так же очищает старые записи, что немного экономит место на диске и спасает от зависаний компьютера ( при определенных условиях) при попытке открыть cbs.log. Да и читать будет удобнее и меньше.
Это связано с тем, что порой размер файла cbs.log может раздуваться и я видел монстров по 40 с лишним мегабайт… в общем, скрипт его «облегчает» до оптимального объема.
Идем дальше.
Пробуем читать cbs.log.
Что нужно знать?
При обнаружении поврежденных защищенных системных файлов SR пытается их восстановить из хранилища данных.
Само хранилище данных находится по адресу:
И, если по каким то причинам не удалось получить доступ к файлам или в хранилище они тоже оказались повреждены — в таком случае периодически мы можем наблюдать сообщение о невозможности восстановления файлов.
К которому бонусом может присоединиться какая нибудь трабла в работе системы.
=========================================================
Напомню, что лог cbs.log находится по такому пути:
* предварительно необходимо
включить отображение скрытых и системных файлов.
=========================================================
Вернемся, непосредственно, к файлу cbs.log. Вы его уже открыли в текстовом редакторе?
Открывайте.
Лично мне более удобным для работы с файлами такого типа является редактор notepad++
Так как редакторов много и каждый волен выбирать тот, что ему по душе — то далее я буду описывать свои действия в редакторе в контексте интерфейса notepad++ , а вы (если пользуетесь другим) , можете ориентироваться по аналогии в своем.
Думаю вы уже до этого находили информацию о том, что нужные нам действия помечаются тегом [SR] в каждой строке — именно по этому признаку и принято парсить cbs.log. А если вы не знали — значит узнали теперь)
Теперь у нас с вами два варианта: либо переходить сразу к проблемным файлам через поиск (это если у вас уже есть отфильтрованый одним из упомянутых методов лог) либо вывести все строки с тегом [SR].
Я лично всегда так делаю — легче потом будет навигация.
В notepad++ есть возможность вывести в дополнительной области все найденные по маске ( тегу [SR] ) строки.
Делается это просто: открываем поиск (кнопка в виде бинокля), вводим в строку поиска [SR], далее нажимаем кнопку «Найти все в текущем документе» и получаем в нижней области программы все строки найденные по нужному фильтру, а в вверхней области основной текст файла cbs.log, как видно на скриншоте:
Это позволит вам видеть проблемные места (нижняя область) и одновременно смотреть сопутсвующую информацию по ним в основном логе (верхняя область).
Ну как, все получилось?
Далее в нижней области, где отфильтрованы строки с тегом [SR] пропускаем все что выглядит примерно так:
2018-01-22 19:54:56, Info CSI 00000015 [SR] Verifying 100 (0x0000000000000064) components
2018-01-22 19:54:56, Info CSI 00000016 [SR] Beginning Verify and Repair transaction
2018-01-22 19:54:59, Info CSI 00000018 [SR] Verify complete
Сделать это легко — достаточно воспользоваться скроллом, потянув за него указателем мышки.
Почему пропустить? Файлы системой защиты проверяются блоками по 100 файлов и это на сейчас служебная информация, не несущая для нас полезной нагрузки.
Как только находим нечто отличающееся — стоп.
Например:
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
Все, сейчас мы нашли то, что надо.
Если вбить в переводчик то, что написано раздельным текстом, то можно вполне понять что не так.
На примере данной строки давайте и разберемся.
Cannot repair member file - не удается восстановить файл-член...
PublicKey neutral in the store, hash mismatch - Открытый ключ нейтральный в магазине, несоответствие хэша
Пусть перевод несколько забавный, но суть мы уловили — не удалось восстановить файл gpscript.exe, в хранилище компонентов он так же считается поврежденным, так как хэш сумма файла не совпадает с эталоном.
Что дальше?
Дальше можно либо приступить к восстановлению хранилища компонентов, либо смотреть какой файл нужен, где он должен лежать и как его восстановить, если нет возможности автоматически восстановить хранилище компонентов.
Начнем с второго варианта — получаем информацию о файле. Находим упомянутую строку в основном логе:
2017-10-29 21:28:40, Info CSI 000001e0 Hashes for file member \SystemRoot\WinSxS\x86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71cc\gpscript.exe do not match actual file [l:24{12}]"gpscript.exe" :
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
Тут мы отчетливо видим, что файл в хранилище должен быть по адресу:
Hashes for file member \SystemRoot\WinSxS\x86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71cc\gpscript.exe
Версия его: Version = 6.1.7601.23452 и на него ссылается компонент патча KB3159398.
Открываем упомянутый патч на сайте Microsoft:
Download Обновление для системы безопасности Windows 7 (KB3159398) from Official Microsoft Download Center
Находим там ссылку «Связанные ресурсы», переходим.
https://support.microsoft.com/ru-ru…-the-security-update-for-group-policy-june-14
Открываем сведения о файлах и находим тот, что нам нужен:
Все, значит это то, что нам нужно.
Просто переустанавливаем это обновление и нужные файлы перезаписываются. А значит — все станет ОК.
Это был пример на живом логе реальной системы.
Почему необходимо найти именно такой же файл и такой же версии?
Потому что когда данный файл внедрялся в систему, то создается ряд условий, на основании которых система защиты будет считать «правильным» только такой файл, который будет соответствовать этим самым условиям.
Другими словами, если какое то из обновлений системы, к примеру, обновляло версию файла и эталоны, то файл из ранее сделанной резервной копии, но другой версии будет считаться неактуальным.
Именно поэтому часто встречающуюся рекомендацию:
Вставьте диск (флэшку) с дистрибутивом вашей версии операционной системы и введите sfc / scannow …
Можно смело пропускать мимо ушей, глаз или как там еще информация дошла до вас.
Почему?
Тут имеется очень важный нюанс — дистрибутив должен быть именно таким же.
То есть с точно таким же набором обновлений, патчей и заплаток.
А найти такой дистрибутив довольно сложно, если вообще будет возможным.
Конечно, если вы были настолько благоразумны, что после очередного обновления сделали резервный диск восстановления — то тут, конечно, все в порядке и файлы подойдут.
Так же файл, считающийся системой защиты поврежденным может не запуститься или работать некорректно.
Он может некорректно взаимодействовать и с другими компонентами операционной системы или прочим программным обеспечением.
Отсюда можно сделать вывод, что при первоначальной проверке заморачиваться на счет наличия дистрибутива не стоит.
Исключение Windows XP — там система потребует наличия папки I386, которая имеется как раз на дистрибутиве (если у вас нет где то отдельно).
В нашем скрипте проверка ее наличия осуществляется автоматически и пользователю не придется выполнять танцы с бубном для того, что бы указать системе где она, если не удастся обнаружить.
Достаточно смонтировать образ диска и все.
Как еще можно восстановить поврежденные файлы?
Можно попытаться выполнить автоматическое восстановление хранилища компонентов через пункт «Расширенная проверка и восстановление файлов» скрипта, или запустив командную строкуот имени Администратора и ввести команду:
(Для Windows 8 — 10)
dism /Online /cleanup-image /restorehealth
Для Windows 7 команда будет выглядеть немного иначе, а так же потребуется наличие установленного Download Обновление для Windows 7 (KB2966583) from Official Microsoft Download Center
DISM /Online /Cleanup-Image /ScanHealth
В обоих случаях интернет должен быть подключен.
После того, как хранилище компонентов будет восстановлено, попробуйте снова выполнить проверку sfc /scannow
Как правило этой операции бывает достаточно.
=================================
Если вам понадобилось восстановление файлов хранилища данных вручную — то вам понадобится
стать владельцем объекта и получить права на изменение.
=================================
Итак, теперь общее понимание у нас имеется, далее просто будем собирать типовые примеры записей лога cbs.log и методы исправления проблем.
Для того, что бы облегчить себе задачу и сэкономить время+силы, я использую для первоначального анализа файл sfcdoc.log, создаваемый скриптом.
Можно использовать и sfcdetalis.txt — но он менее информативен.
Там мы увидим информацию о версии системы, разрядности, установленных патчах и другие вещи.
Нас в логе интересует блок
------ SFCDoc parsing (start process) ------
Там выводится результат работы программы sfc.exe, который записывается в cbs.log и имеет строки с тегом [sr]
Программа sfc.exe проверяет файлы блоками по 100 штук, отсюда и появляются записи типа:
000028a5 [SR] Verify complete
000028a6 [SR] Verifying 100 components
000028a7 [SR] Beginning Verify and Repair transaction
Итак, в логе sfcdoc.log (или sfcdetalis.txt) мы находим примерно такие строки:
00004fa9 [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
00004fac [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
00004fad [SR] This component was referenced by [l:181]'Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore~31bf3856ad364e35~amd64~~10.0.15042.0.Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore-Deployment
00004fb0 [SR] Could not reproject corrupted file \??\C:\Windows\SysWOW64\userinit.exe; source file in store is also corrupted
Это файлы, которые не удалось восстановить, либо те, что были восстановлены.
Если буквально, то Could not reproject corrupted file \??\C:\Windows\SysWOW64\userinit.exe значит что указанный файл не удалось восстановить из хранилища.
А source file in store is also corrupted — это говорит нам о том, что в хранилище файл тоже поврежден.
Решение: найти поврежденный файл в хранилище данных, получить на него права доступа и заменить оригинальным файлом.
Как понять, какой файл нам необходим, точнее какая версия файла?
Теперь имеет смысл обратиться к файлу cbs.log.
Скопируйте его в удобное место из каталога
Открыть его можно любым текстовым редактором, лично я предпочитаю
Notepad++
Открываем cbs.log и ищем ближайшую с конца строку с искомым нам файлом: в данном случае это userinit.exe
2017-10-26 23:38:05, Info CSI 000041c2 Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235\userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 mhHTAD/21TkyflJQwItWEJZr9UaGJebx3CamF6tUPf4=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c3 [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2017-10-26 23:38:05, Info CSI 000041c4 [SR] This component was referenced by [l:181]'Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore~31bf3856ad364e35~amd64~~10.0.15042.0.Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore-Deployment'
2017-10-26 23:38:05, Info CSI 000041c5 Hashes for file member \??\C:\Windows\SysWOW64\userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 K1Y9CBrNZsBLg7IsV/u9IEgYQ9xrk8frQkTDRknlyMA=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c6 Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235\userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 mhHTAD/21TkyflJQwItWEJZr9UaGJebx3CamF6tUPf4=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c7 [SR] Could not reproject corrupted file \??\C:\Windows\SysWOW64\userinit.exe; source file in store is also corrupted
Что мы видим?
Hashes for file member ….. do not match actual file
Эта запись гласит о том, что хэш сумма файла не совпадает с оригинальным.
Это и есть причина.
Где надо заменить файл?
\SystemRoot\WinSxS\wow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235\userinit.exe
Запомните, что SystemRoot\WinSxS — это адрес расположения хранилища данных.
Где SystemRoot эквивалентен переменной %SystemRoot% — путь до каталога windows на системном диске.
wow64 — это говорит нам о том, что речь идет о 64 разрядной системе и версии файла.
Строка
Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0
отображает так же служебную информацию, тут нам важно отметить что исходя из этой записи мы видим, что речь идет о версии файла 10.0.15042.0 (version 10.0.15042.0).
Это значит, что мы должный найти точно такую же версию файла и произвести замену в указанном каталоге.
Равно как и в каталоге C:\Windows\SysWOW64\userinit.exe
Тут есть особенность: так как произвести замену C:\Windows\SysWOW64\userinit.exe в загруженной системе вряд ли удастся, то вам либо придется сделать это из среды восстановления (в таком случае путь будет Х:\Windows\userinit.exe, где Х — это системный диск), либо из под Live CD/USB, либо — самый оптимальный вариант — просто производим замену в харнилище, а затем производим стандартную проверку sfc /scannow и система все сделает за вас сама.
То есть восстановит поврежденные файлы из хранилища.
* узнать версию файла можно кликнув по нему правой кнопкой мыши — свойства -Подробно.
==================================================
Далее разберем следующие строки лога cbs.log
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001dd [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001de [SR] Cannot repair member file [l:72{36}]"Microsoft.Build.Engine.resources.dll" of Microsoft.Build.Engine.resources, Version = 3.5.7600.16385, pA = PROCESSOR_ARCHITECTURE_MSIL (8), Culture = [l:10{5}]"ru-ru", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:b03f5f7f11d50a3a}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing
2017-10-29 21:28:40, Info CSI 000001df [SR] This component was referenced by [l:168{84}]"Microsoft-Windows-NetFx3-OC-Package~31bf3856ad364e35~x86~ru-RU~6.1.7601.17514.NetFx3"
2017-10-29 21:28:40, Info CSI 000001e0 Hashes for file member \SystemRoot\WinSxS\x86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71cc\gpscript.exe do not match actual file [l:24{12}]"gpscript.exe" :
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
Cannot repair member file … hash mismatch
Здесь так же говорится, что файл такой то не удалось восстановить и имеется несоответствие суммы хэш.
А вот запись in the store, file is missing говорит о том, что файл не просто поврежден, а полностью отсутствует в хранилище компонентов.
А вот эта строка
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
нам говорит о том, что этот компонент связан с обновлением KB3159398.
Если найти в базе Microsoft соответствующую ссылку, то там в перечне изменяемых файлов мы как раз увидим, что обновление выполняет установку файла необходимой версии.
Другими словами решением будет — переустановка обновления KB3159398.
Вот еще один интересный вариант, который вам может попасться в логе:
9:15, Error CSI 00000187 (F) Failed on regenerating file [l:22{11}]"browaub.ttf"[gle=0x80004005]
Здесь говорится о том, что попытка восстановления файла была завершена с ошибкой 0x80004005
Не буду вас гонять по поисковикам и скажу сразу что в данном случае процесс блокировал брандмауэр Windows, как бы бредово это не звучало)
P.S.
Далее будут в таком же формате излагаться другие варианты, если есть вопросы и замечания пишите.
Ошибки Windows Update или SFC в Windows 10 сохраняются в файле CBS.log. В этой статье мы рассмотрим, что такое CBS.log, его расположение и как просмотреть файл CBS.log в Windows 10.
CBS или Component-Based Servicing — это файл, содержащий логи об установленных и удаленных компонентах Windows Update. Таким образом, информация о вашем Windows Update хранится в этих файлах журнала, даже System File Checker (SFC) пишет в CBS.log.
Расположение файла CBS.log
Файл CBS.log всегда будет присутствовать на вашем компьютере под управлением Windows. Если вам интересно и вы хотите проверить этот файл, запустите Проводник (Win + E) и перейдите в следующее место.
C:\Windows\Logs\CBS
Там вы увидите имя файла CBS.log. Это тот самый файл, который содержит информацию о Windows Update.
Как прочитать файл CBS.log
Вы можете просто открыть его с помощью Блокнота.
C:\Windows\Logs\CBS
Однако если вы хотите просто прочитать файл SFC, это не лучший вариант.
Для этого запустите Командную строку с правами администратора, введите следующую команду и нажмите Enter.
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfclogs.txt
Это создаст файл sfclogs.txt на рабочем столе. Дважды щелкните по нему, чтобы открыть файл с помощью Блокнота, и прочитайте его. Вы увидите, что перед каждой транзакцией написано «SR». Это означает, что все показанные здесь программы относятся к SFC.exe.
Могу ли я удалить файл CBS.log?
Файл CBS.log необходим для вашего компьютера, поскольку каждый раз, когда вы устанавливаете новое обновление Windows, оно записывается в файл CBS.log. Однако если вам кажется, что он съедает огромный кусок вашего жесткого диска, то можете удалить его, так как это не окажет негативного влияния на ваш компьютер.
Перед этим обязательно отключите службу Windows Update.
Теперь вы можете удалить файл CBS.log, и вы не получите никакого сообщения об ошибке.
Поврежденные файлы регистрируются в журнале CBS.log
В некоторых Windows может возникнуть ошибка следующего содержания
Защита ресурсов Windows обнаружила поврежденные файлы, но не смогла исправить некоторые из них. Подробности содержатся в журнале CBS.Log windir\Logs\CBS\CBS.log.
Чтобы исправить эту проблему, вам может потребоваться запустить DISM.
Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
В данной статье описан метод ручного восстановления хранилища компонентов Windows. Подобные описанному в данном посте методу восстановления работоспособности компонентной модели рождаются вовсе не от хорошей жизни, появляются они под воздействием многочисленных проблем с компонентной моделью операционной системы. Во многих случаях официальные подходы к восстановлению хранилища компонентов не помогают, помимо этого отсутствует какая бы то ни было внятная официальная документация, из чего складывается недопонимание структуры и принципов работы компонентной модели. При подобном отношении со стороны разработчиков абсолютно любые средства вернуть компонентную модель в работоспособное состояние приемлемы!! Как показывает практика, при всех стараниях разработчиков из Microsoft предоставить возможность конечному пользователю системы устранять возникающие проблемы в автоматическом режиме (при помощи специальных утилит), никогда полностью не будут исключены ситуации, в которых эти самые автоматизированные средства будут давать сбои. Причина тут кроется в симбиозе старых механизмов операционной системы и необходимостью постоянного внедрения новых (не оттестированных) технологий, должным образом не заботясь о приведении в надлежащее состояние всех связанных (участвующих) компонентов, что, в свою очередь, порождает огромное количество проблем.
В данной публикации речь пойдет о восстановлении компонента прямой заменой файлов. Фактически методом предусматривается прямая ручная замена поврежденных [кривых, неправильно функционирующих] файлов, являющихся причиной возникновения ошибок, а так же частей реестра. По этой методике, исправные файлы и соответствующие ключи реестра копируются с работоспособной станции-донора. Слабое место метода в том, что для реализации требуется наличие находящейся на том же уровне обновлений нормально функционирующей операционной системы той же версии/ревизии.
В процессе повествования постараемся описать общую методику, тем не менее, в статье будут присутствовать частные случаи из практики.
Определение виновника проблемы
В этом разделе мы опишем принцип поиска битых файлов в составе иерархии каталогов компонентной модели, являющихся причиной возникновения сбоев. Так же попытаемся классифицировать все возможные источники информации о сбойных модулях.
Ошибки в лог-файлах
Основной и пожалуй самый информативный источник о проблемах, связанных с компонентной моделью Windows — лог-файлы системных утилит обслуживания. Чаще всего ошибки выявляются при выполнении обновления системы, то есть установки обновлений/исправлений. Проявляются они в виде разнообразных ошибочных статусов в интерфейсе Центра обновления и окон обновлений. Тем не менее, сам по себе статус не малоинформативен, а вот более детальная информация попадает в специализированные файлы журналов. В данном разделе мы опишем методики поиска источников проблем в лог-файлах результатов работы системных утилит SURT/DISM/SFC/SFCFix, которые работают с хранилищем компонентов и системными каталогами а предмет восстановления целостности компонентной модели системы.
CheckSUR.log / DISM.log
Правила поиска ошибок в файлах %Windir%\Logs\CBS\CheckSUR.log или %Windir%\Logs\DISM\DISM.log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
================================= Checking System Update Readiness. Binary Version 6.1.7601.24499 2019—07—16 14:04 Checking Windows Servicing Packages Checking Package Manifests and Catalogs Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store (f) CSI Manifest Zero Length 0x00000000 winsxs\Manifests\x86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e.manifest x86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e (f) CSI Manifest Zero Length 0x00000000 winsxs\Manifests\amd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36.manifest amd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36 Summary: Seconds executed: 2948 Found 2 errors CSI Manifest Zero Length Total count: 2 Unavailable repair files: winsxs\manifests\x86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e.manifest winsxs\manifests\amd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36.manifest |
Статусы (первый символ):
(f)
— фатальная ошибка;(w)
— предупреждение;(fix)
— указывает на ошибку, которая была исправлена; выводятся в виде отдельной строки сразу за строкой со статусом (f);
Оставшаяся часть строки содержит имя поврежденного файла и код ошибки.
В конце файла можно видеть секцию Unavailable repair files:, которая группирует все файлы, которые нужно будет заменять.
CBS.log
Несколько вариантов поиска ошибок в лог-файле %WinDir%\Logs\CBS\CBS.log:
- Производим поиск строк, содержащих ключевое слово
Error
(с пробелом ДО или ПОСЛЕ). В их окружении можно найти указание на конкретные ошибки; - Выполняем команду
findstr /c:»[SR]» %windir%\logs\cbs\cbs.log > c:\sfcdetails.txt
в результате чего в корне диска C: будет создан файл
sfcdetails.txt
, включающий лишь строки исходного файла, содержащие префикс[SR]
(содержащие информацию об ошибках).
1: отсутствующие компоненты
. . . 2016—01—05 14:20:31, Info CSI 00001a68 [SR] Verifying 100 (0x0000000000000064) components 2016—01—05 14:20:31, Info CSI 00001a69 [SR] Beginning Verify and Repair transaction 2016—01—05 14:20:31, Info CSI 00001a6a [SR] Cannot repair member file [l:32{16}]«BRCI06UI.DLL.mui» of prnbr002.inf.Resources, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]«ru-RU», VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing 2016—01—05 14:20:31, Info CSI 00001a6b [SR] Cannot repair member file [l:32{16}]«prnbr002.inf_loc» of prnbr002.inf.Resources, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]«ru-RU», VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing 2016—01—05 14:20:31, Error CSI 00001a6c (F) STATUS_OBJECT_NAME_NOT_FOUND #28089837# from Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile(flags = (AllowSharingViolation), handle = {provider=NULL, handle=0}, da = (SYNCHRONIZE|FILE_READ_ATTRIBUTES), oa = @0x195c7d0—>OBJECT_ATTRIBUTES {s:48; rd:NULL; on:[100]»\??\C:\Windows\WinSxS\amd64_prnbr002.inf_31bf3856ad364e35_6.1.7600.16385_none_49c93aa2c4304e9e\Amd64″; a:(OBJ_CASE_INSENSITIVE)}, iosb = @0x195c7b0, as = (null), fa = 0, sa = (FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE), cd = FILE_OPEN, co = (FILE_SYNCHRONOUS_IO_NONALERT|0x00004000), eab = NULL, eal = 0, disp = Invalid) 2016—01—05 14:20:31, Error CSI 00001a6d@2016/1/5:10:20:31.885 (F) d:\win7sp1_gdr\base\wcp\sil\merged\ntu\ntsystem.cpp(2057): Error STATUS_OBJECT_NAME_NOT_FOUND originated in function Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile expression: (null) 2016—01—05 14:20:31, Error CSI 00001a6e (F) STATUS_OBJECT_NAME_NOT_FOUND #28089836# from Windows::Rtl::SystemImplementation::CDirectory::OpenExistingDirectory(...)[gle=0xd0000034] 2016—01—05 14:20:31, Error CSI 00001a6f (F) STATUS_OBJECT_NAME_NOT_FOUND #28089835# from Windows::Rtl::SystemImplementation::CDirectory_IRtlDirectoryTearoff::OpenExistingDirectory(flags = 0, da = (SYNCHRONIZE), oa = @0x195d0e0—>SIL_OBJECT_ATTRIBUTES {s:40; on:»Amd64″; a:(OBJ_CASE_INSENSITIVE)}, sa = (FILE_SHARE_READ|FILE_SHARE_WRITE), oo = (FILE_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_OPEN_FOR_BACKUP_INTENT), dir = NULL, disp = (null)) . . . |
В обрамлении видно строки, содержащие ключевые слова Cannot repair member file.. указывающие на то, что:
- содержимое файла не соответствует содержимому хранилища для файла и WRP пытается его восстановить, тем не менее..
- ..WRP не может восстановить файл описанного в строке компонента, потому что записи в реестре о нем присутствуют, а вот сам файл отсутствует в хранилище, о чем недвусмысленно намекает фрагмент строки ..file is missing.
Ниже по тексту можно найти статус STATUS_OBJECT_NAME_NOT_FOUND, указывающий на отсутствие подкаталога. В нашем случае, как видно из отчета, повреждению подверглась целая иерархия компонента, состоящая из подкаталогов и файлов, размещавшаяся в каталоге C:\Windows\WinSxS\amd64_prnbr002.inf_31bf3856ad364e35_6.1.7600.16385_none_49c93aa2c4304e9e. Заглянув в целевой каталог, я убедился, что он действительно пуст, а вот что за событие/действие удалило его содержимое, остается только гадать, хотя подобные инциденты в Windows-системах сплошь и рядом.
2: отсутствие манифеста
. . . 2019—05—27 14:32:54, Info CSI 000004f9 Looking for manifest in Backup Dir... 2019—05—27 14:32:54, Error CSI 000004fa (F) Unable to load manifest for component [ml:280{140},l:186{93}]«wow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9»[gle=0x80004005] 2019—05—27 14:32:54, Error CSI 000004fb@2019/5/27:11:32:54.653 (F) d:\w7rtm\base\wcp\componentstore\storelayout.cpp(2712): Store corruption detected in function ComponentStore::CRawStoreLayout::FetchManifestContent expression: 0 FileHashMismatch on resource [120]«\winsxs\manifests\wow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9.manifest»[gle=0x80004005] 2019—05—27 14:32:56, Error CSI 000004fc (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #1525870# from CCSDirectTransaction::OperateEnding at index 6 of 185 (0x00000000000000b9) operations, disposition 0[gle=0xd015001a] 2019—05—27 14:32:56, Error CSI 000004fd (F) HRESULT_FROM_WIN32(14098) #1496294# from Windows::ServicingAPI::CCSITransaction::ICSITransaction2_AddComponents(Flags = 4, a = @0x1b50440, mp = @0x1b50c40, disp = 0)[gle=0x80073712] 2019—05—27 14:32:56, Info CBS Failed to add one or more component [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Error CBS Failed to complete component closure [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Info CSI 000004fe@2019/5/27:11:32:56.806 CSI Transaction @0x8abb930 destroyed 2019—05—27 14:32:56, Info CBS Perf: Resolve chain complete. 2019—05—27 14:32:56, Info CBS Failed to resolve execution chain. [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Error CBS Failed to process single phase execution. [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24443.1.8, status: 0x80073712, failure source: Resolve, start state: Absent, target state: Installed, client id: WindowsUpdateAgent 2019—05—27 14:32:56, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 — ERROR_FILE_NOT_FOUND] . . . |
Ключевые слова, на которые в данном случае стоит обращать внимание:
- Manifest hash for component .. does not match expected value.
- Unable to load manifest for component ..
Из чего следует, что в данном случае возникла проблема с файлом wow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9.manifest, который является манифестом и располагается в поддиректории %SystemRoot%\WinSxS\Manifests. При более близком изучении было выяснено, что указанный файл почему-то нулевой.
3: попытка удаления отсутствующего компонента
При попытках установки обновления безопасности мы можем столкнуться со следующей проблемой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
. . . 2019—05—28 12:20:09, Info CBS Exec: Unprojecting Package: Package_820_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2871_neutral_LDR, UninstallDeployment: amd64_006f1bee347aa0a86984388c82ccb379_31bf3856ad364e35_6.1.7601.23529_none_4683d079b6ce11b3 2019—05—28 12:20:09, Info CBS Exec: Uninstalling Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3 2019—05—28 12:20:09, Info CBS Exec: Uninstalling Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR 2019—05—28 12:20:09, Info CBS Exec: Unprojecting Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR, UninstallDeployment: amd64_0f4370f0564ad69cbf1c9624ac455552_31bf3856ad364e35_7.6.7601.23775_none_3e0e14d4d5b6573f 2019—05—28 12:20:09, Error CBS Failed. Attempted to uninstall a version of a non—driver component that is not installed, version: 0X700061db15cdf, component: amd64_microsoft—windows—w..lient—aux.resources_31bf3856ad364e35_7.6.7601.23775_ru—ru_306f57c17eac5f89, owner: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3.4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to mergecomponent [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS ComponentAnalyzerUninstallDeployment: Failed on update: 4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute item[0] in Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute execution update. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute execution package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3 [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to prepare execution [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CSI 00000016@2019/5/28:09:20:09.916 CSI Transaction @0x1b71940 destroyed 2019—05—28 12:20:09, Info CBS Perf: InstallUninstallChain complete. 2019—05—28 12:20:09, Info CBS Failed to execute execution chain. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Error CBS Failed to process single phase execution. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24443.1.8, status: 0x80004005, failure source: Execute, start state: Staged, target state: Installed, client id: WindowsUpdateAgent 2019—05—28 12:20:09, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 — ERROR_FILE_NOT_FOUND] 2019—05—28 12:20:10, Info CBS Failed to add %windir%\winsxs\pending.xml to WER report because it is missing. Continuing without it... 2019—05—28 12:20:10, Info CBS Failed to add %windir%\winsxs\pending.xml.bad to WER report because it is missing. Continuing without it... 2019—05—28 12:20:10, Info CBS Reboot mark refs: 0 . . . |
Судя по всему установщик ругается на попытку удаления отсутствующего компонента amd64_microsoft-windows-w..lient-aux.resources_31bf3856ad364e35_7.6.7601.23775_ru-ru_306f57c17eac5f89 из пакета Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3.4019265-2966_neutral_LDR. Сам компонент оказался на месте вместе со собственным манифестом, поэтому не понятно что же не нравится стеку обслуживания. Тем не менее что-то с этим пакетом явно не так.
Окна ошибок в интерфейсе
Часто ошибки наблюдаются пользователем визуально, в виде статусов ошибок в окне Центра обновления Windows, но иногда их можно увидеть в автономных информационных окнах. Например, отказ запуска множества исполняемых системных образов может выражаться в постоянно всплывающих окнах, в заголовке которых можно видеть «<имя_образа> (в контексте которого произошел сбой) — ошибочный образ», а в информационной части текст ошибки: X:\XXXXXX\xxxxxxxx.dll либо не предназначен для выполнения под управлением Windows или содержит ошибку. Попробуйте переустановить программу с помощью исходного установочного носителя или обратитесь к системному администратору или поставщику программного обеспечения за поддержкой:
В английских версиях в заголовке можно увидеть «<filename> — bad image», а описание звучит как: «<filename> is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.» Часто сообщение в окне дополняется специфической деталью сбоя, например кодом ошибки: «Error status 0xc000012f».
Данный класс ошибок имеет множество специфических особенностей, однако мы будем разбирать их в контексте (исключительно) повреждения системных библиотек, то есть метод сложно применим к различного рода сторонним приложениям, в которых аналогичные проблемы запуска связаны с основным исполняемым файлом и внутренними библиотеками приложения. Исходя из этого, метод нельзя отнести к универсальным.
В данном случае, как вы можете видеть на снимке экрана выше, у нас повреждена библиотека с именем ncrypt.dll, относительно неё мы и поведем дальнейшее повествование.
Тем не менее, в ваших случаях для выявления виновника сбоя потребуется исследовать лог-файл %WinDir%\Logs\CBS\CBS.log и составить список проблемных файлов. И при не столь очевидных намеках на источник проблемы всегда начинайте исследование сбоя с анализа данного лог-файла.
Восстановление файлов
На предыдущем шаге мы определились в виновником ошибки, то есть определили имена поврежденных/удаленных файлов:
- Если мы наблюдаем ошибку в виде информационного окна в графическом интерфейсе, то виновником обычно является модуль, имя которого фигурирует в тексте (в примере выше: ncrypt.dll). В этом случае мы будем менять все без исключения ревизии проблемного файла;
- Если мы производим разбор лог-файлов отчетов сервисных утилит (CBS/DISM/CheckSur/SFCFix), то виновник(и) проблемы обычно предстают перед нами в виде списка конкретных файлов компонентов или обновлений;
Давайте в этом разделе опишем метод восстановления компонента прямой заменой файлов подробнее, разбив весь процесс на подразделы, подробно описывающие шаги.
Поиск рабочих экземпляров файлов
На этом этапе нам необходимо найти рабочие копии поврежденных или отсутствующих файлов. Существует несколько основных подходов по нахождению рабочих копий:
- Скопировать файлы с аналогичной, полностью работоспособной системы той же версии/редакции:
- при помощи поиска (в проводнике, или любым специализированным средством типа Far/Total Commander) по системному разделу (обычно C:\) находим все каталоги, содержащие в своем названии искомую маску/имя (для случая выше: *ncrypt*). Сокращенный вывод:
. . .
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24417_none_6072150268f96612
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18741_none_bbe0d7630856b4a1
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24408_none_607de53868f06378
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18812_none_bc024957083d774c
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24387_none_602663a869322c82
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18869_none_bbd33bc1085fb462
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24384_none_602362ca6934e07d
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18923_none_bbf87b9b0844a9bb
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24357_none_6046d36c6919d8af
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18933_none_bbedabaf084cc5ac
C:\Windows\winsxs\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24335_none_605a72b0690b6e1f
C:\Windows\winsxs\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18939_none_bbf3ad6b08475db6
. . .
Соответственно, в найденных директориях располагаются и подпадающие под маску файлы (ncrypt.dll). Как можно увидеть по именам каталогов, они предназначаются для хранения различных ревизий компонента, включающего в себя файл ncrypt.dll. Но определить точно какая именно ревизия используется тем или иным приложением сложно, поскольку используются обычно сразу несколько ревизий.
Можно произвести замену файлов и в системных каталогах, таких как C:\Windows\system32\. Хотя делать это не обязательно, поскольку файлы там представляет собой жесткие ссылки на оригиналы в хранилище WinSxS, а они восстанавливаются автоматически при проверке через sfc).
- в ходе того же самого поиска, кроме директорий, выявляются и файлы, которые располагаются по следующим путям (вывод сокращен):
. . .
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24408_none_bc9c80bc214dd4ae.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18741_none_5fc23bdf4ff9436b.manifest
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24387_none_bc44ff2c218f9db8.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18812_none_5fe3add34fe00616.manifest
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24384_none_bc41fe4e219251b3.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18869_none_5fb4a03d5002432c.manifest
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24357_none_bc656ef0217749e5.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18923_none_5fd9e0174fe73885.manifest
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24335_none_bc790e342168df55.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18933_none_5fcf102b4fef5476.manifest
C:\Windows\winsxs\Manifests\amd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24308_none_bc9c7ed6214dd787.manifest
C:\Windows\winsxs\Manifests\x86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18939_none_5fd511e74fe9ec80.manifest
. . .
- Разархивировать требуемые файлы из пакета обновления.
- Для этого определяем имя обновления KBXXXXXXXX, в состав которого входят обнаруженные на предыдущем шаге файлы, из Центра загрузок Майкрософт или Центра обновления Майкрософт или попросту используя поиск.
- Распаковываем содержимое выкачанного только что пакета обновления (.msu) в произвольную (временную) директорию:
expand -F:* windows6.1-kb4019265-x64_c21fb9314da54cf6bd7972581da3159535f55aec.msu c:\temp\4019265
- после чего в целевой директории мы увидим следующее содержимое:
- .xml-файл — метаданные-описатели пакета обновления (.msu). Утилиты установки используют .xml-файл при выполнении установки в автоматическом режиме;
- .cab-файл — архив с данными (полезная нагрузка) обновления;
- *-pkgProperties.txt — файл с описанием свойств пакета (дата релиза, архитектура, тип, ссылка на KB и прочее);
- WSUSSCAN.cab — файл оффлайн-сценария проверки;
- затем выполняем еще одну команду, теперь уже над только что распакованным .cab-файлом:
expand -F:* windows6.1-kb4019265-x64.cab c:\temp\4019265\extracted
- после этого необходимые нам для замены файлы будут располагаться в директории c:\temp\4019265\extracted
Установка безопасности для каталогов/файлов
В операционных системах Windows директория компонентной модели WinSxS (и вложенные в неё объекты) защищены на уровне разрешений файловой системы. Поэтому следующим шагом нам потребуется взять владение каталогов WinSxS для собственной учетной записи (под которой выполняете восстановление), затем выставить полные разрешения для этой учетной записи, а далее применить их для всех вложенных папок/файлов.
Выполнять приведенные здесь действия следует из-под учетной записи с правами локального Администратора (с эскалацией привилегий).
Сделать это можно двумя способами:
- Через проводник. Нажимаем правую клавишу мыши на директории WinSxS — пункт Свойства — вкладка Безопасность — кнопка Дополнительно — вкладка Владелец — кнопка Изменить — ставим курсор на нужного нам пользователя, активируем чекбокс Заменить владельца подконтейнеров и объектов — жмем кнопку Применить. После окончания процесс закрываем все открытые окна через кнопку OK, повторно жмем правую клавишу мыши на директории WinSxS — вкладка Безопасность — во фрейме Группы и пользователи кнопка Изменить — выделяем курсором группу Администраторы — ставим разрешения Изменение и Запись;
- Через командную строку. Из командной строки (cmd) выполняем следующие команды:
takeown /f c:\windows\winsxs\*
даем группе Администраторы (в которую, я надеюсь, включена ваша учетная запись) полный доступ к целевому файлу, для этого выполняем следующую команду:
icacls c:\windows\winsxs\* /GRANT АДМИНИСТРАТОРЫ:F
Копирование каталогов/файлов
И последним шагом выполняется непосредственно копирование (с заменой) с донорской (исправной) системы на целевую (проблемную) содержимого всех обнаруженных на предыдущих шагах каталогов и файлов, не забывайте так же и .manifest-файлы.
Что именно мы копируем:
- Если присутствуют пара
.cat
или.mum
файлов компонента, то скопировать их в каталог %WinDir%\servicing\Packages (с донора на цель). Копировать именно всю пару, даже если поврежден всего-лишь один из них (и один из них отображается в лог-файле); - Если к паре
.cat
/.mum
файлов присутствует еще и.ses
-файл, то копируем и его; - Если присутствуют одноименные манифесты (
.manifest
-файл(ы)) компонента, то скопировать их в каталог %WinDir%\WinSxS\Manifests (с донора на цель); - Если присутствуют остальные подкаталоги/файлы компонента, то скопировать их в каталог компонента %WinDir%\WinSxS\имя_компонента\ (c донора на цель);
- Если присутствуют файлы в директории C:\Windows\System32, то можно скопировать и их (с донора на цель). Хотя делать это и не обязательно, поскольку жесткие ссылки восстанавливаются при проверках через sfc;
Производить операции копирования файлов (во избежание блокировок на работающей системе) можно при помощи любого загрузочного LiveCD, предварительно скопировав все переносимые файлы на флешку (или любой иной носитель). Выполнять же само копирование можно как при помощи командной строки, так и выполнить перемещение с помощью проводника Windows.
Восстановление реестра
Обычно файловых исправлений бывает достаточно для того, что бы устранить ошибки в компонентной модели Windows, соответственно, исправить ошибки, происходящие в процессе установки обновлений. Тем не менее, бывают случаи, когда повреждается еще и реестровая часть компонента, тогда требуется производить дополнительные действия по восстановлению:
- Запустить командную строку (cmd);
- Подключить динамический куст реестра HKLM\COMPONENTS командой:
reg load HKLM\COMPONENTS C:\WINDOWS\SYSTEM32\CONFIG\COMPONENTS
если выскакивает ошибка:
процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
то куст уже подключен.
- Запустить редактор реестра regedit;
- В открывшемся окне нажать Ctrl+F и ввести имя компонента, который вы восстанавливали на предыдущем шаге;
- В случае отсутствия каких либо записей реестра, выполнить импортирование соответствующих записей реестра о компоненте с рабочей машины;
- Выполнить команду:
reg unload HKLM\COMPONENTS
- выполнить перезагрузку операционной системы;
Всем привет.
Начну с небольшого определения:
Что такое cbs.log?
Файл-лог журнала обслуживания windows, который содержит подробные сведения об ошибках автономного обслуживания, подробные сведения об ошибках интерактивного обслуживания, а так же как вспомогательный элемент для dism.exe
Не вдаваясь в тонкости осмысливания написанного ( определение взято отсюда ) сообщу следующее:
Многим из нас знакома программа sfc.exe, с помощь которой можно проверить состояние целостности защищенных системных файлов.
(Обсуждение в этой теме:
Обзор утилиты sfc.exe
)
Результат ее работы будет отражен как раз так же в этом логе.
Но, для большинства пользователей, анализ результата проверки остается трудновыполнимой задачей.
Хорошо, если система рапортует о том, что защита ресурсов wiindows не обнаружила поврежденных файлов или что все поврежденные файлы восстановлены.
А что делать, если мы видим что то вроде такого сообщения?
Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них
Один из шагов к решению проблемы — это произвести анализ лога, который создается при сканировании. Лог-файл находится по пути %windir%logscbscbs.log
и открыть его можно любым текстовым редактором, включая стандартный notepad.
Неподготовленный пользователь, открыв и посмотрев лог, скорее всего испытает острое желание закрыть файл и больше не открывать. Поэтому, для комфорта восприятия, пользователи придумали приводить лог в более читабельный вид, распарсив его и отфильтровав «лишние» записи оставить только те, что нужны.
Сделать это можно разными методами, кстати — в сети распространен метод с парсингом файла cbs.log введя в командной строке простую команду:
findstr/c: «[SR]» %windir%logscbscbs.log > "указать адрес, куда вы хотите сохранить лог"sfcdetails.txt
Но, как показала практика, этот метод подходит лишь для того, что бы понять были повреждены защищенные системные файлы или нет.
Как оказалось, иногда, в случае выявления проблем или когда необходимо увидеть какие операции производились, то полученной таким методом информации оказывается недостаточно для того, отразить полноценную куартину.
Как быть?
Для более комфортного первоначального анализа мы с коллегами создали такой скрипт:
Проверка целостности системных файлов утилитой sfc
Запустив скрипт вы сможете произвести проверку целостности системных файлов, произвести очистку и восстановление хранилища данных windows, в котором хранятся резервные копии защищенных системных файлов windows.
Из этих копий и производится восстановление поврежденных файлов.
Скрипт выводит аналогичный, но чуть более информативный лог + копирует в каталог запуска скрипта сам файл cbs.log.
А так же очищает старые записи, что немного экономит место на диске и спасает от зависаний компьютера ( при определенных условиях) при попытке открыть cbs.log. Да и читать будет удобнее и меньше.
Это связано с тем, что порой размер файла cbs.log может раздуваться и я видел монстров по 40 с лишним мегабайт… в общем, скрипт его «облегчает» до оптимального объема.
Идем дальше.
Пробуем читать cbs.log.
Что нужно знать?
При обнаружении поврежденных защищенных системных файлов SR пытается их восстановить из хранилища данных.
Само хранилище данных находится по адресу:
И, если по каким то причинам не удалось получить доступ к файлам или в хранилище они тоже оказались повреждены — в таком случае периодически мы можем наблюдать сообщение о невозможности восстановления файлов.
К которому бонусом может присоединиться какая нибудь трабла в работе системы.
=========================================================
Напомню, что лог cbs.log находится по такому пути:
* предварительно необходимо
включить отображение скрытых и системных файлов.
=========================================================
Вернемся, непосредственно, к файлу cbs.log. Вы его уже открыли в текстовом редакторе?
Открывайте.
Лично мне более удобным для работы с файлами такого типа является редактор notepad++
Так как редакторов много и каждый волен выбирать тот, что ему по душе — то далее я буду описывать свои действия в редакторе в контексте интерфейса notepad++ , а вы (если пользуетесь другим) , можете ориентироваться по аналогии в своем.
Думаю вы уже до этого находили информацию о том, что нужные нам действия помечаются тегом [SR] в каждой строке — именно по этому признаку и принято парсить cbs.log. А если вы не знали — значит узнали теперь)
Теперь у нас с вами два варианта: либо переходить сразу к проблемным файлам через поиск (это если у вас уже есть отфильтрованый одним из упомянутых методов лог) либо вывести все строки с тегом [SR].
Я лично всегда так делаю — легче потом будет навигация.
В notepad++ есть возможность вывести в дополнительной области все найденные по маске ( тегу [SR] ) строки.
Делается это просто: открываем поиск (кнопка в виде бинокля), вводим в строку поиска [SR], далее нажимаем кнопку «Найти все в текущем документе» и получаем в нижней области программы все строки найденные по нужному фильтру, а в вверхней области основной текст файла cbs.log, как видно на скриншоте:
Это позволит вам видеть проблемные места (нижняя область) и одновременно смотреть сопутсвующую информацию по ним в основном логе (верхняя область).
Ну как, все получилось?
Далее в нижней области, где отфильтрованы строки с тегом [SR] пропускаем все что выглядит примерно так:
2018-01-22 19:54:56, Info CSI 00000015 [SR] Verifying 100 (0x0000000000000064) components
2018-01-22 19:54:56, Info CSI 00000016 [SR] Beginning Verify and Repair transaction
2018-01-22 19:54:59, Info CSI 00000018 [SR] Verify complete
Сделать это легко — достаточно воспользоваться скроллом, потянув за него указателем мышки.
Почему пропустить? Файлы системой защиты проверяются блоками по 100 файлов и это на сейчас служебная информация, не несущая для нас полезной нагрузки.
Как только находим нечто отличающееся — стоп.
Например:
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
Все, сейчас мы нашли то, что надо.
Если вбить в переводчик то, что написано раздельным текстом, то можно вполне понять что не так.
На примере данной строки давайте и разберемся.
Cannot repair member file - не удается восстановить файл-член...
PublicKey neutral in the store, hash mismatch - Открытый ключ нейтральный в магазине, несоответствие хэша
Пусть перевод несколько забавный, но суть мы уловили — не удалось восстановить файл gpscript.exe, в хранилище компонентов он так же считается поврежденным, так как хэш сумма файла не совпадает с эталоном.
Что дальше?
Дальше можно либо приступить к восстановлению хранилища компонентов, либо смотреть какой файл нужен, где он должен лежать и как его восстановить, если нет возможности автоматически восстановить хранилище компонентов.
Начнем с второго варианта — получаем информацию о файле. Находим упомянутую строку в основном логе:
2017-10-29 21:28:40, Info CSI 000001e0 Hashes for file member SystemRootWinSxSx86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71ccgpscript.exe do not match actual file [l:24{12}]"gpscript.exe" :
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
Тут мы отчетливо видим, что файл в хранилище должен быть по адресу:
Hashes for file member SystemRootWinSxSx86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71ccgpscript.exe
Версия его: Version = 6.1.7601.23452 и на него ссылается компонент патча KB3159398.
Открываем упомянутый патч на сайте Microsoft:
Download Обновление для системы безопасности Windows 7 (KB3159398) from Official Microsoft Download Center
Находим там ссылку «Связанные ресурсы», переходим.
https://support.microsoft.com/ru-ru…-the-security-update-for-group-policy-june-14
Открываем сведения о файлах и находим тот, что нам нужен:
Все, значит это то, что нам нужно.
Просто переустанавливаем это обновление и нужные файлы перезаписываются. А значит — все станет ОК.
Это был пример на живом логе реальной системы.
Почему необходимо найти именно такой же файл и такой же версии?
Потому что когда данный файл внедрялся в систему, то создается ряд условий, на основании которых система защиты будет считать «правильным» только такой файл, который будет соответствовать этим самым условиям.
Другими словами, если какое то из обновлений системы, к примеру, обновляло версию файла и эталоны, то файл из ранее сделанной резервной копии, но другой версии будет считаться неактуальным.
Именно поэтому часто встречающуюся рекомендацию:
Вставьте диск (флэшку) с дистрибутивом вашей версии операционной системы и введите sfc / scannow …
Можно смело пропускать мимо ушей, глаз или как там еще информация дошла до вас.
Почему?
Тут имеется очень важный нюанс — дистрибутив должен быть именно таким же.
То есть с точно таким же набором обновлений, патчей и заплаток.
А найти такой дистрибутив довольно сложно, если вообще будет возможным.
Конечно, если вы были настолько благоразумны, что после очередного обновления сделали резервный диск восстановления — то тут, конечно, все в порядке и файлы подойдут.
Так же файл, считающийся системой защиты поврежденным может не запуститься или работать некорректно.
Он может некорректно взаимодействовать и с другими компонентами операционной системы или прочим программным обеспечением.
Отсюда можно сделать вывод, что при первоначальной проверке заморачиваться на счет наличия дистрибутива не стоит.
Исключение Windows XP — там система потребует наличия папки I386, которая имеется как раз на дистрибутиве (если у вас нет где то отдельно).
В нашем скрипте проверка ее наличия осуществляется автоматически и пользователю не придется выполнять танцы с бубном для того, что бы указать системе где она, если не удастся обнаружить.
Достаточно смонтировать образ диска и все.
Как еще можно восстановить поврежденные файлы?
Можно попытаться выполнить автоматическое восстановление хранилища компонентов через пункт «Расширенная проверка и восстановление файлов» скрипта, или запустив командную строкуот имени Администратора и ввести команду:
(Для Windows 8 — 10)
dism /Online /cleanup-image /restorehealth
Для Windows 7 команда будет выглядеть немного иначе, а так же потребуется наличие установленного Download Обновление для Windows 7 (KB2966583) from Official Microsoft Download Center
DISM /Online /Cleanup-Image /ScanHealth
В обоих случаях интернет должен быть подключен.
После того, как хранилище компонентов будет восстановлено, попробуйте снова выполнить проверку sfc /scannow
Как правило этой операции бывает достаточно.
=================================
Если вам понадобилось восстановление файлов хранилища данных вручную — то вам понадобится
стать владельцем объекта и получить права на изменение.
=================================
Итак, теперь общее понимание у нас имеется, далее просто будем собирать типовые примеры записей лога cbs.log и методы исправления проблем.
Для того, что бы облегчить себе задачу и сэкономить время+силы, я использую для первоначального анализа файл sfcdoc.log, создаваемый скриптом.
Можно использовать и sfcdetalis.txt — но он менее информативен.
Там мы увидим информацию о версии системы, разрядности, установленных патчах и другие вещи.
Нас в логе интересует блок
------ SFCDoc parsing (start process) ------
Там выводится результат работы программы sfc.exe, который записывается в cbs.log и имеет строки с тегом [sr]
Программа sfc.exe проверяет файлы блоками по 100 штук, отсюда и появляются записи типа:
000028a5 [SR] Verify complete
000028a6 [SR] Verifying 100 components
000028a7 [SR] Beginning Verify and Repair transaction
Итак, в логе sfcdoc.log (или sfcdetalis.txt) мы находим примерно такие строки:
00004fa9 [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
00004fac [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
00004fad [SR] This component was referenced by [l:181]'Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore~31bf3856ad364e35~amd64~~10.0.15042.0.Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore-Deployment
00004fb0 [SR] Could not reproject corrupted file ??C:WindowsSysWOW64userinit.exe; source file in store is also corrupted
Это файлы, которые не удалось восстановить, либо те, что были восстановлены.
Если буквально, то Could not reproject corrupted file ??C:WindowsSysWOW64userinit.exe значит что указанный файл не удалось восстановить из хранилища.
А source file in store is also corrupted — это говорит нам о том, что в хранилище файл тоже поврежден.
Решение: найти поврежденный файл в хранилище данных, получить на него права доступа и заменить оригинальным файлом.
Как понять, какой файл нам необходим, точнее какая версия файла?
Теперь имеет смысл обратиться к файлу cbs.log.
Скопируйте его в удобное место из каталога
Открыть его можно любым текстовым редактором, лично я предпочитаю
Notepad++
Открываем cbs.log и ищем ближайшую с конца строку с искомым нам файлом: в данном случае это userinit.exe
2017-10-26 23:38:05, Info CSI 000041c2 Hashes for file member SystemRootWinSxSwow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 mhHTAD/21TkyflJQwItWEJZr9UaGJebx3CamF6tUPf4=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c3 [SR] Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2017-10-26 23:38:05, Info CSI 000041c4 [SR] This component was referenced by [l:181]'Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore~31bf3856ad364e35~amd64~~10.0.15042.0.Microsoft-Windows-Client-Features-WOW64-Package-AutoMerged-onecore-Deployment'
2017-10-26 23:38:05, Info CSI 000041c5 Hashes for file member ??C:WindowsSysWOW64userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 K1Y9CBrNZsBLg7IsV/u9IEgYQ9xrk8frQkTDRknlyMA=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c6 Hashes for file member SystemRootWinSxSwow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235userinit.exe do not match actual file [l:12]'userinit.exe' :
Found: {l:32 mhHTAD/21TkyflJQwItWEJZr9UaGJebx3CamF6tUPf4=} Expected: {l:32 +bkkt7edQArLakaOJRdpxV8MvpFumMUD88WNy60YfA0=}
2017-10-26 23:38:05, Info CSI 000041c7 [SR] Could not reproject corrupted file ??C:WindowsSysWOW64userinit.exe; source file in store is also corrupted
Что мы видим?
Hashes for file member ….. do not match actual file
Эта запись гласит о том, что хэш сумма файла не совпадает с оригинальным.
Это и есть причина.
Где надо заменить файл?
SystemRootWinSxSwow64_microsoft-windows-userinit_31bf3856ad364e35_10.0.15042.0_none_f7a5dd2f3ed02235userinit.exe
Запомните, что SystemRootWinSxS — это адрес расположения хранилища данных.
Где SystemRoot эквивалентен переменной %SystemRoot% — путь до каталога windows на системном диске.
wow64 — это говорит нам о том, что речь идет о 64 разрядной системе и версии файла.
Строка
Cannot repair member file [l:12]'userinit.exe' of Microsoft-Windows-UserInit, version 10.0.15042.0
отображает так же служебную информацию, тут нам важно отметить что исходя из этой записи мы видим, что речь идет о версии файла 10.0.15042.0 (version 10.0.15042.0).
Это значит, что мы должный найти точно такую же версию файла и произвести замену в указанном каталоге.
Равно как и в каталоге C:WindowsSysWOW64userinit.exe
Тут есть особенность: так как произвести замену C:WindowsSysWOW64userinit.exe в загруженной системе вряд ли удастся, то вам либо придется сделать это из среды восстановления (в таком случае путь будет Х:Windowsuserinit.exe, где Х — это системный диск), либо из под Live CD/USB, либо — самый оптимальный вариант — просто производим замену в харнилище, а затем производим стандартную проверку sfc /scannow и система все сделает за вас сама.
То есть восстановит поврежденные файлы из хранилища.
* узнать версию файла можно кликнув по нему правой кнопкой мыши — свойства -Подробно.
==================================================
Далее разберем следующие строки лога cbs.log
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001dd [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001de [SR] Cannot repair member file [l:72{36}]"Microsoft.Build.Engine.resources.dll" of Microsoft.Build.Engine.resources, Version = 3.5.7600.16385, pA = PROCESSOR_ARCHITECTURE_MSIL (8), Culture = [l:10{5}]"ru-ru", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:b03f5f7f11d50a3a}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing
2017-10-29 21:28:40, Info CSI 000001df [SR] This component was referenced by [l:168{84}]"Microsoft-Windows-NetFx3-OC-Package~31bf3856ad364e35~x86~ru-RU~6.1.7601.17514.NetFx3"
2017-10-29 21:28:40, Info CSI 000001e0 Hashes for file member SystemRootWinSxSx86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71ccgpscript.exe do not match actual file [l:24{12}]"gpscript.exe" :
Found: {l:32 b:yHkCWhwG8j0IOFAIlAuv4/o6FtEO2tqdJOWtoUpBlck=} Expected: {l:32 b:GQ5AzLEfZ9lH3YTPo9vNHTiesdUCuZnB7IW2XQQmn1c=}
2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24{12}]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
Cannot repair member file … hash mismatch
Здесь так же говорится, что файл такой то не удалось восстановить и имеется несоответствие суммы хэш.
А вот запись in the store, file is missing говорит о том, что файл не просто поврежден, а полностью отсутствует в хранилище компонентов.
А вот эта строка
2017-10-29 21:28:40, Info CSI 000001e2 [SR] This component was referenced by [l:154{77}]"Package_40_for_KB3159398~31bf3856ad364e35~x86~~6.1.1.1.3159398-40_neutral_LDR"
нам говорит о том, что этот компонент связан с обновлением KB3159398.
Если найти в базе Microsoft соответствующую ссылку, то там в перечне изменяемых файлов мы как раз увидим, что обновление выполняет установку файла необходимой версии.
Другими словами решением будет — переустановка обновления KB3159398.
Вот еще один интересный вариант, который вам может попасться в логе:
9:15, Error CSI 00000187 (F) Failed on regenerating file [l:22{11}]"browaub.ttf"[gle=0x80004005]
Здесь говорится о том, что попытка восстановления файла была завершена с ошибкой 0x80004005
Не буду вас гонять по поисковикам и скажу сразу что в данном случае процесс блокировал брандмауэр Windows, как бы бредово это не звучало)
P.S.
Далее будут в таком же формате излагаться другие варианты, если есть вопросы и замечания пишите.
Ошибки Windows Update или SFC в Windows 10 сохраняются в файле CBS.log. В этой статье мы рассмотрим, что такое CBS.log, его расположение и как просмотреть файл CBS.log в Windows 10.
CBS или Component-Based Servicing — это файл, содержащий логи об установленных и удаленных компонентах Windows Update. Таким образом, информация о вашем Windows Update хранится в этих файлах журнала, даже System File Checker (SFC) пишет в CBS.log.
Файл CBS.log всегда будет присутствовать на вашем компьютере под управлением Windows. Если вам интересно и вы хотите проверить этот файл, запустите Проводник (Win + E) и перейдите в следующее место.
C:WindowsLogsCBS
Там вы увидите имя файла CBS.log. Это тот самый файл, который содержит информацию о Windows Update.
Как прочитать файл CBS.log
Вы можете просто открыть его с помощью Блокнота.
C:WindowsLogsCBS
Однако если вы хотите просто прочитать файл SFC, это не лучший вариант.
Для этого запустите Командную строку с правами администратора, введите следующую команду и нажмите Enter.
findstr /c:"[SR]" %windir%LogsCBSCBS.log >"%userprofile%Desktopsfclogs.txt
Это создаст файл sfclogs.txt на рабочем столе. Дважды щелкните по нему, чтобы открыть файл с помощью Блокнота, и прочитайте его. Вы увидите, что перед каждой транзакцией написано «SR». Это означает, что все показанные здесь программы относятся к SFC.exe.
Могу ли я удалить файл CBS.log?
Файл CBS.log необходим для вашего компьютера, поскольку каждый раз, когда вы устанавливаете новое обновление Windows, оно записывается в файл CBS.log. Однако если вам кажется, что он съедает огромный кусок вашего жесткого диска, то можете удалить его, так как это не окажет негативного влияния на ваш компьютер.
Перед этим обязательно отключите службу Windows Update.
Теперь вы можете удалить файл CBS.log, и вы не получите никакого сообщения об ошибке.
Поврежденные файлы регистрируются в журнале CBS.log
В некоторых Windows может возникнуть ошибка следующего содержания
Защита ресурсов Windows обнаружила поврежденные файлы, но не смогла исправить некоторые из них. Подробности содержатся в журнале CBS.Log windirLogsCBSCBS.log.
Чтобы исправить эту проблему, вам может потребоваться запустить DISM.
Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
В данной статье описан метод ручного восстановления хранилища компонентов Windows. Подобные описанному в данном посте методу восстановления работоспособности компонентной модели рождаются вовсе не от хорошей жизни, появляются они под воздействием многочисленных проблем с компонентной моделью операционной системы. Во многих случаях официальные подходы к восстановлению хранилища компонентов не помогают, помимо этого отсутствует какая бы то ни было внятная официальная документация, из чего складывается недопонимание структуры и принципов работы компонентной модели. При подобном отношении со стороны разработчиков абсолютно любые средства вернуть компонентную модель в работоспособное состояние приемлемы!! Как показывает практика, при всех стараниях разработчиков из Microsoft предоставить возможность конечному пользователю системы устранять возникающие проблемы в автоматическом режиме (при помощи специальных утилит), никогда полностью не будут исключены ситуации, в которых эти самые автоматизированные средства будут давать сбои. Причина тут кроется в симбиозе старых механизмов операционной системы и необходимостью постоянного внедрения новых (не оттестированных) технологий, должным образом не заботясь о приведении в надлежащее состояние всех связанных (участвующих) компонентов, что, в свою очередь, порождает огромное количество проблем.
В данной публикации речь пойдет о восстановлении компонента прямой заменой файлов. Фактически методом предусматривается прямая ручная замена поврежденных [кривых, неправильно функционирующих] файлов, являющихся причиной возникновения ошибок, а так же частей реестра. По этой методике, исправные файлы и соответствующие ключи реестра копируются с работоспособной станции-донора. Слабое место метода в том, что для реализации требуется наличие находящейся на том же уровне обновлений нормально функционирующей операционной системы той же версии/ревизии.
В процессе повествования постараемся описать общую методику, тем не менее, в статье будут присутствовать частные случаи из практики.
Определение виновника проблемы
В этом разделе мы опишем принцип поиска битых файлов в составе иерархии каталогов компонентной модели, являющихся причиной возникновения сбоев. Так же попытаемся классифицировать все возможные источники информации о сбойных модулях.
Ошибки в лог-файлах
Основной и пожалуй самый информативный источник о проблемах, связанных с компонентной моделью Windows — лог-файлы системных утилит обслуживания. Чаще всего ошибки выявляются при выполнении обновления системы, то есть установки обновлений/исправлений. Проявляются они в виде разнообразных ошибочных статусов в интерфейсе Центра обновления и окон обновлений. Тем не менее, сам по себе статус не малоинформативен, а вот более детальная информация попадает в специализированные файлы журналов. В данном разделе мы опишем методики поиска источников проблем в лог-файлах результатов работы системных утилит SURT/DISM/SFC/SFCFix, которые работают с хранилищем компонентов и системными каталогами а предмет восстановления целостности компонентной модели системы.
CheckSUR.log / DISM.log
Правила поиска ошибок в файлах %Windir%LogsCBSCheckSUR.log или %Windir%LogsDISMDISM.log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
================================= Checking System Update Readiness. Binary Version 6.1.7601.24499 2019—07—16 14:04 Checking Windows Servicing Packages Checking Package Manifests and Catalogs Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store (f) CSI Manifest Zero Length 0x00000000 winsxsManifestsx86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e.manifest x86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e (f) CSI Manifest Zero Length 0x00000000 winsxsManifestsamd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36.manifest amd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36 Summary: Seconds executed: 2948 Found 2 errors CSI Manifest Zero Length Total count: 2 Unavailable repair files: winsxsmanifestsx86_microsoft—windows—directx—direct3d11_31bf3856ad364e35_7.1.7601.16492_none_e2d7c9f5b7176f4e.manifest winsxsmanifestsamd64_microsoft—windows—ie—htmlrendering_31bf3856ad364e35_11.2.9600.17843_none_f5715a5c3755cc36.manifest |
Статусы (первый символ):
(f)
— фатальная ошибка;(w)
— предупреждение;(fix)
— указывает на ошибку, которая была исправлена; выводятся в виде отдельной строки сразу за строкой со статусом (f);
Оставшаяся часть строки содержит имя поврежденного файла и код ошибки.
В конце файла можно видеть секцию Unavailable repair files:, которая группирует все файлы, которые нужно будет заменять.
CBS.log
Несколько вариантов поиска ошибок в лог-файле %WinDir%LogsCBSCBS.log:
- Производим поиск строк, содержащих ключевое слово
Error
(с пробелом ДО или ПОСЛЕ). В их окружении можно найти указание на конкретные ошибки; - Выполняем команду
findstr /c:»[SR]» %windir%logscbscbs.log > c:sfcdetails.txt
в результате чего в корне диска C: будет создан файл
sfcdetails.txt
, включающий лишь строки исходного файла, содержащие префикс[SR]
(содержащие информацию об ошибках).
1: отсутствующие компоненты
. . . 2016—01—05 14:20:31, Info CSI 00001a68 [SR] Verifying 100 (0x0000000000000064) components 2016—01—05 14:20:31, Info CSI 00001a69 [SR] Beginning Verify and Repair transaction 2016—01—05 14:20:31, Info CSI 00001a6a [SR] Cannot repair member file [l:32{16}]«BRCI06UI.DLL.mui» of prnbr002.inf.Resources, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]«ru-RU», VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing 2016—01—05 14:20:31, Info CSI 00001a6b [SR] Cannot repair member file [l:32{16}]«prnbr002.inf_loc» of prnbr002.inf.Resources, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]«ru-RU», VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing 2016—01—05 14:20:31, Error CSI 00001a6c (F) STATUS_OBJECT_NAME_NOT_FOUND #28089837# from Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile(flags = (AllowSharingViolation), handle = {provider=NULL, handle=0}, da = (SYNCHRONIZE|FILE_READ_ATTRIBUTES), oa = @0x195c7d0—>OBJECT_ATTRIBUTES {s:48; rd:NULL; on:[100]»??C:WindowsWinSxSamd64_prnbr002.inf_31bf3856ad364e35_6.1.7600.16385_none_49c93aa2c4304e9eAmd64″; a:(OBJ_CASE_INSENSITIVE)}, iosb = @0x195c7b0, as = (null), fa = 0, sa = (FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE), cd = FILE_OPEN, co = (FILE_SYNCHRONOUS_IO_NONALERT|0x00004000), eab = NULL, eal = 0, disp = Invalid) 2016—01—05 14:20:31, Error CSI 00001a6d@2016/1/5:10:20:31.885 (F) d:win7sp1_gdrbasewcpsilmergedntuntsystem.cpp(2057): Error STATUS_OBJECT_NAME_NOT_FOUND originated in function Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile expression: (null) 2016—01—05 14:20:31, Error CSI 00001a6e (F) STATUS_OBJECT_NAME_NOT_FOUND #28089836# from Windows::Rtl::SystemImplementation::CDirectory::OpenExistingDirectory(...)[gle=0xd0000034] 2016—01—05 14:20:31, Error CSI 00001a6f (F) STATUS_OBJECT_NAME_NOT_FOUND #28089835# from Windows::Rtl::SystemImplementation::CDirectory_IRtlDirectoryTearoff::OpenExistingDirectory(flags = 0, da = (SYNCHRONIZE), oa = @0x195d0e0—>SIL_OBJECT_ATTRIBUTES {s:40; on:»Amd64″; a:(OBJ_CASE_INSENSITIVE)}, sa = (FILE_SHARE_READ|FILE_SHARE_WRITE), oo = (FILE_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_OPEN_FOR_BACKUP_INTENT), dir = NULL, disp = (null)) . . . |
В обрамлении видно строки, содержащие ключевые слова Cannot repair member file.. указывающие на то, что:
- содержимое файла не соответствует содержимому хранилища для файла и WRP пытается его восстановить, тем не менее..
- ..WRP не может восстановить файл описанного в строке компонента, потому что записи в реестре о нем присутствуют, а вот сам файл отсутствует в хранилище, о чем недвусмысленно намекает фрагмент строки ..file is missing.
Ниже по тексту можно найти статус STATUS_OBJECT_NAME_NOT_FOUND, указывающий на отсутствие подкаталога. В нашем случае, как видно из отчета, повреждению подверглась целая иерархия компонента, состоящая из подкаталогов и файлов, размещавшаяся в каталоге C:WindowsWinSxSamd64_prnbr002.inf_31bf3856ad364e35_6.1.7600.16385_none_49c93aa2c4304e9e. Заглянув в целевой каталог, я убедился, что он действительно пуст, а вот что за событие/действие удалило его содержимое, остается только гадать, хотя подобные инциденты в Windows-системах сплошь и рядом.
2: отсутствие манифеста
. . . 2019—05—27 14:32:54, Info CSI 000004f9 Looking for manifest in Backup Dir... 2019—05—27 14:32:54, Error CSI 000004fa (F) Unable to load manifest for component [ml:280{140},l:186{93}]«wow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9»[gle=0x80004005] 2019—05—27 14:32:54, Error CSI 000004fb@2019/5/27:11:32:54.653 (F) d:w7rtmbasewcpcomponentstorestorelayout.cpp(2712): Store corruption detected in function ComponentStore::CRawStoreLayout::FetchManifestContent expression: 0 FileHashMismatch on resource [120]«winsxsmanifestswow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9.manifest»[gle=0x80004005] 2019—05—27 14:32:56, Error CSI 000004fc (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #1525870# from CCSDirectTransaction::OperateEnding at index 6 of 185 (0x00000000000000b9) operations, disposition 0[gle=0xd015001a] 2019—05—27 14:32:56, Error CSI 000004fd (F) HRESULT_FROM_WIN32(14098) #1496294# from Windows::ServicingAPI::CCSITransaction::ICSITransaction2_AddComponents(Flags = 4, a = @0x1b50440, mp = @0x1b50c40, disp = 0)[gle=0x80073712] 2019—05—27 14:32:56, Info CBS Failed to add one or more component [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Error CBS Failed to complete component closure [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Info CSI 000004fe@2019/5/27:11:32:56.806 CSI Transaction @0x8abb930 destroyed 2019—05—27 14:32:56, Info CBS Perf: Resolve chain complete. 2019—05—27 14:32:56, Info CBS Failed to resolve execution chain. [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Error CBS Failed to process single phase execution. [HRESULT = 0x80073712 — ERROR_SXS_COMPONENT_STORE_CORRUPT] 2019—05—27 14:32:56, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24443.1.8, status: 0x80073712, failure source: Resolve, start state: Absent, target state: Installed, client id: WindowsUpdateAgent 2019—05—27 14:32:56, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 — ERROR_FILE_NOT_FOUND] . . . |
Ключевые слова, на которые в данном случае стоит обращать внимание:
- Manifest hash for component .. does not match expected value.
- Unable to load manifest for component ..
Из чего следует, что в данном случае возникла проблема с файлом wow64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.24382_none_0f268a5b523efde9.manifest, который является манифестом и располагается в поддиректории %SystemRoot%WinSxSManifests. При более близком изучении было выяснено, что указанный файл почему-то нулевой.
3: попытка удаления отсутствующего компонента
При попытках установки обновления безопасности мы можем столкнуться со следующей проблемой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
. . . 2019—05—28 12:20:09, Info CBS Exec: Unprojecting Package: Package_820_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2871_neutral_LDR, UninstallDeployment: amd64_006f1bee347aa0a86984388c82ccb379_31bf3856ad364e35_6.1.7601.23529_none_4683d079b6ce11b3 2019—05—28 12:20:09, Info CBS Exec: Uninstalling Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3 2019—05—28 12:20:09, Info CBS Exec: Uninstalling Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR 2019—05—28 12:20:09, Info CBS Exec: Unprojecting Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR, UninstallDeployment: amd64_0f4370f0564ad69cbf1c9624ac455552_31bf3856ad364e35_7.6.7601.23775_none_3e0e14d4d5b6573f 2019—05—28 12:20:09, Error CBS Failed. Attempted to uninstall a version of a non—driver component that is not installed, version: 0X700061db15cdf, component: amd64_microsoft—windows—w..lient—aux.resources_31bf3856ad364e35_7.6.7601.23775_ru—ru_306f57c17eac5f89, owner: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3.4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to mergecomponent [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS ComponentAnalyzerUninstallDeployment: Failed on update: 4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute item[0] in Package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3, Update: 4019265—2966_neutral_LDR [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute execution update. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to execute execution package: Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3 [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS Failed to prepare execution [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CSI 00000016@2019/5/28:09:20:09.916 CSI Transaction @0x1b71940 destroyed 2019—05—28 12:20:09, Info CBS Perf: InstallUninstallChain complete. 2019—05—28 12:20:09, Info CBS Failed to execute execution chain. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Error CBS Failed to process single phase execution. [HRESULT = 0x80004005 — E_FAIL] 2019—05—28 12:20:09, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24443.1.8, status: 0x80004005, failure source: Execute, start state: Staged, target state: Installed, client id: WindowsUpdateAgent 2019—05—28 12:20:09, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 — ERROR_FILE_NOT_FOUND] 2019—05—28 12:20:10, Info CBS Failed to add %windir%winsxspending.xml to WER report because it is missing. Continuing without it... 2019—05—28 12:20:10, Info CBS Failed to add %windir%winsxspending.xml.bad to WER report because it is missing. Continuing without it... 2019—05—28 12:20:10, Info CBS Reboot mark refs: 0 . . . |
Судя по всему установщик ругается на попытку удаления отсутствующего компонента amd64_microsoft-windows-w..lient-aux.resources_31bf3856ad364e35_7.6.7601.23775_ru-ru_306f57c17eac5f89 из пакета Package_846_for_KB4019265~31bf3856ad364e35~amd64~~6.1.1.3.4019265-2966_neutral_LDR. Сам компонент оказался на месте вместе со собственным манифестом, поэтому не понятно что же не нравится стеку обслуживания. Тем не менее что-то с этим пакетом явно не так.
Окна ошибок в интерфейсе
Часто ошибки наблюдаются пользователем визуально, в виде статусов ошибок в окне Центра обновления Windows, но иногда их можно увидеть в автономных информационных окнах. Например, отказ запуска множества исполняемых системных образов может выражаться в постоянно всплывающих окнах, в заголовке которых можно видеть «<имя_образа> (в контексте которого произошел сбой) — ошибочный образ», а в информационной части текст ошибки: X:XXXXXXxxxxxxxx.dll либо не предназначен для выполнения под управлением Windows или содержит ошибку. Попробуйте переустановить программу с помощью исходного установочного носителя или обратитесь к системному администратору или поставщику программного обеспечения за поддержкой:
В английских версиях в заголовке можно увидеть «<filename> — bad image», а описание звучит как: «<filename> is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.» Часто сообщение в окне дополняется специфической деталью сбоя, например кодом ошибки: «Error status 0xc000012f».
Данный класс ошибок имеет множество специфических особенностей, однако мы будем разбирать их в контексте (исключительно) повреждения системных библиотек, то есть метод сложно применим к различного рода сторонним приложениям, в которых аналогичные проблемы запуска связаны с основным исполняемым файлом и внутренними библиотеками приложения. Исходя из этого, метод нельзя отнести к универсальным.
В данном случае, как вы можете видеть на снимке экрана выше, у нас повреждена библиотека с именем ncrypt.dll, относительно неё мы и поведем дальнейшее повествование.
Тем не менее, в ваших случаях для выявления виновника сбоя потребуется исследовать лог-файл %WinDir%LogsCBSCBS.log и составить список проблемных файлов. И при не столь очевидных намеках на источник проблемы всегда начинайте исследование сбоя с анализа данного лог-файла.
Восстановление файлов
На предыдущем шаге мы определились в виновником ошибки, то есть определили имена поврежденных/удаленных файлов:
- Если мы наблюдаем ошибку в виде информационного окна в графическом интерфейсе, то виновником обычно является модуль, имя которого фигурирует в тексте (в примере выше: ncrypt.dll). В этом случае мы будем менять все без исключения ревизии проблемного файла;
- Если мы производим разбор лог-файлов отчетов сервисных утилит (CBS/DISM/CheckSur/SFCFix), то виновник(и) проблемы обычно предстают перед нами в виде списка конкретных файлов компонентов или обновлений;
Давайте в этом разделе опишем метод восстановления компонента прямой заменой файлов подробнее, разбив весь процесс на подразделы, подробно описывающие шаги.
Поиск рабочих экземпляров файлов
На этом этапе нам необходимо найти рабочие копии поврежденных или отсутствующих файлов. Существует несколько основных подходов по нахождению рабочих копий:
- Скопировать файлы с аналогичной, полностью работоспособной системы той же версии/редакции:
- при помощи поиска (в проводнике, или любым специализированным средством типа Far/Total Commander) по системному разделу (обычно C:) находим все каталоги, содержащие в своем названии искомую маску/имя (для случая выше: *ncrypt*). Сокращенный вывод:
. . .
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24417_none_6072150268f96612
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18741_none_bbe0d7630856b4a1
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24408_none_607de53868f06378
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18812_none_bc024957083d774c
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24387_none_602663a869322c82
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18869_none_bbd33bc1085fb462
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24384_none_602362ca6934e07d
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18923_none_bbf87b9b0844a9bb
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24357_none_6046d36c6919d8af
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18933_none_bbedabaf084cc5ac
C:Windowswinsxsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24335_none_605a72b0690b6e1f
C:Windowswinsxsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18939_none_bbf3ad6b08475db6
. . .
Соответственно, в найденных директориях располагаются и подпадающие под маску файлы (ncrypt.dll). Как можно увидеть по именам каталогов, они предназначаются для хранения различных ревизий компонента, включающего в себя файл ncrypt.dll. Но определить точно какая именно ревизия используется тем или иным приложением сложно, поскольку используются обычно сразу несколько ревизий.
Можно произвести замену файлов и в системных каталогах, таких как C:Windowssystem32. Хотя делать это не обязательно, поскольку файлы там представляет собой жесткие ссылки на оригиналы в хранилище WinSxS, а они восстанавливаются автоматически при проверке через sfc).
- в ходе того же самого поиска, кроме директорий, выявляются и файлы, которые располагаются по следующим путям (вывод сокращен):
. . .
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24408_none_bc9c80bc214dd4ae.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18741_none_5fc23bdf4ff9436b.manifest
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24387_none_bc44ff2c218f9db8.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18812_none_5fe3add34fe00616.manifest
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24384_none_bc41fe4e219251b3.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18869_none_5fb4a03d5002432c.manifest
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24357_none_bc656ef0217749e5.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18923_none_5fd9e0174fe73885.manifest
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24335_none_bc790e342168df55.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18933_none_5fcf102b4fef5476.manifest
C:WindowswinsxsManifestsamd64_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.24308_none_bc9c7ed6214dd787.manifest
C:WindowswinsxsManifestsx86_microsoft—windows—ncrypt—dll_31bf3856ad364e35_6.1.7601.18939_none_5fd511e74fe9ec80.manifest
. . .
- Разархивировать требуемые файлы из пакета обновления.
- Для этого определяем имя обновления KBXXXXXXXX, в состав которого входят обнаруженные на предыдущем шаге файлы, из Центра загрузок Майкрософт или Центра обновления Майкрософт или попросту используя поиск.
- Распаковываем содержимое выкачанного только что пакета обновления (.msu) в произвольную (временную) директорию:
expand -F:* windows6.1-kb4019265-x64_c21fb9314da54cf6bd7972581da3159535f55aec.msu c:temp4019265
- после чего в целевой директории мы увидим следующее содержимое:
- .xml-файл — метаданные-описатели пакета обновления (.msu). Утилиты установки используют .xml-файл при выполнении установки в автоматическом режиме;
- .cab-файл — архив с данными (полезная нагрузка) обновления;
- *-pkgProperties.txt — файл с описанием свойств пакета (дата релиза, архитектура, тип, ссылка на KB и прочее);
- WSUSSCAN.cab — файл оффлайн-сценария проверки;
- затем выполняем еще одну команду, теперь уже над только что распакованным .cab-файлом:
expand -F:* windows6.1-kb4019265-x64.cab c:temp4019265extracted
- после этого необходимые нам для замены файлы будут располагаться в директории c:temp4019265extracted
Установка безопасности для каталогов/файлов
В операционных системах Windows директория компонентной модели WinSxS (и вложенные в неё объекты) защищены на уровне разрешений файловой системы. Поэтому следующим шагом нам потребуется взять владение каталогов WinSxS для собственной учетной записи (под которой выполняете восстановление), затем выставить полные разрешения для этой учетной записи, а далее применить их для всех вложенных папок/файлов.
Выполнять приведенные здесь действия следует из-под учетной записи с правами локального Администратора (с эскалацией привилегий).
Сделать это можно двумя способами:
- Через проводник. Нажимаем правую клавишу мыши на директории WinSxS — пункт Свойства — вкладка Безопасность — кнопка Дополнительно — вкладка Владелец — кнопка Изменить — ставим курсор на нужного нам пользователя, активируем чекбокс Заменить владельца подконтейнеров и объектов — жмем кнопку Применить. После окончания процесс закрываем все открытые окна через кнопку OK, повторно жмем правую клавишу мыши на директории WinSxS — вкладка Безопасность — во фрейме Группы и пользователи кнопка Изменить — выделяем курсором группу Администраторы — ставим разрешения Изменение и Запись;
- Через командную строку. Из командной строки (cmd) выполняем следующие команды:
takeown /f c:windowswinsxs*
даем группе Администраторы (в которую, я надеюсь, включена ваша учетная запись) полный доступ к целевому файлу, для этого выполняем следующую команду:
icacls c:windowswinsxs* /GRANT АДМИНИСТРАТОРЫ:F
Копирование каталогов/файлов
И последним шагом выполняется непосредственно копирование (с заменой) с донорской (исправной) системы на целевую (проблемную) содержимого всех обнаруженных на предыдущих шагах каталогов и файлов, не забывайте так же и .manifest-файлы.
Что именно мы копируем:
- Если присутствуют пара
.cat
или.mum
файлов компонента, то скопировать их в каталог %WinDir%servicingPackages (с донора на цель). Копировать именно всю пару, даже если поврежден всего-лишь один из них (и один из них отображается в лог-файле); - Если к паре
.cat
/.mum
файлов присутствует еще и.ses
-файл, то копируем и его; - Если присутствуют одноименные манифесты (
.manifest
-файл(ы)) компонента, то скопировать их в каталог %WinDir%WinSxSManifests (с донора на цель); - Если присутствуют остальные подкаталоги/файлы компонента, то скопировать их в каталог компонента %WinDir%WinSxSимя_компонента (c донора на цель);
- Если присутствуют файлы в директории C:WindowsSystem32, то можно скопировать и их (с донора на цель). Хотя делать это и не обязательно, поскольку жесткие ссылки восстанавливаются при проверках через sfc;
Производить операции копирования файлов (во избежание блокировок на работающей системе) можно при помощи любого загрузочного LiveCD, предварительно скопировав все переносимые файлы на флешку (или любой иной носитель). Выполнять же само копирование можно как при помощи командной строки, так и выполнить перемещение с помощью проводника Windows.
Восстановление реестра
Обычно файловых исправлений бывает достаточно для того, что бы устранить ошибки в компонентной модели Windows, соответственно, исправить ошибки, происходящие в процессе установки обновлений. Тем не менее, бывают случаи, когда повреждается еще и реестровая часть компонента, тогда требуется производить дополнительные действия по восстановлению:
- Запустить командную строку (cmd);
- Подключить динамический куст реестра HKLMCOMPONENTS командой:
reg load HKLMCOMPONENTS C:WINDOWSSYSTEM32CONFIGCOMPONENTS
если выскакивает ошибка:
процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
то куст уже подключен.
- Запустить редактор реестра regedit;
- В открывшемся окне нажать Ctrl+F и ввести имя компонента, который вы восстанавливали на предыдущем шаге;
- В случае отсутствия каких либо записей реестра, выполнить импортирование соответствующих записей реестра о компоненте с рабочей машины;
- Выполнить команду:
reg unload HKLMCOMPONENTS
- выполнить перезагрузку операционной системы;
Have you heard about CBS.log? In this post, you will get a detailed introduction of CBS.log Windows 10. Besides, MiniTool software provides several feasible methods to help you fix CBS.log corrupt issue.
You may be not familiar to CBS.log file, but you might experience certain problems related to it. In the following contents, I will give you detailed information about CBS.log file and provide some effective solutions to CBS.log corrupt issue.
Without further ado, let’s have a close look at CBS.log at first.
What Is CBS.log
CBS refers to Component-Based Servicing. Some components might be installed or uninstalled during Windows update, and CBS.log is a file that includes logs about these involved components. This file logs detailed information from your most recent Windows installed updates, and thus it can be used for troubleshooting issues related to your updates.
What’s more, the built-in tool System File Checker also writes to this log file. In other words, when you use SFC.exe, the details of involved verification operation and repair operation will be written to the CBS.log file.
Where is the CBS.log file stored on your device?
Actually, you can find it in the path of %windir%LogsCBSCBS.log. The %windir% means the directory where your Windows is installed, typically C:Windows. So, the common location of CBS.log file is C:WindowsLogsCBSCBS.log.
Why and How to Read CBS.log
SFC.exe is a nice utility to resolve various issues caused by corrupted or missing system files. However, sometimes the problematic system files cannot be repaired by SFC scan. When the scanning process completes, you might receive the following message: Windows Resource Protection found corrupt files but was unable to fix some of them. Details are included in the CBS.Log windirLogsCBSCBS.log.
This message refers users to CBS.log file but doesn’t give access to view it, which makes users frustrated. How to read CBS.log? Commonly, we can go to the directory where CBS.log file is stored and double-click it to open it. However, things might be a little complicated if you want to read SFC logs only.
Don’t worry. To analyze the log file generated by SFC.exe program, you can follow the steps below.
Step 1: Press Windows + R to open Run window.
Step 2: Input cmd and press Ctrl + Shift + Enter to run Command Prompt as administrator.
Step 3: Type the following command line and press Enter to execute it: findstr /c:»[SR]» %windir%LogsCBSCBS.log >»%userprofile%Desktopsfclogs.txt
In CBS.log file, every SFC.exe program entry has a tag of [SR]. By performing this command, a new file named sfclogs will be created on your Desktop and all the SFC logs will be filtered out and stored altogether in this file.
Open this file with Notepad, and you can view and analyze the details of the scanned system files and information about the files that couldn’t be repaired during SFC scan.
Is It Safe to Delete CBS.log File?
It is harmless to leave the CBS.log file on your drive and you can let it alone. But sometimes, you may find that your drive is heavily fragmented after Windows update and the CBS.log is eating up your disk space. Under this situation, you might need to delete the CBS.log file.
You can feel free to delete it as this operation does no harm to your computer.
When you are trying to delete CBS.log file, you might receive an error saying that this file is in use. The Windows Update service might be responsible for this issue, because it is always ready to write update information to CBS.log file. So, you have to disable it before deleting the file.
Here is a tutorial on how to disable the service and then delete CBS.log file.
Step 1: After invoking Run dialog, input services.msc and press Enter to open Services app.
Step 2: Locate Windows Update service. Right-click the service and choose Stop to disable it temporarily. Then, exit the window.
Step 3: Open your File Explorer and go to your system drive. Then, navigate to Windows > Logs > CBS folder. You may need to check Hidden items option under View tab in tool bar to show Logs folder.
Note: You can copy and paste the path %windir%LogsCBS to the address bar to locate the folder quickly. Alternatively, you can use the search feature of File Explorer. If it doesn’t work, check this post.
Step 4: Open CBS folder, and delete the CBS.log file or all files in it.
Step 5: After you have deleted the log file safely, open the Service app again to enable Windows Update service.
After that, the file will be recreated with everything it needs but won’t largely take up your disk space.
How to Fix CBS.log Corrupt Issue in Windows 10
If Windows Resource Protection found corrupt files but was unable to fix after you run SFC scan, perhaps CBS.log corrupt issue occurs on your computer.
If possible, you can ignore this error and fix the found corrupt system files manually instead. Just open CBS.log file and find out the corrupted files that SFC cannot fix by searching the word corrupt. And then type the query in your browser to look for solutions.
But this may be too complicated for most users. Alternately, you should fix this issue as soon as possible. Here I put together 4 solutions to this issue and you can try them one by one until you resolve the problem. Let’s see the details.
4 Methods to Fix CBS.log Corrupt Issue in Windows 10
- Scan your computer for malware
- Run DISM command
- Reset your computer to factory settings
- Check for hard drive issue
Fix 1: Scan Your Computer for Malware
If you receive the error, it is very likely that your computer has been infected by malware. In this case, you need to scan your computer deeply for malware. You can use your preferred third-party antivirus or Windows built-in utility Windows Defender.
You can follow the steps below to perform a deep offline scan with Windows Defender for your computer.
Step 1: Press Windows + I to open Windows Settings.
Step 2: Go to Update & Security > Windows Security, and then choose Virus & threat protection from the right pane.
Step 3: In the pop-up window, click Scan options.
Step 4: Choose Windows Defender Offline scan option and click Scan now button. This will restart your device, so please save everything you’re doing in advance.
Step 5: When you get a confirmation window, make sure you have saved everything and then click OK button to continue.
This operation will take about 15 minutes and please wait patiently until the process is completed. Once it’s done, open Command Prompt as administrator and try running SFC scan to check if the error is resolved. If it still exits, just move to the next solution.
Fix 2: Run DISM Command
If you are sure that your computer is free from malware but you are still stuck with the same error, you can try running DISM command. You can repair your Windows 10 image with DISM (Deployment Image Servicing and Management) tool and fix system corruption easily.
This command can be executed alongside the SFC scan.
After you have completed SFC scan in Command Prompt, type the following command lines and press Enter after each:
- dism /online /cleanup-image /checkhealth
- dism /online /cleanup-image /restorehealth
Once the scanning process is finished, restart your computer and check if the issue disappears.
Fix 3: Reset Your Computer to Factory Settings
Another way to fix CBS.log Windows 10 corrupt issue is to factory reset your computer. This operation will reinstall your Windows but you can choose whether remove your personal files or not. So, you can feel free to try this method.
Step 1: Open Settings and choose Update & Security category.
Step 2: Switch to Recovery tab and click Get started under Reset this PC section.
Step 3: In the new window, you are required to choose an option to reset your computer. You can choose Keep my files to remove installed apps and customized settings but keep personal files, or choose Remove everything to remove them all.
Step 4: When you come to the Ready to reset this PC page, confirm your resetting settings and click Reset button. You can click the given link to check the apps to be removed.
Note: If you chose Remove everything, you will get Additional settings page where you can make some changes for the settings of your selected resetting option.
The process will take some time and you need to wait for it to complete. After your computer restarts, check if the issue is fixed. If yes, you can reinstall these removed apps now; if not, try the next workaround.
Fix 4: Check for Hard Drive Issue
Sometimes, your hard drive might be experiencing certain issues, typically like bad sectors . This will also prevent SFC scan from repairing certain system files and thus you might receive CBS.log error. If it is applicable to your case, you need to take some measures to check for hard drive errors.
You can perform this operation in File Explorer. In this tool, right-click the drive which needs to be checked in Devices and drives section, and choose Properties. Go to Tools tab and click Check button to check the drive for file system errors.
Also, you can go to Command Prompt to check your hard drive with CHKDSK command. Just run this tool as administrator and execute the command chkdsk * : /f /r (* refers to the drive letter of the target drive).
Alternatively, you can choose to use a reliable third-party program – MiniTool Partition Wizard is recommended for you. The instruction on how to check hard drive with this utility is also displayed below. You can download and install MiniTool Partition Wizard on your computer to have a try.
Free Download
Step 1: Launch the program to get its main interface.
Step 2: Select the drive on which you want to perform the operation, and choose Check File System feature from the left tool bar.
Note: This feature only works on drives with drive letter. So, you should make sure you have assigned a drive letter for this drive.
Step 3: When you get a new window, choose Check & fix detected errors option and click Start button.
Then, this tool will start scanning your drive and repair the detected errors. If the system drive is selected, you will be required to restart your computer, and this drive will be checked the next time the system restarts.
I have gotten the detailed information about CBS.log in this post, and benefited a lot from the given solutions to CBS.log issue. Share with you all and hope this post is helpful for you.Click to Tweet
Bottom Line
In conclusion, this article has introduced what CBS.log is and how to read and delete CBS.log file. Besides, 4 methods to fix CBS.log Windows 10 issue are also displayed.
Have you fixed the issue with the solutions provided in this post? Do you have any other workarounds to fix this issue? Please share with us on the following comment zone. You can also contact us via [email protected].
Cbs.Log Windows 10 FAQ
How do I view the CBS.log in Windows 10?
To view CBS.log, you can go to the path %windir%LogsCBSCBS.log and double-click CBS.log file to open it.
To view the logs generated by SFC in CBS.log file, you can run cmd as administrator, execute the command findstr /c:»[SR]» %windir%LogsCBSCBS.log >»%userprofile%Desktopsfclogs.txt. Then, double-click the newly-created file on the Desktop to open it.
How do I clear my CBS.log?
To clear your CBS.log file, just follow the steps below:
- Disable Windows Update service
- Go to File Explorer to delete CBS.log.
- Re-enable Windows Update
- File is recreated with everything it needs.
Besides, you can also open the file and remove some of the entries at the beginning of the file but leave the end bit to clear the CBS.log file.
При проверке целостности системных файлов с помощью утилиты SFC пользователь может получить сообщение об обнаружении ряда повреждённых файлов, восстановить которые не удалось. Данные о таких файлах система записывает в файл CBS.log, открыть который также не удаётся по различным причинам (в частности из-за повреждения данного файла). В данном материале я разберу, что предпринять в такой ситуации, и каким образом исправить дисфункцию windirLogsCBSCBS.log повреждён на вашем ПК
Содержание
- Что такое CBS.log?
- Как исправить ошибку WindirLogsCBSCBS.log
- Альтернативные решения при повреждении CBS.log
- Заключение
Что такое CBS.log?
Системная утилита SFC, предназначенная для проверки целостности системных файлов ОС Виндовс, записывает данные по проверке и восстановлению файлов в файл CBS.log. Последний расположен по адресу %windir%LogsCBS, и может быть недоступным при попытке просмотреть его содержимое стандартным способом (через «Блокнот», файловый менеджер и др.).
Это может быть связано с закрытием доступа к данному файлу со стороны Виндовс, а также с повреждением данного файла по различным причинам (вирусы, осыпание диска, другие релевантные причины).
Для решения возникшей проблемы с повреждением windirLogsCBSCBS.log необходимо воспользоваться алгоритмом, который я приведу ниже.
Как исправить ошибку WindirLogsCBSCBS.log
В случае, если доступ к файлу закрыт на уровне системных настроек Виндовс, рекомендуется, запустит командную строку с правами администратора, в ней набрать:
после чего нажать на ввод. Файл данного лога будет сохранён на рабочем столе вашего PC, и вы сможете его просмотреть через самый обычный «Блокнот». Во время данного просмотра, в частности, вы можете увидеть, какие именно файлы утилита SFC посчитала повреждёнными, и скопировать их из стабильной системы.
Если же после запуска и работы утилиты SFC система выдала текст о невозможности восстановления ряда файлов, и записи информации об них в файле CBS, тогда выполните следующее:
Запустите командную строку от имени админа, и в ней последовательно наберите (обратите внимание на пробелы, они должны быть так, как приведено мной ниже:
затем
а уже потом
Дождитесь полного окончания данных процедур (могут занять полчаса-час), а затем перезагрузите ваш PC. После этого всё должно стабильно работать.
Альтернативные решения при повреждении CBS.log
В ряде случаев причиной возникновения проблемы является действие вирусных программ и осыпание диска. В первом случае рекомендуется проверить ваш PC с помощью соответствующего антивирусного инструментария (например, Доктор Веб Кюрейт, AdwCleaner и других аналогов). Затем перезагрузить ПК, и постараться вновь получить доступ к данному лог-файлу.
В случае осыпания диска, рекомендую воспользоваться такими утилитами как «Victoria HDD», «HDD Regenerator» и других, которые проверят ваш диск на наличие битых секторов, и при возможности восстановят его.
Заключение
В данном материале мной было разобраны способы того, как исправить повреждённый файл по адресу windirLogsCBSCBS.log. В большинстве случаев достаточно приведённых мной выше команд, чтобы полноценный доступ к данному файлу был восстановлен, и вы получили в пользование всю статистическую информацию, находящуюся в данном файле.
Download Windows Speedup Tool to fix errors and make PC run faster
You may stumble upon an error in Windows 11/10 when Windows Update or System File Checker fails Such errors are stored, inter alia, in the CBS.log file. In this article, we will see what is CBS.log, its location, and how to view a CBS.log file in Windows 11/10.
CBS or Component-Based Servicing is a file that has logs about the installed and uninstalled Windows Update component. So, information of your Windows Update is stored in these log files, even the System File Checker (SFC) writes to CBS.log.
CBS.log file location
CBS.log file will always be present on your Windows computer. If you are curious and want to check the file, launch File Explorer (Win + E), and navigate to the following location.
C:\Windows\Logs\CBS
There you will see a file name, CBS.log. This is the very file that contains the information about your Windows Update component.
How to read CBS.log file
To read log files, you can just go to the following location and read the log file.
C:\Windows\Logs\CBS
However, if you just want to read the SFC file, it is not the best option.
For that, launch Command Prompt as an administrator, type the following command and hit Enter.
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfclogs.txt
This will create a file, sfclogs.txt, on your desktop. Double-click on it to open the file with Notepad and read the file. You will see “SR” written in front of every transaction. This means all the programs shown here are of SFC.exe.
Can I delete CBS.log file?
CBS.log file is essential to your computer as every time you install a new Windows Update, it writes to the CBS.log file. However, if you think it is eating a huge chunk out of your Hard Drive, you can delete it as it won’t have an adverse effect on your computer.
Before doing that, make sure to disable the Windows Update service from Services (that you can launch from the Start Menu).
Now, you can delete the CBS.log file and you won’t receive any error message.
How to fix corrupt files logged in CBS.log file?
Some Windows may see an error saying as following
Windows Resource Protection found corrupt files but was unable to fix some of them, Details are included in the CBS.Log windir\Logs\CBS\CBS.log.
To fix this issue, you may need to Run DISM and ChkDsk.
Read Next: SFC not working, will not run or could not repair the corrupt file.
Yusuf is an Engineering graduate from Delhi. He has written over 1000 technical articles and has knowledge of programming languages including Java, and C++, and technologies such as Oracle 12C and MsSQL. Troubleshooting Windows is his favorite past-time.