Программа защиты ресурсов не может восстановить файлы — решение

SFC не может восстановить некоторые файлы и CBS.log — объяснение и решенияПри восстановлении системных файлов с помощью команды sfc /scannow в Windows 11/10 или предыдущих версиях ОС, некоторые пользователи могут столкнуться со следующим сообщением «Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Подробные сведения см. в файле CBS.log».

В этой инструкции подробно о том, почему это может происходить, как всё-таки восстановить файлы, а также о том, как использовать CBS.log, чтобы узнать, с какими именно файлами возникла проблема и в чём она заключается.

Основная причина ошибки восстановления и простое решение

Сообщение: Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Подробные сведения см. в файле CBS.log

Самая частая причина проблемы с невозможностью восстановления системных файлов — повреждение хранилища компонентов Windows 11/10. При использовании sfc /scannow служба защиты ресурсов:

  1. Ищет повреждения целостности системных файлов, например библиотек DLL в папке C:\Windows\System32
  2. Находя такие повреждения или отсутствующие файлы «пробует» восстановить их, используя хранилище компонентов (также известное как «Образ системы») — эталонные файлы в папке C:\Windows\WinSxS

Если файлы отсутствуют или повреждены и в хранилище, результатом будет то самое сообщение «Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них».

Самое простое решение — попробовать восстановить хранилище компонентов, а уже после этого выполнить команду sfc /scannow. Именно это будет правильным порядком действий, хотя во многих инструкциях в Интернете даётся обратная, не совсем логичная очередность действий.

В командной строке, запущенной от имени администратора, по порядку выполните две команды:

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Первая восстановит хранилище компонентов, а вторая — системные файлы в текущей ОС Windows.

Учитывайте, что выполнение первой команды может занять очень продолжительное время и может показаться, что она «зависла» на определённом проценте. Наберитесь терпения.

Работа с файлом CBS.Log

Если предыдущий вариант не сработал, возможно, причина глубже: например, есть проблемы с записью файлов на диск или другие нюансы. Здесь может помочь упоминаемый в сообщении файл журнала CBS.Log.

Его не следует читать полностью, поскольку он содержит множество не имеющих отношения к попытке восстановления системных файлов сведений: в него записывается всё, связанное с обслуживанием компонентов.

Мы можем извлечь только интересующие нас строки с помощью следующей команды, запущенной в командной строке от имени администратора:

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > %userprofile%\Desktop\sfcdetails.txt

Извлечение данных SFC из CBS.Log

В результате выполнения команды на рабочем столе появится файл sfcdetails.txt, содержащий информацию по ходу восстановления, где мы можем найти строки, указывающие на то, какой именно сбой и при восстановлении каких файлов произошёл (найти такие строки можно, используя поиск по слову «Cannot»):

Ошибки в журнале выполнения System Repair

Например, в отчете выше, мы видим конкретную повреждённую библиотеку DLL и информацию о том, что поврежден и файл в системе и исходный файл в хранилище (Source file ins store is also corrupted).

Если вы не можете разобраться самостоятельно, то практически любая современная LLM (языковая модель, нейросеть) сравнительно легко прочтёт содержимое файла журнала за вас и даст рекомендации:

Анализ CBS.Log с помощью нейросети

Разобравшись, в чём именно дело, можно предпринять те или иные действия по решению проблемы: от попытки ручной записи повреждённого файла до вариантов восстановления, описанных в следующей части этого материала.

Дополнительная информация

Некоторые дополнительные сведения, которые могут быть полезными в контексте рассмотренной темы:

  • Если вы столкнулись с рассматриваемой проблемой при оффлайн-сканировании, например, при использовании команды:
    sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows

    учитывайте, что данные записываются в журнал CBS.Log целевой системы, то есть в команде

    findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > %userprofile%\Desktop\sfcdetails.txt

    потребуется вручную указать путь к целевой папке Windows вместо %windir% а также точное желаемое место сохранения итогового файла вместо относительного пути %userprofile%

  • В случае проблем восстановления в самой ОС могут сработать возможности восстановления системных файлов с помощью WinPE.
  • При невозможности восстановления хранилища компонентов и системных файлов вы можете прибегнуть к восстановлению с помощью Центра обновления (только Windows 11) или к «Обновлению на месте» — это исправит системные файлы практически гарантированно при отсутствии аппаратных проблем.

Надеюсь, разобраться с восстановлением системных файлов удалось, а сам процесс стал более понятным. Если остаются вопросы — вы можете задать их в комментариях ниже, постараюсь помочь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *