- Здравствуйте админ! На моём компьютере установлена Windows 7 и периодически на ней выходят различные ошибки, также система может зависнуть или перезагрузиться в самый неподходящий момент. Вы посоветовали мне проверить винду на вирусы и произвести проверку целостности системных файлов. Вирусов у меня не оказалось, а вот с проверкой целостности всё оказалось намного интересней. Запускаю командную строку от имени администратора и ввожу команду sfc /scannow и через некоторое время командная строка выдаёт: «Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них», что означает повреждение хранилища системных компонентов Windows 7. Знаю, что это самое хранилище можно в Windows 8.1, 10 восстановить с помощью системы обслуживания образов Dism, командами: Dism.exe /Online /Cleanup-image /ScanHealth и Dism.exe /Online /Cleanup-image /RestoreHealth. Думал, что в Windows 7 тоже так можно, ведь там есть Dism, но при вводе команды «Dism.exe /Online /Cleanup-image /ScanHealth» у меня выходит ошибка: «Ошибка 87. Параметр restorehealth не распознан в этом контексте».
- Здравствуйте админ! Произвожу восстановление целостности системных файлов Windows 7 с помощью sfc /scannow и выходит сообщение: «Для завершения восстановления системы требуется перезагрузка. Перезапустите систему Windows и выполните sfc еще раз», перезагружаюсь и опять тоже самое. Подумал, что это из-за повреждения хранилища компонентов Windows 7, хочу восстановить это хранилище, запускаю командную строку от имени администратора и ввожу команду: «Dism.exe /Online /Cleanup-image /ScanHealth» и выходит: «Ошибка 87. Параметр restorehealth не распознан в этом контексте». Что делать дальше?
Восстановление повреждённого хранилища системных компонентов возможно не только в Windows 8.1/10, но и в Windows 7
Привет друзья! В Windows 7, как и в Windows 8.1, 10 существует хранилище системных компонентов операционной системы — папка WinSxS, находящаяся по адресу C:WindowsWinSxS.
Если по каким-либо причинам (вирусы, системный сбой, нарушения в файловой системе) операционная система теряет важный системный файл, то этот файл тут же заменяется его работоспособной версией из хранилища системных компонентов (папки WinSxS).
При необходимости, пользователь сам может запустить проверку целостности системных файлов операционной системы с помощью командной строки (запущенной от администратора) командой sfc /scannow. Средство sfc произведёт проверку целостности системных файлов и если повреждения обнаружатся, то результат будет выглядеть так: «Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила», но в некоторых случаях ответ будет другим: «Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них», что означает повреждение хранилища системных компонентов операционной системы (папки WinSxS).
В этом случае вводим в командной строке (запущ. от администратора) команду:
Dism.exe /Online /Cleanup-image /ScanHealth
которая в свою очередь проверит и восстановит целостность самого хранилища системных компонентов
Windows 7.
Примечание: Начиная с Windows 8 операционная система получила возможность восстанавливать поврежденное хранилище компонентов с помощью системы обслуживания образов Dism. Для восстановления хранилища нужно ввести две команды:
Dism.exe /Online /Cleanup-image /ScanHealth — проверяет состояние целостности хранилища компонентов.
Dism.exe /Online /Cleanup-image /RestoreHealth — восстанавливает хранилище.
В Windows 7 тоже существует данная возможность, но в Windows 7 обе эти команды объединены в одну и для восстановления хранилища компонентов необходимо воспользоваться только командой
Dism /Online /Cleanup-Image /ScanHealth, но эта команда не сработает и вы получите ошибку: «Ошибка 87. Параметр ScanHealth не распознан в этом контексте», если в вашей Windows 7 не установлено обновление KB2966583.
Скачайте данное обновление KB2966583 по ссылке
https://support.microsoft.com/ru-ru/kb/2966583
выберите обновление в соответствии с разрядностью вашей операционной системы, например, у меня установлена Windows 7 64-бит, значит я скачаю пакет для всех поддерживаемых 64-разрядных версий Windows 7.
Загрузить пакет.
Выбираем язык — Русский и жмём Download.
Внимание: Если у вас вышла из строя ОС, или тем более серверная ОС, прежде чем приступить к любым процедурам по восстановлению, сделайте резервную копию текущего состояния
Да, сделать бэкап неработоспособной системы.
Но, гипотетически, системы имеющей на текущий момент только одну проблему.
А сколько, в процессе восстановления, вы можете привнести неисправностей, в итак нерабочую систему, неизвестно никому. Так же как и не удастся проследить цепочку примененных вами действий в стрессовой ситуации.
Так что в первую очередь делаем бэкап, используя например Acronis True Image.
Занимаемся вредительством
Если у вас нет проблем с операционкой, но вы хотели бы поупражняться в восстановлении системных файлов, попробуйте выполнить следующее:
- Переходим в папку System32
cd C:WindowsSystem32
По умолчанию владельцем файлов в папке System32 является служебный пользователь TrustedInstaller.
Что бы беспрепятственно удалить из системной папки любые(незадействованные в данный момент) файлы, вам нужно назначить себя владельцем и выдать своему пользователю полные права на файл.
- Владельца можно изменить как из GUI, так и через CMD:
# Назначаем себя владельцем takeown /f C:windowssystem32WF.msc # Даем себе полные права на файл icacls C:windowssystem32WF.msc /GRANT ADMINISTRATORS:F
- Удаляем файл
del C:windowssystem32WF.msc
Файл удалили. Теперь можно приступать собственно к восстановлению.
Восстановление в автоматическом режиме
SFC (System File Checker)
Пробуем выполнить команду
sfc scannow
Дождитесь сообщения:
Программа защиты ресурсов windows обнаружила поврежденные файлы и успешно их восстановила
Так же можно запустить проверку только для одного конкретного файла:
sfc /scanfile=C:windowssystem32WF.msc
Если команда не выполняется, и выдает ошибку на подобии:
Защита ресурсов Windows не может выполнить запрошенную операцию
то мы хотя бы может просмотреть какие файлы повреждены, вручную открыв лог последнего сканирования:
С:WindowsLogsCBSCBS.log
Так же, для упрощения поиска ошибок в этом файле лога, можно воспользоваться следующей командой:
find "error" WindowsLogsCBSCBS.log
Восстановление в ручном режиме
В случае если автоматическое восстановление окончилось ошибкой, можно попробовать заменить поврежденные файлы, о которых мы узнали из лога проверки SFC, файлами из заведомо рабочей системы, аналогичной версии и ревизии Windows.
При выполнении команды sfc /scannow из CMD в рабочей системе некоторые файлы будут задействованы и поэтому не смогут быть обработаны. По этой причине лучше перейти в среду восстановления и предпринимать дальнейшие действия по восстановлению уже оттуда.
Для перехода к среде восстановления нужно:
1) Вставить дискфлешку с Windows той же версии, что и восстанавливаемая система
2) Выполнить перезагрузку
3) Запуститься с диска и открыть командную строку
После открытия командной строки первым делом определим буквы разделов:
wmic logicaldisk list brief
Конечно для этого можно использовать diskpart, но с wmi мы уложимся в меньшее количество команд.
Да и для общего развития с wmi полезно поработать.
Оффлайн восстановление системы
Если вы проводите восстановление из среды восстановления или LiveCD(USB)
sfc /scannow /offwindir=d:windows /offbootdir=d:
/offwindir — переключатель для восстановления файлов внешней системы. Нужен что бы указать расположение папки Windows
/offbootdir — переключатель должен указывать на загрузочный раздел
DISM
Утилита DISM поможет в некоторых случаях, когда SFC не может восстановить системные файлы.
Ведь SFC должна откуда то брать восстанавливаемые файлы.
Таким местом является папка C:WindowsWinSxS
Но если отсутствует или повреждено и это хранилище, то необходимо будет сначала восстановить его.
# Проверка целостности хранилища dism /Online /Cleanup-Image /ScanHealth
С помощью этой команды можно убедиться что файлы хранилища действительно повреждены.
# Заменить файлы на целостные, без проверки dism /Online /Cleanup-Image /RestoreHealth
Если выполнить эту команду в среде окружения Windows, то недостающие файлы будут загружены из интернета или сервера WSUS.
В случае, если команда восстановления хранилища компонентов не работает, по той или иной причине,
нужно указать файл install.wim или install.esd со смонтированного ISO образа Windows
# Получить разрядность и версию системы, в которой мы работаем wmic os get OSArchitecture,caption,Version /format:list
# Узнать индекс доступных ревизий в файле install.wim dism /get-wiminfo /wimfile:P:x64sourcesinstall.esd
На основе полученной информации указываем для утилиты DISM нужный индекс.
dism /Online /Cleanup-Image /RestoreHealth /Source:wim:P:SourceInstall.wim:4 /limitaccess
Через двоеточие здесь нужно указать индекс ревизии Windows, под которым в используемом образе располагается аналогичная вашей система.
Ошибка 0x800f081f
При восстановлении вы можете столкнулся с ошибкой 0x800f081f
Что бы ее обойти, вы можете попробовать распаковать содержимое образа в отдельную папку, и запускать восстановление, используя в виде источника, уже ее.
# Создаем каталог куда будут распакованы файлы из образа mkdir C:WIM # Монтируем образ в папку Dism /Mount-Wim /wimfile:P:x64sourcesinstall.esd /index:4 /MountDir:G:WIM /ReadOnly # Восстанавливаем хранилище, используя распакованный образ Dism /Online /Cleanup-Image /RestoreHealth /Source:C:WIMWindows /LimitAccess # Демонтируем образ Dism /Unmount-Wim /MountDir:C:WIM /Discard # Удаляем папку с файлами rmdir C:WIM
Восстановление хранилища на внешнем устройстве
Проверяем ревизию установленой системы
DISM /Image:D: /get-currentedition
Выполняем восстановление хранилища
dism /Image:D: /cleanup-image /restorehealth
или непосредственно указав источник
dism /Image:D: /wimfile:P:x64sourcesinstall.esd /cleanup-image /restorehealth
После всех проделанных операций повторяем команду на восстановление системных файлов в надежде увидеть положительный результат:
sfc /scannow
Если в конце концов все это не помогло, то с большой вероятностью следующим вариантом будет переустановка ОС
Описание основных ключей, которые нам понадобятся
/Online — будут восстановлены файлы в папке WinSxS для системы из под которой запущена консоль CMD
/Cleanup-Image — Согласно Help: «Выполняет в образе операции очистки и восстановления». Но если по простому, то данный параметр нам необходим для того, что бы мы могли использовать зависимые от него параметры:
{/CheckHealth | /ScanHealth | /RestoreHealth}.
Т.о. если вызвать /RestoreHealth без /Cleanup-Image, мы просто увидим ошибку «Неизвестный параметр restorehealth»
/Image — параметр, указываемый при необходимости восстановить хранилище внешней системы. То есть расположенной на любом носителе.
/Source — если задан этот параметр, DISM сначала выполняет поиск в указанных расположениях.
Можно использовать несколько аргументов /Source
/LimitAccess — сообщает DISM, что не нужно выполнять поиск исходных файлов в Центре обновления Windows или в службах обновления Windows Server
Альтернативный вариант
Можно достать файлы из образа, без монтирования средствами DISM, с помощью 7Zip.
Используя полученные файлы, мы можем заменить ими содержимое папки WinSxS
Поскольку в современных версиях операционной системы Windows (начиная с Vista) компонентная модель является одной из ключевых системных структур, обеспечивающих бесперебойную работу операционной системы, поддержание её в рабочем состоянии крайне критично для нормального функционирования исполнительной подсистемы Windows. Дело в том, что на протяжении жизненного цикла операционной системы, хранилище компонентов претерпевает постоянные изменения и время от времени может повреждаться. Основные причины рассогласованного состояния хранилища компонентов заключаются в том, что:
- в процессе обновления операционной системы могут повреждаться/удаляться файлы компонентов в местоположениях: %SYSTEMROOT%ServicingPackages и %SYSTEMROOT%WinSxS;
- в процессе обновления операционной системы могут повреждаться/удаляться ветви/ключи реестра по путям: HKLMComponents, HKLMSchema и HKLMSoftwareMicrosoftWindowsCurrentVersionComponent Based Servicing;
описанные причины могут быть следствием более глобальных сбоев:
- Ошибки при передаче файлов по сетевому интерфейсу;
- Ошибки дисковой/файловой подсистем;
- Аппаратные сбои: ошибки чтения/записи оперативной памяти, сбои в любых иных аппаратных компонентах;
- Ошибки в работе сторонних инструментов оптимизации: средства очистки реестра, оптимизации файловой системы, оптимизации хранилища компонентов, оптимизации каталога распространения и прч.
- Ошибки в коде модулей компонентов Центра обновления Windows;
Подобные дефекты хранилища компонентов WinSxS могут выявляться при попытках пользователя произвести обновление системы (например, через установку обновления безопасности):
Или же могут быть выявлены в процессе работы разнообразных диагностических и сервисных утилит (модули, входящие в состав Центра обновления Windows), о чем в лог-файлах нам красноречиво сигнализирует статус ERROR_SXS_COMPONENT_STORE_CORRUPT. Описанные выше проблемы впоследствии становятся причиной возникновения различного рода отказов установки обновлений. Чаще всего повреждаются *.cat
, *.mum
, *.manifest
и *.dll
-файлы. Все найденные методы восстановления хранилища компонентов я решил выделить в отдельные статьи, а тут попробовать организовать что-то вроде своеобразного хаба.
Этапы восстановления хранилища компонентов
Итак, для восстановления хранилища компонентов у нас в распоряжении имеется целая серия разнообразных методик. Рекомендуется выполнить в указанном порядке следующие действия:
- Запустить проверку целостности системных файлов командой: sfc /scannow. Если результатом явились сообщения о том, что утилита нашла ошибки, но не смогла восстановить ошибки в автоматическом режиме, то на данном этапе их можно проигнорировать.
- Произвести восстановления хранилища компонентов:
- для Windows 8/10+: Восстановление хранилища компонентов при помощи DISM
- для Windows Vista/7: Восстановление хранилища компонентов при помощи SURT
- Запустить утилиту SFCFix: Восстановление хранилища компонентов при помощи SFCFix
- Выполнить синхронизацию оригинальных файлов с рабочими папками и пересоздание жёстких ссылок повторным запуском команды: sfс /scannow.
- Произвести перезагрузку операционной системы
Дополнение: если на каком-либо из выполненных вами шагов (1-4) обнаружены поврежденные файлы, которые соответствующие утилиты не смогли автоматически восстановить, то рекомендации по восстановлению были даны в соответствующих статьях. Например утилита sfc может сообщать нам, что выявлены повреждения и она не смогла их устранить, то идем в статью про sfc и там изучаем раздел Анализ результатов (в нем даны рекомендации по ручному восстановлению файлов).
Ну и напоследок методики, напрямую не относящиеся к восстановлению хранилища компонентов, но позволяющие устранить некоторые ошибки, связанные с обновлениями:
- Сброс центра обновления Windows
Выводы
В общем случае, стратегия автоматического и ручного восстановления хранилища компонентов заключается в поэтапном выявлении поврежденных зависимостей, имен отсутствующих/поврежденных файлов и их планомерном восстановлении с использованием разнообразных методик. Иногда для проведения всех этих манипуляций в ручном режиме требуется довольно существенное время, поскольку чаще всего операции приходится повторять для каждого сбойного файла. Часто в этой кропотливой работе требуются еще и довольно хорошие знания устройства компонентной модели. Отдельно стоит отметить системы, представляющие собой «кастомные» любительские сборки, поскольку на них риск убить компонентную модель многократно повышается.
Теоретически, в самом крайнем случае, восстановление хранилища компонентов можно было бы провести путем переноса (с использованием LiveCD) с работоспособной машины (имеющей аналогичную версию операционной системы) следующих частей:
- Всех вложенных файлов/директорий в папке %WinDir%WinSxS;
- Всех вложенных файлов/директорий в папке %WinDir%Servicing;
- Все содержимое ветвей реестра: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionComponent Based Servicing и HKEY_LOCAL_MACHINECOMPONENTS;
но на деле подобный глобальный поход может привести к падению системы в синий экран смерти, так что будьте предельно аккуратны!!
Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Starter Windows 7 Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business Windows Vista Business 64-bit Edition Windows Vista Enterprise Windows Vista Ultimate Windows 10 Еще…Меньше
Если некоторые функции Windows не работают или Windows завершает работу, используйте средство проверки системных файлов для сканирования Windows и восстановления файлов.
Несмотря на то, что приведенные ниже шаги могут показаться сложными на первом этапе, просто выполните их по порядку, и мы попробуем помочь вам.
Запуск средства проверки системных файлов (SFC.exe)
выполнив указанные ниже действия.
-
Откройте командную строку с повышенными привилегиями. Для этого выполните указанные ниже действия, в зависимости от версии операционной системы:
-
Пользователям Windows 10, Windows 8.1 или Windows 8 перед запуском средства проверки системных файлов нужно запустить систему обслуживания образов развертывания и управления ими (DISM). (Если на вашем компьютере установлена система Windows 7 или Windows Vista, перейдите сразу к шагу 3.)
Введите следующую команду и нажмите клавишу ВВОД. Выполнение команды может занять несколько минут.
DISM.exe /Online /Cleanup-image /Restorehealth
Важно! При запуске этой команды DISM обращается к Центру обновления Windows, чтобы получить файлы для устранения повреждений. Но если поврежден клиент Центра обновления Windows, используйте работающий экземпляр Windows в качестве источника восстановления либо параллельную папку Windows из сетевого расположения или со съемного носителя, например DVD-диска Windows, в качестве источника файлов. Для этого введите в командной строке такую команду:
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:RepairSourceWindows /LimitAccess
Примечание. Вместо заполнителя C:RepairSourceWindows укажите расположение вашего источника восстановления. Дополнительные сведения об использовании средства DISM для восстановления Windows см. в статье Восстановление образа Windows.
-
Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:
sfc /scannow
Команда sfc /scannow проверит все защищенные системные файлы и заменит поврежденные файлы их кэшированной копией, расположенной в сжатой папке по адресу %WinDir%System32dllcache.
Заполнитель %WinDir% представляет собой папку операционной системы Windows. Например, C:Windows.
Примечание. Не закрывайте это окно командной строки, пока проверка не завершится на 100 %. Результаты проверки будут показаны после завершения данного процесса.
-
После завершения процесса проверки на экране может появиться одно из приведенных ниже сообщений:
-
Защита ресурсов Windows не обнаружила нарушений целостности.
Это значит, что отсутствующие и поврежденные системные файлы не обнаружены. -
Защита ресурсов Windows не может выполнить запрошенную операцию.
Для устранения этой проблемы выполните сканирование с помощью средства проверки системных файлов в безопасном режиме, убедитесь, что папки PendingDeletes и PendingRenames находятся в папке %WinDir%WinSxSTemp. -
Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Сведения см. в журнале CBS.Log %WinDir%LogsCBSCBS.log.
Для просмотра подробных сведений о сканировании и восстановлении системных файлов перейдите к разделу Как просмотреть подробные сведения процесса работы средства проверки системных файлов. -
Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%LogsCBSCBS.log.
Для восстановления поврежденных файлов вручную просмотрите подробные сведения процесса работы средства проверки системных файлов, чтобы найти поврежденный файл, а затем вручную заменить поврежденный файл гарантировано работоспособной копией.
-
Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Для этого нажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. При получении запроса на ввод пароля администратора или подтверждения введите пароль или нажмите кнопку Разрешить.
Дополнительная информация
Просмотр подробных сведений о процессе работы средства проверки системных файлов.
Чтобы ознакомиться с подробными сведениями, включенными в файл CBS.Log, вы можете скопировать сведения в файл Sfcdetails.txt с помощью команды Findstr, а затем просмотреть их в этом файле. Для этого выполните указанные ниже действия.
-
Откройте командную строку с повышенными привилегиями, как это описано на шаге 1.
-
Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:
findstr /c:"[SR]" %windir%LogsCBSCBS.log >"%userprofile%Desktopsfcdetails.txt"
Примечание. В файле Sfcdetails.txt содержатся сведения о каждом запуске средства проверки системных файлов на компьютере. Он также содержит информацию о файлах, которые не были исправлены средством проверки системных файлов. Проверьте дату и время записей, чтобы определить проблемные файлы, обнаруженные при последнем запуске средства проверки системных файлов.
-
Откройте файл Sfcdetails.txt на рабочем столе.
-
В файле Sfcdetails.txt используется следующий формат:
Сведения о дате и времени SFC
В следующем примере файла журнала содержится запись для одного файла, который не удалось исправить:2007-01-12 12:10:42, Info CSI 00000008 [SR] Cannot
repair member file [l:34{17}]»Accessibility.dll» of Accessibility, Version =
6.0.6000.16386, pA = PROCESSOR_ARCHITECTURE_MSIL (8), Culture neutral,
VersionScope neutral, PublicKeyToken = {l:8 b:b03f5f7f11d50a3a}, Type
neutral, TypeName neutral, PublicKey neutral in the store, file is missing
Как вручную заменить поврежденный системный файл гарантированно работоспособной копией файла.
После определения, какой системный файл поврежден и не может быть восстановлен, с помощью подробных сведений в файле Sfcdetails.txt, выясните расположение поврежденного файла, затем вручную замените поврежденный файл его гарантировано работоспособной копией. Для этого выполните указанные ниже действия.
Примечание. Гарантировано работоспособную копию системного файла можно взять с другого компьютера, на котором установлена такая же, как на вашем компьютере версия Windows. Чтобы убедиться в работоспособности системного файла, который вы планируете скопировать на другом компьютере, можно провести процесс проверки средством проверки системных файлов.
-
Распространите на поврежденный системный файл права собственности администратора. Для этого скопируйте, а затем вставьте (или введите) в командную строку с повышенными привилегиями приведенную ниже команду, затем нажмите клавишу ВВОД:
takeown /f Путь_и_имя_файла
Примечание. Заполнитель Путь_и_имя_файла представляет собой путь и имя файла для поврежденного файла. Например, введите takeown /f C:windowssystem32jscript.dll.
-
Предоставьте администраторам полный доступ к поврежденному системному файлу. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:
icacls Путь_и_имя_файла /GRANT ADMINISTRATORS:F
Примечание. Заполнитель Путь_и_имя_файла представляет собой путь и имя файла для поврежденного файла. Например, введите icacls C:windowssystem32jscript.dll /grant administrators:F. -
Замените поврежденный системный файл гарантировано работоспособной копией файла. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:
Copy Исходный_файл Расположение
Примечание. Заполнитель Исходный_файл представляет собой путь и имя гарантировано работоспособной копии файла на вашем компьютере, а заполнитель Расположение представляет собой путь и имя поврежденного файла. Например, введите copy E:tempjscript.dll C:windowssystem32jscript.dll.
Если описанные выше действия не помогли, возможно, потребуется переустановить Windows. Дополнительные сведения см . в разделе Варианты восстановления Windows10.
Нужна дополнительная помощь?
Я уже давно не писал ничего, относящегося исключительно к Windows 7. Поводом для сегодняшний записи стал редчайший случай — Microsoft добавила новую возможность в старую ОС задним числом!
Читатели со стажем сразу вспомнят, как через четыре года после выхода Windows 7 в ней появилась возможность очищать папку WinSXS. Тогда из Windows 8+ перенесли часть функций DISM. Прошло два года, и в Windows 7 переселилась еще одна технология, связанная с хранилищем компонентов.
[+] Сегодня в программе
Возвращаясь к напечатанному
В Windows Vista система обслуживания претерпела революционные изменения, после чего Microsoft продолжает ее тюнинг с выходом каждой новой ОС. Однако лишь в Windows 8 появилось встроенное восстановление поврежденных компонентов. Это был большой прорыв по сравнению с Windows 7, для которой нужно было скачивать CheckSUR со всеми вытекающими недостатками.
Для понимания ситуации я настоятельно рекомендую вам прочесть статью Как исправить ошибки при установке обновлений Windows с помощью встроенного восстановления компонентов.
Из нее вы узнаете:
- основы системы обслуживания Windows
- действия для восстановления компонентов в Windows 8+
- разницу между старым CheckSUR в Windows 7 и встроенным восстановлением в Windows 8+
Microsoft опубликовала статью базы знаний KB2966583, из которой можно скачать пакет обновления. После его установки и перезагрузки Windows 7 получает фактически такую же возможность восстановления компонентов, как Windows 8+.
Как и в более новых ОС, восстановление реализовано с помощью DISM. Приведенная ниже команда запускает процесс проверки хранилища и восстановления поврежденных компонентов.
DISM /Online /Cleanup-Image /ScanHealth
Однако в Windows 7 есть ряд особенностей:
- здесь нет ключей /CheckHealth и /RestoreHealth, и всю работу выполняет ключ /ScanHealth
- команду можно выполнять только на работающей системе, т.е. восстановление отключенных образов не реализовано
- появилась возможность проверки и восстановления компонентов Internet Explorer, которой не было в старом CheckSUR
Результат работы команды нужно смотреть в журнале, как и прежде сохраняемом по адресу WindowslogsCBSchecksur.log
================================= Checking System Update Readiness. Binary Version 6.1.7601.18489 2015-07-27 12:32 Checking Windows Servicing Packages Checking Package Manifests and Catalogs Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store Summary: Seconds executed: 149 No errors detected
У меня на ВМ повреждений не обнаружилось, но вы можете проверить у себя.
В статье базы знаний отдельно упоминается возможность создать запланированное задание для запуска команды. Однако учтите, что для запуска DISM нужны права администратора, т.е. задание не отработает под обычной учетной записью.
Дискуссия и опрос
Если у вас есть вопросы или комментарии по теме восстановления компонентов, не стесняйтесь озвучивать их в обсуждении. Пожалуйста, не публикуйте лог checksur в тексте комментария — есть PasteBin.
Впрочем, я думаю, что их будет немного, поэтому хочу развернуть дискуссию в другую плоскость. До официального выпуска Windows 10 осталась всего пара дней. Для инсайдеров и энтузиастов там никаких сюрпризов нет – мы следим за ходом разработки ОС уже восемь месяцев. Понятно, что практически все обладатели Windows 8.1 обновятся до Windows 10.
Поэтому меня особенно интересует, как много людей готовы перейти на Windows 10 с Windows7 и более ранних ОС.
Я уже проводил опрос на тему скорости обновления до Windows 10, но там не было расклада по вашей текущей системе, и сейчас мы его увидим. Если Windows 10 IP является вашей основной текущей системой, укажите ту, которая была установлена до нее.
В комментариях напишите, почему вы перейдете или не перейдете 1 на Windows 10! Не забудьте указать, как долго и каким образом вы пользовались предварительной версией Windows 10.
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
Гигантское количество проблем в операционных системах Windows возникает из-за повреждения системных файлов. Для восстановления критичных файлов предусмотрена функция защиты системных файлов. Система сама мониторит изменения особо важных файлов и заменяет их эталонными версиями из образа установки (хранилища компонентов Windows), если те были изменены или повреждены сторонним софтом. Однако, если поврежден образ установки или повреждены не критичные но значимые файлы, ОС Windows требуется помощь. Помочь можно с помощью утилит SFC и DISM. Ниже подробный мануальчик по восстановлению ОС с использованием этих утилит.
1. SFC. (System Files Checker)
Утилита для восстановления номер раз. Восстанавливает файлы системы из образа установки. Присутствует во всех версиях Windows начиная с Windows 2000. Механика работы программы отличается в зависимости от версии ОС, но общий принцип один и тот же — программа проверяет целостность системных файлов и отменяет обнаруженные изменения. Эталоны файлов программка может брать из нескольких источников.
Список источников в порядке убывания.
Для версий до Windows XP включительно:
1. Папка %WinDir%System32Dllcache
2. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSoftwarePoliciesMicrosoftWindows NTSetup
3. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSoftwareMicrosoftWindowsCurrentVersionSetup
4. CD-ROM.
Для версий начиная с Windows Vista и выше:
1. Папка %WinDir%winsxsBackup
2. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetup
3. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
4. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSoftwarePoliciesMicrosoftWindows NTWindows File Protection
5. Путь к дистрибутиву указанный в параметре SourcePath ветки реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetupServicePackSourcePath
6. CD-ROM.
Применение программы:
1. Сканировать текущую ОС немедленно с восстановлением поврежденных файлов.
sfc /scannow
2. Сканировать текущую ОС немедленно без восстановлением поврежденных файлов.
sfc /verifyonly
3. Сканировать автономную ОС немедленно с восстановлением поврежденных файлов.
sfc /scannow /OFFWINDIR=<автономная папка Windows> /OFFBOOTDIR=<автономная папка загрузки>
4. Сканировать отдельный файл
sfc /SCANFILE=C:windowssystem32kernel32.dll
Если программа пишет ошибки восстановления, детальную информацию можно посмотреть в журнале. Журнал выполнения пишется в папку %windir%logscbscbs.log.
DISM (Deployment Image Servicing and Management).
Утилита для восстановления номер два. DISM проверяет и восстанавливает хранилище компонентов Windows (то место откуда sfc берет файлы для восстановления). Утилита присутствует начиная с Windows Vista, однако возможность восстановления хранилища из коробки работает только начиная с Windows 8. Для восстановления хранилища в Windows 7 с помощью DISM, нужно установить обновление KB2966583. Скачать можно с оф.сайта или отсюда.
В отличии от SFC, DISM может подключиться к серверам Майкрософт и взять эталонные файлы оттуда.
Команды для Windows 8 и выше:
Проверить наличие признака повреждения хранилища компонентов образа Windows (флага CBS):
DISM /Online /Cleanup-Image /CheckHealth
Полное сканирование хранилища компонентов на наличие повреждений в системных образа Windows:
DISM /Online /Cleanup-Image /ScanHealth
Восстановление поврежденных компонентов:
DISM /Online /Cleanup-Image /RestoreHealth
В Windows 7 отсутствует возможность проверки флага CBS, а команды сканирования и восстановления объединены в одну:
DISM /Online /Cleanup-Image /ScanHealth
Также как и SFC, dism может восстановить образ используя установочные файлы Windows. Для этого нужно указать путь до .wim или .esd файла и индекс образа в ключе /source
Индекс можно узнать powershell-командой
Get-WindowsImage -ImagePath «D:sourcesinstall.wim»
Команда восстановления будет выглядеть примерно так:
DISM /online /cleanup-image /restorehealth /source:WIM:E:sourcesinstall.wim:1
DISM /online /cleanup-image /restorehealth /source:ESD:E:sourcesinstall.esd:1
где 1 — индекс образа.
Чтобы dism не искал файлы на серверах Microsoft, а сразу брал их из файла установки можно дописать ключ /limitaccess
DISM /online /cleanup-image /restorehealth /source:WIM:E:sourcesinstall.wim:1 /limitaccess
DISM /online /cleanup-image /restorehealth /source:ESD:E:sourcesinstall.esd:1 /limitaccess
Можно еще восстановить образ автономной ОС. Чтобы это сделать, вместо ключа /Online написать ключ /Image:<путь до ОС>. Например
dism /image:C: /Cleanup-Image /RestoreHealth /Source:WIM:E:sourcesinstall.wim:1
Если программа пишет ошибки восстановления, детальную информацию также можно посмотреть в журнале. Журнал выполнения пишется в папку %windir%LogsDISMdism.log.
Иногда DISM выдает ошибку 0x800f081f Не удалось найти исходные файлы хотя образ точно тот. Лечится очисткой компонентов образа системы с помощью команды:
Dism.exe /online /Cleanup-Image /StartComponentCleanup
Общий алгоритм для восстановления системных файлов.
Насколько я понял, dism не восстанавливает сами системные файлы, он работает только с хранилищем компонентов Windows. После восстановления хранилища компонентов либо ОС сама подменит нужные системные файлы, либо их нужно заменить с помощью sfc. Вообщем, алгоритм действий примерно следующий:
1. Восстановление с помощью sfc.
sfc /scannow
2. Если sfc пишет ошибки, запускаем сначала dism по завершении снова sfc.
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
3. Если в пункте 2 тоже возникают ошибки, открываем логи и разбираемся.
Содержание
- Способы восстановления
- Способ 1: Сканирование утилитой SFC через «Командную строку»
- Способ 2: Сканирование утилитой SFC в среде восстановления
- Способ 3: Точка восстановления
- Способ 4: Ручное восстановление
- Вопросы и ответы
Одной из причин некорректной работы системы или вообще невозможности её запуска является повреждение системных файлов. Давайте выясним различные пути их восстановления на Виндовс 7.
Способы восстановления
Существует множество причин повреждения системных файлов:
- Сбои в работе системы;
- Вирусное заражение;
- Некорректная установка обновлений;
- Побочные действия сторонних программ;
- Резкое отключение ПК из-за сбоя в электропитании;
- Действия самого пользователя.
Но чтобы не послужило причиной неполадки, с её последствиями необходимо бороться. Компьютер не может полноценно функционировать с поврежденными системными файлами, поэтому необходимо в максимально короткие сроки устранить указанную неисправность. Правда, названное повреждение совсем не означает, что компьютер вообще не будет запускаться. Довольно часто это совсем не проявляется и пользователь определенное время даже не подозревает, что с системой что-то не так. Далее мы подробно изучим различные способы восстановления системных элементов.
Способ 1: Сканирование утилитой SFC через «Командную строку»
В составе Виндовс 7 есть утилита под названием SFC, прямое предназначение которой как раз заключается в проверке системы на наличие поврежденных файлов с последующим их восстановлением. Запускается она через «Командную строку».
- Щелкайте «Пуск» и переходите к списку «Все программы».
- Заходите в каталог «Стандартные».
- Отыщите в открывшейся папке элемент «Командная строка». Жмите по нему правой кнопкой мыши (ПКМ) и выбирайте вариант запуска с правами администратора в отобразившемся контекстном меню.
- Запустится «Командная строка» с административными полномочиями. Произведите туда ввод выражения:
sfc /scannow
Атрибут «scannow» вводить обязательно, так как он позволяет производить не только проверку, но и восстановление файлов при обнаружении повреждений, что нам, собственно, и требуется. Для запуска утилиты SFC жмите Enter.
- Будет проведена процедура сканирования системы на предмет повреждения файлов. Процент выполнения задачи будет отображаться в текущем окне. В случае выявления неисправностей объекты будут автоматически восстановлены.
- Если же поврежденные или недостающие файлы не буду обнаружены, то после завершения сканирования в «Командной строке» отобразится соответствующее сообщение.
Если же появится сообщение, что проблемные файлы обнаружены, но восстановить их не удается, то в этом случае перезапустите компьютер и войдите в систему в «Безопасном режиме». Затем повторите процедуру сканирования и восстановления с помощью утилиты SFC точно так же, как было описано выше.
Урок: Сканирование системы на целостность файлов в Виндовс 7
Способ 2: Сканирование утилитой SFC в среде восстановления
Если у вас вообще не запускается система даже в «Безопасном режиме», то в этом случае можно произвести восстановление системных файлов в среде восстановления. Принцип данной процедуры очень похож на действия в Способе 1. Главное отличие заключается в том, что кроме введения команды запуска утилиты SFC, придется указать тот раздел диска, на котором установлена операционная система.
- Сразу после включения компьютера, дождавшись характерного звукового сигнала, оповещающего о запуске BIOS, жмите на клавишу F8.
- Открывается меню выбора типа запуска. С помощью стрелок «Вверх» и «Вниз» на клавиатуре передвиньте выделение на пункт «Устранение неполадок…» и щелкайте Enter.
- Запустится среда восстановления ОС. Из перечня открывшихся вариантов действий перейдите к пункту «Командная строка».
- Откроется «Командная строка», но в отличие от предыдущего способа, в её интерфейс нам придется ввести несколько другое выражение:
sfc /scannow /offbootdir=c: /offwindir=c:windows
Если ваша система расположена не в разделе C или имеет другой путь, то вместо буквы «C» нужно указать актуальный локальный диск размещения, а вместо адреса «c:windows» — соответствующий путь. Кстати, эту же команду можно использовать, если вы хотите восстановить системные файлы с другого ПК, подключив к нему жесткий диск проблемного компьютера. После ввода команды жмите Enter.
- Будет начата процедура сканирования и восстановления.
Внимание! Если ваша система повреждена настолько, что даже не включается среда восстановления, то в этом случае войдите в неё, запустив компьютер при помощи установочного диска.
Способ 3: Точка восстановления
Восстановить системные файлы можно также, откатив систему к ранее сформированной точке отката. Основным условием для выполнения этой процедуры является наличие такой точки, которая была создана тогда, когда все элементы системы были ещё целы.
- Щелкайте «Пуск», а затем через надпись «Все программы» переходите в каталог «Стандартные», как было описано в Способе 1. Откройте папку «Служебные».
- Щелкните по названию «Восстановление системы».
- Открывается инструмент для реанимирования системы к ранее созданной точке. В стартовом окне вам не нужно ничего делать, просто нажмите элемент «Далее».
- А вот действия в следующем окне будут самым важным и ответственным этапом в данной процедуре. Тут нужно выбрать из списка ту точку восстановления (если их несколько), которая была создана ещё до того, как вы заметили неполадки на ПК. Для того чтобы иметь максимальное разнообразие выбора, установите отметку в чекбокс «Показать другие…». Затем выделите наименование той точки, которая подходит для проведения операции. После этого нажмите «Далее».
- В последнем окне вам остается только сверить данные, если это необходимо, и нажать кнопку «Готово».
- Затем откроется диалоговое окно, в котором требуется подтвердить свои действия, нажав кнопку «Да». Но перед этим советуем закрыть все активные приложения, чтобы данные, с которыми они работают, не были потеряны вследствие перезагрузки системы. Также следует помнить, что если вы выполняете процедуру в «Безопасном режиме», то в этом случае даже после завершения процесса при необходимости отменить изменения не получится.
- После этого компьютер будет перезагружен и начнется процедура. После её окончания все системные данные, включая файлы ОС, будут восстановлены к выбранной точке.
Если у вас не получается запустить компьютер обычным способом или через «Безопасный режим», то процедуру отката можно выполнить в среде восстановления, переход в которую был подробно описан при рассмотрении Способа 2. В открывшемся окне нужно выбрать вариант «Восстановление системы», а все остальные действия требуется выполнить так же, как и при стандартном откате, с которым вы ознакомились выше.
Урок: Восстановление системы в Виндовс 7
Способ 4: Ручное восстановление
Способ ручного восстановления файлов рекомендуется применять только в том случае, если все остальные варианты действий не помогли.
- Сначала нужно определить, в каком именно объекте присутствуют повреждения. Для этого проведите сканирование системы утилитой SFC, как было рассказано в Способе 1. После того как отобразилось сообщение о невозможности восстановить систему, закрывайте «Командную строку».
- С помощью кнопки «Пуск» переходите в папку «Стандартные». Там ищите название программы «Блокнот». Щелкайте по нему ПКМ и выбирайте запуск с полномочиями администратора. Это очень важно, так как в обратном случае вы не сможете открыть в данном текстовом редакторе необходимый файл.
- В открывшемся интерфейсе «Блокнота» щелкайте «Файл» и далее выбирайте «Открыть».
- В окне открытия объекта перемещайтесь по следующему пути:
C:WindowsLogsCBS
В списке выбора типа файлов обязательно выберите вариант «Все файлы» вместо «Текстовый документ», иначе вы просто не увидите нужный элемент. Затем отметьте отобразившийся объект под названием «CBS.log» и жмите «Открыть».
- Будет открыта текстовая информация из соответствующего файла. Она содержит в себе данные об ошибках, выявленных вследствие проверки утилитой SFC. Найдите ту запись, которая по времени соответствует завершению сканирования. Там будет отображено имя отсутствующего или проблемного объекта.
- Теперь необходимо взять дистрибутив Windows 7. Лучше всего для этого использовать установочный диск, с которого ставилась данная система. Распакуйте его содержимое на жесткий носитель и найдите тот файл, который следует восстановить. После этого запустите проблемный компьютер с LiveCD или LiveUSB и скопируйте с заменой в нужную директорию извлеченный из дистрибутива Виндовс объект.
Как видим, восстановить системные файлы можно как использовав специально предназначенную для этого утилиту SFC, так и применив глобальную процедуру отката всей ОС к ранее созданной точке. Алгоритм действий при выполнении этих операций зависит ещё от того, можете вы запустить Виндовс или вам приходится устранять неполадки с помощью среды восстановления. Кроме того, возможна ручная замена поврежденных объектов из дистрибутива.
Еще статьи по данной теме:
Помогла ли Вам статья?
Для восстановления работоспособности Windows существует масса способов – точки отката, бэкап, бэкап и откат её реестра, восстановление целостности её файлов, переустановка Microsoft Visual C++ и прочих системных компонентов. Но только предварительно сделанный бэкап системы можно считать панацеей, универсальным «лекарством» от всех возможных проблем. Как быть, если нужно восстановить системные файлы, а у нас ни бэкапа нет, ни инструмент восстановления системных файлов не работает?
В таких случаях можно прибегнуть к замене системных файлов Windows, если они повреждены или удалены, вручную.
Замена системных файлов Windows вручную – операция, требующая определённых знаний и навыков в работе операционной системы от Microsoft. Нам нужно точно знать, какой файл системы повреждён или удалён, чтобы мы могли его заменить дубликатом. К примеру, если мы при открытии системного управления дисками видим уведомление типа этого,
это значит, что повреждён или удалён файл diskmgmt.msc – файл запуска непосредственно утилиты управления дисками. В этом случае мы можем попытаться решить проблему путём восстановления целостности системных файлов, т.е. запустить в командной строке известную команду sfc/scannow. Но этот механизм системы не всегда даёт положительные результаты и часто завершается уведомлением о невозможности восстановления.
В таком случае далее нужно предпринимать действия по восстановлению хранилища системных ресурсов и потом снова запускать sfc/scannow. Ручная замена проблемных системных файлов – более топорная операция, плюс к этому, требующая, как упоминалось, чёткого понимания, какие именно файлы по какому пути нужно заменять. Но если эти файлы и пути известны, то это более быстрое и надёжное решение проблемы.
Что для этого необходимо? Нам понадобится установочный ISO нужной версии Windows. Открываем его архиватором 7-Zip.
Открываем папку «sources», далее – «install».
Внутри файла «install» выбираем папку с тем или иным порядковым номером. Порядковые номера – это индексы редакций Windows. Если, например, в нашем случае нужно восстановить файл diskmgmt.msc, нам без разницы редакция, эта системная утилита есть в любой редакции Windows. Поэтому мы просто выберем редакцию Pro, она идёт под номером 4.
Но если файл нужного системного компонента есть только в определённой редакции, например, только в Pro, то необходимо указывать индекс конкретно этой редакции. А узнать индексы редакций в составе дистрибутива можно с помощью командной строки. Нужно подключить установочный ISO для отображения в системе и прописать в команде Dism путь к файлу install на борту этого ISO, вот так:
Dism /Get-WimInfo /WimFile:J:sourcesinstall.wim
Здесь вместо буквы J каждый должен подставить свою букву диска подключённого ISO. И если файл install имеет формат не «.wim», а «.esd», то, соответственно, в конце команды необходимо указать этот формат. В ответ на эту команду получим справку о соответствии индексам редакций Windows.
Определившись с редакцией, распаковываем нужный системный каталог. В нашем случае необходимо заменить файл утилиты diskmgmt.msc, следовательно, мы распаковываем каталог «Windows». Кликаем его и жмём «Extract».
Указываем путь распаковки.
И после распаковки ищем файл утилиты diskmgmt.msc.
При поиске обнаружилось несколько дубликатов diskmgmt.msc – в оригинальном месте хранения файла, в хранилище системных ресурсов (т.е. в папке WinSxS), в других системных подкаталогах. Мы берём файл, находящийся по исходному его пути хранения, в папке «System32». Копируем его.
И помещаем этот файл в папку «System32» внутри каталога «Windows» на диске С текущей системы.
Подтверждаем вставку или замену файла.
Вот и всё.
***
Мы рассмотрели простейший пример замены системных файлов вручную, чтобы осветить сугубо механизм этой процедуры. Необходимо понимать, что не со всеми системными файлами процесс замены произойдёт так вот просто, могут возникнуть трудности. Некоторые файлы Windows в активном состоянии не захочет заменять, и потребуется либо получение прав TrustInstaller, либо работа с LiveDisk. Также нужно учитывать, что после замены некоторых файлов, например, файлов активных системных процессов, прежде лицезрения результата проделанной работы, необходимо перезагрузить Windows.
Ну и главный совет: приведённая выше процедура рисковая, ибо, по сути, является вмешательством в структуру данных системы, потому перед проведением этой процедуры необходимо создать точку отката. Но лучше, конечно же, сделать полноценный бэкап.
Загрузка…