Восстановление хранилища компонентов windows 10

Самый простой способ быстро узнать версию и билд операционной системы Windows, установленной на компьютере – нажать сочетание клавиш
Win+R
и выполнить команду
winver
.

На скриншоте видно, что на компьютере установлена Windows 10 версия 22H2 (билд 19045.3324). Как номер релиза, так и номер сборки (билда) Windows позволяет однозначно идентифицироваться версию операционной системы на компьютере.

winver - окно с версией и биодом Windows

Также можно открыть окно с информацией о системе с помощью сочетания клавиш
Win+Pause
. Это откроет соответствующий раздел Settings (System -> About) или окно свойств системы (в зависимости от версии Windows).

Информация о версии Windows в панели Settings -> About” srcset=”https://winitpro.ru/wp-content/uploads/2023/08/informaciya-o-versii-windows-v-paneli-settings-greater-a.png 450w, https://winitpro.ru/wp-content/uploads/2023/08/informaciya-o-versii-windows-v-paneli-settings-greater-a-300×218.png 300w” sizes=”(max-width: 450px) 100vw, 450px”></p><p>Можно получить информацию о билде и версии Windows, установленной на компьютере, из командной строки.</p><p>Можно отфильтровать вывод утилиты:</p><p>Или воспользуйтесь WMI командой:</p><p> <code>wmic os get Caption, Version, BuildNumber, OSArchitecture</code></p><script data-noptimize=fpm_start( "true" );

команда systeminfo - вывести версию windows

Аналогом команды systeminfo в PowerShell является командлет Get-ComputerInfo:

Get-ComputerInfo

Главный недостаток командлета Get-ComputerInfo – он выполняется довольно долго. Если вам нужно быстро узнать версию и билд Windows из скрипта PowerShell, лучше воспользоваться одной из следующий конструкций.

Версия Windows в переменной окружения:

Из WMI класса:

В современных версиях PowerShell Core 7.x вместо командлета Get-WmiObject нужно использовать Get-CimInstance:

Get-CimInstance Win32_OperatingSystem - узнать номер билда windows

Значение параметра OSArchitecture позволяет определить установлена ли на компьютере
x86
или
x64
версия Windows.

Можно получить номер билда и версии непосредственно из реестра Windows.

Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion
Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuild

версия и билд Windows в реестре

С помощью параметров реестра
ProductVersion
,
TargetReleaseVersion
и
TargetReleaseVersionInfo
в ветке HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate вы можете указать версию Windows, до которой ваш компьютер может автоматически обновиться. Эти параметры позволяют также запретить автоматическое обновление ОС до Windows 11.

Вы можете получить информацию о версии Windows на удаленном компьютере через PowerShell Remoting:

Если компьютер добавлен в домен Active Directory, вы можете получить информацию о версии/билде Windows на компьютере из атрибутов компьютера в AD (как получить список версий и билдов Windows в домене Active Directory).

Встроенная утилита CHKDSK.exe (check disk) используется в Windows для проверки диска на ошибки. Сhkdsk проверяет файловую систему на физические и логические ошибки, находит поврежденные секторы (bad sectors) и исправляет найденные проблемы.

Проверка и восстановление диска с помощью команды chkdsk

Чтобы проверить жесткий диск на ошибки, запустите командную строку с правами администратора и выполните:

chkdsk E: /F /R

  • Выполнит проверку диска E:\
  • Исправит автоматически найденные ошиьки (/F)
  • Попытаться восстановить данные при обнаружении поврежденных секторов, она попытается восстановить информации (/R).

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

Если утилита chkdsk не обнаружила проблем на диске, появится сообщение:

Windows has scanned the file system and found no problems.
No further action is required.

chkdsk утилита проверки диска на ошибки в windows 10

Утилита chkdsk не позволяет выполнить online проверку системного диска (C:\). При запуске команды chkdsk C: /F /R появится уведомление:

Cannot lock current drive. Chkdsk cannot run because the volume is in use by another process.  Would you like to schedule this volume to be checked the next time the system restarts? (Y/N).
Невозможно выполнить команду Chkdsk, так как указанный том используется другим процессом. Следует ли выполнить проверку этого тома при следующей перезагрузке системы?

Чтобы запланировать проверку диска при следующей загрузке Windows, нажмите
Y
->
Enter
.

This volume will be checked the next time the system restarts
.

chkdsk системный диск заблокирован, запланировать его проверку при следующей перезагрузке

Чтобы отменить запланированную проверку диска, выполните:

chkntfs /x c:

Чтобы отключить топ перед проверкой, добавьте атрибут /X в команде chkdsk. В этом случае Windows принудительно закрое все открытые файловые дескрипторы, отмонтирует диск и выполнит проверку на ошибки.

Если вам нужно выполнить проверку большого NTFS тома, но вы не хотите блокировать диск, можно сначала просканировать диск на ошибки:

:/>  Обновления безопасности для Windows 7 и Windows 8.1 за октябрь 2022

chkdsk E: /f /offlinescanandfix

Утилита найдет ошибки и сохранит их в файл $corrupt для дальнейшего исправления

Чтобы исправить найденные ошибки, не тратя время на полное сканирование тома, выполните:

chkdsk D: /spotfix

Это существенно сократит время недоступности тома для пользователя при исправлении ошибок.

В консоли PowerShell для проверки диска можно использовать командлет Repair-Volume как аналог команды chkdsk:

Repair-Volume -driveletter C -scan

Также рекомендуем перед проверкой проверить SMART состояние жестких дисков с помощью встроенных PowerShell командлетов из модуля управления дисками:

powershell: команда получения данных smart о здоровье диска

Просмотр результатов проверки Chkdsk в Windows

Chkdsk при онлайн сканировании диска выводит результаты прямо в консоль. Если вы запланировали проверку диска при загрузке Windows, то результаты можно получить только из журнала событий Windows (Event Viewer).

  1. Откройте консоль Event Viewer (
    Eventvwr.msc
    ) и перейдите в раздел Windows Logs -> Application;
  2. Щелкните правой клавишей по разделы Application и выберите Filter Current Log. В поле Event Source выберите Chkdsk и Wininit и нажмите ОК;Логи chkdsk хранятся в Event Viewer
  3. Подробные результаты проверки диска содержатся в описании события. Обратите внимание, что у онлайн событий проверки диска будет указан источник Chkdsk. Если выполнялась офлайн проверка диска при загрузке Windows, у такого события будет источник Wininit и EventID 1001.Открыть детальный лог chkdsk в Windows

Можно получить лог проверки диска с помощью PowerShell командлета Get-WinEvent. Например, чтобы выгрузить результаты последних 5 проверок диска в текстовый файл CHKDSK_SCAN.txt на рабочем столе, выполните команду:

Открыть полученный файл с логом chkdsk:

Выгрузить логи chkdsk в текстовый файл

Если размер лога Chkdks очень большой, журнал событий может обрезать его. В этом случае можно открыть полный лог проверки диск в System Volume Information. Чтобы получить доступ к этой папке, нужно запустить командную строку от имени SYSTEM (проще всего с помощью утилиты psexec):

.\PsExec.exe -i -s cmd.exe

После этого можно открыть лог chkdsk:

notepad.exe "c:\System Volume Information\Chkdsk\Chkdsk20231129072214.log"

Лог ckdsk в system volume information

Как восстановить хранилище компонентов Windows 10Если при тех или иных действиях по восстановлению системных файлов и образа Windows 10 с помощью DISM вы видите сообщение об ошибках «Ошибка 14098 Хранилище компонентов повреждено», «Хранилище компонентов подлежит восстановлению», «Сбой DISM. Операция не выполнена» или «Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра Источник», требуется выполнить восстановление хранилища компонентов, о чем и пойдет речь в этой инструкции.

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

Простое восстановление

Сначала о «стандартном» способе восстановления хранилища компонентов Windows 10, который работает в случаях, когда нет каких-то серьезных повреждений системных файлов, а сама ОС исправно запускается. С большой вероятностью помогает в ситуациях «Хранилище компонентов подлежит восстановлению», «Ошибка 14098. Хранилище компонентов повреждено» или при ошибках восстановления с помощью sfc /scannow.

Для восстановления выполните следующие простые шаги

  1. Запустите командную строку от имени администратора (для этого в Windows 10 можно начать набирать «Командная строка» в поиске на панели задач, затем нажать правой кнопкой мыши по найденному результату и выбрать «Запуск от имени администратора»).
  2. В командной строке введите следующую команду:
  3. Dism /Online /Cleanup-Image /ScanHealth

    Хранилище компонентов подлежит восстановлению

  4. Выполнение команды может занять продолжительно время. После выполнения, если вы получаете сообщение о том, что хранилище компонентов подлежит восстановлению, выполните следующую команду.
  5. Dism /Online /Cleanup-Image /RestoreHealth
  6. Если всё прошло гладко, то по завершении процесса (может «зависать», но настоятельно рекомендую дождаться окончания) вы получите сообщение «Восстановление выполнено успешно. Операция успешно завершена». Хранилище компонентов Windows 10 восстановлено

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

Восстановление хранилища компонентов с использованием образа Windows 10

Следующий метод — использование образа Windows 10 для использования системных файлов с него для восстановления хранилища, что может пригодиться, например, при ошибке «Не удалось найти исходные файлы».

Шаги по восстановлению будут следующими (если из текстового описания команды что-то будет не ясно, обратите внимание на скриншот с выполнением описываемой команды):

  1. В подключенном образе или на флешке (диске) зайдите в папку sources и обратите внимание на находящийся там файл с именем install (самый большой по объему). Нам потребуется знать его точное имя, возможны два варианта: install.esd или install.wim
  2. Запустите командную строку от имени администратора и используйте следующие команды.
  3. Dism /Get-WimInfo /WimFile:полный_путь_к_файлу_install.esd_или_install.wim
  4. В результате выполнения команды вы увидите список индексов и редакций Windows 10 в файле образа. Запомните индекс для вашей редакции системы. Сведения об образах в install.esd
  5. Для файла install.esd:
    Dism /Online /Cleanup-Image /RestoreHealth /Source:путь_к_файлу_install:индекс /LimitAccess

    для файла install.wim в команде используйте следующий вариант синтаксиса:

    Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:путь_к_файлу_install:индекс /LimitAccess

    Восстановление компонентов из образа Windows 10

Дождитесь завершения операции восстановления, которое, возможно, в этот раз пройдет успешно.

Исправление хранилища компонентов в среде восстановления

Если по той или иной причине восстановление хранилища компонентов не удается выполнить в запущенной Windows 10 (например, вы получаете сообщение «Сбой DISM. Операция не выполнена»), это можно сделать в среде восстановления. Я опишу способ с использованием загрузочной флешки или диска.

  1. Загрузите компьютер за загрузочной флешки или диска с Windows 10 в той же разрядности и версии, что установлена на компьютере или ноутбуке. См. Создание загрузочной флешки Windows 10.
  2. На экране после выбора языка внизу слева нажмите «Восстановление системы». Запуск среды восстановления с флешки
  3. Перейдите к пункту «Исправление неисправностей» — «Командная строка».
  4. В командной строке используйте по порядку 3 команды: diskpart, list volume, exit. Это позволит узнать текущие буквы разделов дисков, которые могут отличаться от тех, к которые используются в запущенной Windows 10.  Далее используйте команды. Разделы дисков в среде восстановления
  5. Dism /Get-WimInfo /WimFile:полный_путь_к_файлу_install.esd

    Или install.wim, файл находится в папке sources на флешке, с которой вы загрузились. В этой команде мы узнаем индекс нужной нам редакции Windows 10.

  6. Dism /Image:C:\ /Cleanup-Image /RestoreHealth /Source:полный_путь_к_файлу_install.esd:индекс

    Здесь в /Image:C:\ указывается буква диска с установленной Windows При наличии отдельного раздела на диске под пользовательские данные, например, D, рекомендую также указать параметр /ScratchDir:D:\ как на скриншоте для использования этого диска под временные файлы. Восстановление хранилища компонентов в среде восстановления

Как обычно, дожидаемся окончания восстановления, с большой вероятностью в этот раз оно пройдет успешно.

Восстановление с распакованного образа на виртуальном диске

И еще один метод, более сложный, но также способный пригодиться. Использовать его можно как в среде восстановления Windows 10, так и в запущенной системе. При использовании метода необходимо наличие свободного пространства в объеме около 15-20 Гб на каком-либо разделе диска.

В моем примере будут использованы буквы: C — диск с установленной системой, D — загрузочная флешка (или подключенный образ ISO), Z — диск на котором будет создаваться виртуальный диск, E — буква виртуального диска, которая будет ему присвоена.

  1. Запустите командную строку от имени администратора (или запустите её же в среде восстановления Windows 10), используйте команды.
  2. diskpart
  3. create vdisk file=Z:\virtual.vhd type=expandable maximum=20000
  4. attach vdisk Создание виртуального диска в Diskpart
  5. create partition primary
  6. format fs=ntfs quick
  7. assign letter=E
  8. exit Форматирование виртуального диска в diskpart
  9. Dism /Get-WimInfo /WimFile:D:\sources\install.esd (или wim, в команде смотрим на нужный нам индекс образа).
  10. Dism /Apply-Image /ImageFile:D:\sources\install.esd /index:индекс_образа /ApplyDir:E:\
  11. Dism /Online /image:C:\ /Cleanup-Image /RestoreHealth /Source:E:\Windows /ScratchDir:Z: (если восстановление производится в запущенной системе, то вместо /Image:C:\ используйте /OnlineВосстановление компонентов из распакованного образа Windows 10

И ожидаем в надежде на то, что в этот раз получим сообщение «Восстановление выполнено успешно». После проведения восстановления вы можете размонтировать виртуальный диск (в запущенной системе правый клик по нему — отключить) и удалить соответствующий ему файл (в моем случае — Z:\virtual.vhd).

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

Если сообщение о том, что хранилище компонентов повреждено вы получаете при установке .NET Framework, а его восстановление описываемыми методами никак не влияет на ситуацию, попробуйте зайти в панель управления — программы и компоненты — включение или отключение компонентов Windows, отключить все компоненты .Net Framework, перезагрузить компьютер, а затем повторить установку.

В этой инструкции подробно о причинах ошибки 87 в командной строке при использовании DISM в Windows 11, Windows 10 и 7 и о возможных способах её исправления.

Проверьте правильность ввода команды DISM и набор известных параметров

Самая распространенная причина ошибки 87, особенно если речь идёт не о старых ОС, а о Windows 11 и Windows 10 — синтаксические ошибки при вводе команды, либо особенности списка поддерживаемых параметров.

Ошибка 87 в командной строке при использовании DISM и синтаксических ошибках

Чаще всего это бывают следующие варианты ошибок:

  1. Отсутствие пробелов перед знаком �/� в указанных параметрах команды DISM.
  2. Неправильный порядок указания параметров (например, если изменить порядок параметров checkhealth и cleanup-image, вы получите указанную ошибку).
  3. Также русскоязычные пользователи, случается, путают латинские буквы C и S, U и Y.
  4. В некоторых случаях при вводе команд пользователь не учитывает, что список поддерживаемых параметров DISM отличается, в зависимости от того, запущена ли командная строка в работающей системе или в среде восстановления (или с загрузочной флешки). Более подробно на эту тему в инструкции, где рассмотрена именно такая ситуация: Неизвестный параметр Cleanup-Image при использовании DISM — причины и варианты решения.

Даже если вы копируете команду с какого-то сайта, следует учитывать, что ошибки могут быть и там — опечатки, копирование кода с ошибками, никто от этого не застрахован.

Версия DISM

Версии DISM и набор поддерживаемых команд отличаются. Не все команды, которые работают в DISM из Windows 11/10 будут работать в Windows 7 и 8.1. К примеру, если в современной ОС с DISM 10-й версии использовать команду

DISM /online /cleanup-image /checkhealth

она будет исправно работать.

Если ту же команду ввести в Windows 7, с DISM версии 6.1, результатом будет ошибка 87:

Ошибка 87 в DISM старой версии

Возможные варианты решения:

  • Не использовать неподдерживаемые команды, если они не критичны для получения нужного результата.
  • Установить последнюю версию DISM, это можно сделать даже в старой версии системы, что будет рассмотрено далее.

Установка последней версии DISM в Windows старых версий

Установить Windows ADK и последнюю версию DISM

Установщики последних версий Windows ADK доступны на официальной странице https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install при этом следует учитывать:

  • Для установки последних версий требуется наличие .NET Framework 5 на компьютере.
  • Это онлайн-установщики и загрузка необходимых компонентов из РФ без VPN не работает.
  • Новая версия DISM не заменяет имеющуюся, а устанавливается отдельно, по умолчанию — в папке C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM и потребуется запускать её из этого расположения, либо добавлять в переменные среды.

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

  1. Для работы некоторых параметров DISM, например, /spsuperseded требуется, чтобы служба �Установщик модулей Windows� была включена. Включить службу можно в Win+Rservices.msc. Находим �Установщик модулей Windows� в списке, дважды нажимаем по службе и устанавливаем тип запуска �Вручную� — значение по умолчанию для этой службы.
  2. Выполнить проверку целостности системных файлов с помощью команды sfc /scannow
  3. Если ранее ошибка не возникала, попробовать использовать точки восстановления системы.
  4. Если есть обновления Windows — попробуйте установить их, однажды в очередном обновлении Windows 10 ошибка 87 была вызвана проблемами в самом обновлении и уже в следующем она была исправлена.

Если проблема сохраняется, опишите в комментариях, при каких обстоятельствах она возникает, а также укажите версию Windows, DISM (отображается после запуска команды), какую именно команду вы пробуете ввести — я постараюсь помочь.