Wiki source code of Использование DISM для проверки и восстановления образа Windows
Last modified by Сергей Коршунов on 2023/12/08 18:46
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | = Использование DISM для проверки и восстановления образа Windows = | ||
| 2 | |||
| 3 | ---- | ||
| 4 | |||
| 5 | Вы можете использовать команды **SFC** (//Проверка системных файлов//) и **DISM** (//Обслуживание образов развертывания и управление ими//) для проверки и восстановления целостности системных файлов и хранилища компонентов образа Windows (Windows Server). Эти инструменты могут быть чрезвычайно полезны, если ваша Windows нестабильна, не загружается, появляются ошибки при попытке запуска встроенных приложений или служб, после заражения вирусом и т. д. | ||
| 6 | |||
| 7 | В этой статье мы рассмотрим, как использовать | ||
| 8 | |||
| 9 | {{{SFC /ScanNow}}} | ||
| 10 | |||
| 11 | |||
| 12 | {{{DISM /Online /Cleanup-Image /RestoreHealth,}}} | ||
| 13 | |||
| 14 | или | ||
| 15 | |||
| 16 | {{{Repair-WindowsImage -Online -RestoreHealth}}} | ||
| 17 | |||
| 18 | команды для восстановления образов и системных файлов в Windows 10/11 и Windows Server 2022/2019/2016. | ||
| 19 | |||
| 20 | == SFC/ScanNow: использование средства проверки системных файлов для восстановления системных файлов Windows == | ||
| 21 | |||
| 22 | Рекомендуется использовать команду DISM для восстановления Windows после проверки целостности системных файлов с помощью инструмента SFC. | ||
| 23 | |||
| 24 | {{{sfc /scannow}}} | ||
| 25 | |||
| 26 | Команда сканирует защищенные системные файлы и, если они отсутствуют или повреждены, пытается восстановить их оригинальные копии из хранилища компонентов Windows (папка C:\Windows\WinSxS). | ||
| 27 | |||
| 28 | Инструменты SFC записывают все свои действия в | ||
| 29 | |||
| 30 | {{{ %windir%\logs\cbs\cbs.log}}} | ||
| 31 | |||
| 32 | . Все записи SFC в файле CBS.log помечены тегом **[SR]**. Чтобы выбрать из журнала только записи, связанные с SFC, выполните команду: | ||
| 33 | |||
| 34 | {{{findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfc.txt"}}} | ||
| 35 | |||
| 36 | Если | ||
| 37 | |||
| 38 | {{{sfc /scannow}}} | ||
| 39 | |||
| 40 | Команда возвращает ошибку «//Защита ресурсов Windows обнаружила поврежденные файлы, но не смогла исправить некоторые из них//», вероятно, инструменту не удалось получить необходимые файлы из хранилища компонентов Windows (см. изображение ниже). | ||
| 41 | |||
| 42 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/sfc-scannow-windows-resource-protection-found-co.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/sfc-scannow-windows-resource-protection-found-co.png]] | ||
| 43 | |||
| 44 | В этом случае вы можете попробовать восстановить хранилище компонентов вашего образа Windows, используя | ||
| 45 | |||
| 46 | {{{DISM.exe}}} | ||
| 47 | |||
| 48 | команда. | ||
| 49 | |||
| 50 | Инструмент DISM (Deployment Image Servicing and Management) доступен во всех версиях Windows, начиная с Vista. | ||
| 51 | |||
| 52 | После восстановления образа Windows вы можете попробовать восстановить системные файлы с помощью SFC. | ||
| 53 | |||
| 54 | == Проверка работоспособности хранилища компонентов Windows с помощью DISM == | ||
| 55 | |||
| 56 | Этот | ||
| 57 | |||
| 58 | {{{DISM /Cleanup-Image /CheckHealth}}} | ||
| 59 | |||
| 60 | переключатель используется для сканирования образа Windows на наличие ошибок и их исправления. Команды DISM необходимо запускать из командной строки с повышенными привилегиями. | ||
| 61 | |||
| 62 | Выполните следующую команду, чтобы проверить наличие признаков повреждения хранилища компонентов образа Windows (неприменимо для Windows 7/Server 2008R2). Эта команда проверяет **флаг CBS**, установленный одним из процессов обслуживания системы. | ||
| 63 | |||
| 64 | {{{DISM /Online /Cleanup-Image /CheckHealth}}} | ||
| 65 | |||
| 66 | Эта команда не выполняет полное сканирование хранилища компонентов. Команда только проверяет, помечен ли ваш образ Windows как поврежденный и возможно ли это исправить. Никакие изменения не вносятся в изображение. | ||
| 67 | |||
| 68 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-cleanup-image-checkhealth-check-windows-1.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-cleanup-image-checkhealth-check-windows-1.png]] | ||
| 69 | |||
| 70 | В этом примере команда вернула, что образ Windows 10 не поврежден: | ||
| 71 | |||
| 72 | {{{No component store corruption detected. | ||
| 73 | The operation completed successfully.}}} | ||
| 74 | |||
| 75 | Чтобы запустить полную проверку работоспособности хранилища компонентов Windows, выполните команду: | ||
| 76 | |||
| 77 | {{{DISM /Online /Cleanup-Image /ScanHealth}}} | ||
| 78 | |||
| 79 | Команда для проверки образа Windows может выполняться достаточно долго (10-30 минут). И вернет один из трех результатов: | ||
| 80 | |||
| 81 | * **Повреждения хранилища компонентов не обнаружено** — DISM не обнаружил ошибок в хранилище компонентов; | ||
| 82 | * ((( | ||
| 83 | **Хранилище компонентов подлежит ремонту** — DISM обнаружил ошибки в хранилище компонентов и может их исправить; | ||
| 84 | ))) | ||
| 85 | * **Хранилище компонентов не подлежит восстановлению** — DISM не может исправить хранилище компонентов Windows (попробуйте использовать более новую версию DISM, иначе вам придется восстанавливать образ Windows из резервной копии, сбрасывать или полностью переустанавливать экземпляр Windows). | ||
| 86 | |||
| 87 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-component-store-is-repairable.jpg~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-component-store-is-repairable.jpg]] | ||
| 88 | |||
| 89 | Чтобы использовать переключатель DISM/ScanHealth в Windows 7 и Windows Server 2008, необходимо установить обновление **KB2966583**. В противном случае вы увидите сообщение: «//Ошибка 87. Параметр ScanHealth не распознается в этом контексте//». | ||
| 90 | |||
| 91 | В некоторых случаях DISM /ScanHealth возвращает следующие ошибки: | ||
| 92 | |||
| 93 | * Ошибка DISM 1726 — «Ошибка удаленного вызова процедуры»; | ||
| 94 | * Ошибка DISM 1910 — «Указанный экспортер объектов не найден». | ||
| 95 | |||
| 96 | Это определенно означает, что ваш образ Windows поврежден и нуждается в восстановлении. | ||
| 97 | |||
| 98 | == Восстановление образа Windows с помощью DISM/RestoreHealth == | ||
| 99 | |||
| 100 | Чтобы исправить повреждение в хранилище компонентов образа Windows, необходимо использовать параметр **RestoreHealth** команды DISM. Эта опция позволит вам исправить ошибки, обнаруженные в образе Windows, автоматически загружать и заменять файлы поврежденных или отсутствующих компонентов оригинальными версиями файлов из Центра обновления Windows (ваш компьютер должен иметь прямой доступ в Интернет). Запустите команду: | ||
| 101 | |||
| 102 | {{{DISM /Online /Cleanup-Image /RestoreHealth}}} | ||
| 103 | |||
| 104 | В Windows 7/2008 R2 эта команда выглядит иначе: | ||
| 105 | |||
| 106 | {{{DISM.exe /Online /Cleanup-Image /ScanHealth}}} | ||
| 107 | |||
| 108 | Процесс сканирования и восстановления Хранилища компонентов может занять довольно много времени (30 минут и более). DISM автоматически загрузит и заменит файлы поврежденных или отсутствующих компонентов оригинальными версиями файлов с серверов Центра обновления Windows. | ||
| 109 | |||
| 110 | Если восстановление прошло успешно, появится следующее сообщение: | ||
| 111 | |||
| 112 | {{{The restore operation completed successfully.}}} | ||
| 113 | |||
| 114 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-online-cleanup-image-restorehealth-the-r.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-online-cleanup-image-restorehealth-the-r.png]] | ||
| 115 | |||
| 116 | == DISM /RestoreHealth: не удалось найти исходные файлы == | ||
| 117 | |||
| 118 | Если ваш компьютер (сервер) не имеет прямого доступа в Интернет (расположен за прокси-сервером или использовал внутренний WSUS для получения обновлений безопасности и сборки) или служба Центра обновления Windows отключена/повреждена (как восстановить клиент Центра обновления Windows), то при восстановлении хранилища компонентов появляются следующие ошибки: | ||
| 119 | |||
| 120 | * **0x800f0906 -** не удалось загрузить исходные файлы. Используйте параметр источника, чтобы указать расположение файлов, необходимых для восстановления функции; | ||
| 121 | * **0x800f0950** — ошибка DISM. Операция не проводилась; | ||
| 122 | * **0x800F081F** — не удалось найти исходные файлы. Используйте параметр «Источник», чтобы указать расположение файлов, необходимых для восстановления функции. | ||
| 123 | |||
| 124 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-error-0x800f081f-the-source-files-could-not.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-error-0x800f081f-the-source-files-could-not.png]] | ||
| 125 | |||
| 126 | Во всех этих случаях вы можете использовать альтернативные способы получения исходных файлов хранилища компонентов. Может быть: | ||
| 127 | |||
| 128 | * Установочный диск/флешка/ISO образ; | ||
| 129 | * Смонтированный файл wim/esd; | ||
| 130 | * Папка \sources\SxS с установочного диска; | ||
| 131 | * Файл install.wim (esd) с установочным образом Windows. | ||
| 132 | |||
| 133 | Вы можете указать файл WIM или ESD с исходным установочным образом Windows, который будет использоваться в качестве источника для восстановления системных файлов. Предположим, вы смонтировали установочный образ Windows 11 ISO на виртуальный диск **D:**. | ||
| 134 | |||
| 135 | **Примечание**. Чтобы восстановить поврежденные файлы в хранилище компонентов из локального источника, сборка и выпуск Windows в образе WIM/ESD должны соответствовать таковым в вашей системе. | ||
| 136 | |||
| 137 | Проверьте, какая версия Windows установлена на вашем компьютере, с помощью следующей команды PowerShell: | ||
| 138 | |||
| 139 | {{{Get-ComputerInfo |select WindowsProductName,WindowsEditionId,WindowsVersion, OSDisplayVersion}}} | ||
| 140 | |||
| 141 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/powershell-get-windows-edition-version.jpg~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/powershell-get-windows-edition-version.jpg]] | ||
| 142 | |||
| 143 | Перечислите доступные выпуски Windows в установочном wim-образе: | ||
| 144 | |||
| 145 | {{{Get-WindowsImage -ImagePath "D:\sources\install.wim"}}} | ||
| 146 | |||
| 147 | В нашем случае образ Windows 11 Pro в файле install.wim имеет | ||
| 148 | |||
| 149 | {{{ImageIndex = 6}}} | ||
| 150 | |||
| 151 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/powershell-get-windowsimage-index.jpg~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/powershell-get-windowsimage-index.jpg]] | ||
| 152 | |||
| 153 | Чтобы восстановить хранилище компонентов из локального файла WIM/ESD с использованием локальных исходных файлов (без использования онлайн-служб Центра обновления Windows), выполните следующую команду (не забудьте указать индекс версии Windows в файле образа): | ||
| 154 | |||
| 155 | {{{DISM /online /cleanup-image /restorehealth /source:WIM:D:\sources\install.wim:6 /limitaccess}}} | ||
| 156 | |||
| 157 | или: | ||
| 158 | |||
| 159 | {{{DISM /online /cleanup-image /restorehealth /source:ESD:D:\sources\install.esd:6 /limitaccess}}} | ||
| 160 | |||
| 161 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-clenup-image-restorehealth-windows11.jpg~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-clenup-image-restorehealth-windows11.jpg]] | ||
| 162 | |||
| 163 | При выполнении команды DISM /RestoreHealth могут появиться следующие ошибки: | ||
| 164 | |||
| 165 | * ((( | ||
| 166 | **Ошибка: 50: DISM не поддерживает обслуживание Windows PE с параметром /Online** — это означает, что ваш DISM считает, что вы используете образ WinPE. Чтобы это исправить, удалите раздел реестра | ||
| 167 | |||
| 168 | {{{HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT}}} | ||
| 169 | |||
| 170 | ; | ||
| 171 | ))) | ||
| 172 | * **Ошибка DISM 87: **убедитесь, что команда DISM написана правильно, убедитесь, что вы используете версию DISM для вашей версии Windows (обычно при загрузке в WinPE/WinRE). | ||
| 173 | |||
| 174 | Вы можете найти журнал сканирования и восстановления системных файлов DISM здесь: | ||
| 175 | |||
| 176 | {{{C:\Windows\Logs\CBS.log}}} | ||
| 177 | |||
| 178 | После восстановления хранилища компонентов вы можете запустить средство проверки системных файлов ( | ||
| 179 | |||
| 180 | {{{sfc /scannow}}} | ||
| 181 | |||
| 182 | ). Вполне вероятно, что он сможет восстановить поврежденные или отсутствующие системные файлы (//Защита ресурсов Windows обнаружила поврежденные файлы и успешно восстановила их//). | ||
| 183 | |||
| 184 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/tool-sfc-scannow-windows-resource-protection-fo.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/tool-sfc-scannow-windows-resource-protection-fo.png]] | ||
| 185 | |||
| 186 | Если SFC.exe не обнаружит повреждения системных файлов, появится сообщение | ||
| 187 | |||
| 188 | {{{Windows Resource Protection did not find any integrity violations.}}} | ||
| 189 | |||
| 190 | == Repair-WindowsImage: восстановление хранилища компонентов образа Windows с помощью PowerShell == | ||
| 191 | |||
| 192 | Версия PowerShell в Windows 10/11 и Windows Server 2016/2019/2022 имеет командлет, аналогичный командам DISM, рассмотренным выше. Чтобы просканировать хранилище компонентов Windows и найти любые повреждения, выполните следующую команду: | ||
| 193 | |||
| 194 | {{{Repair-WindowsImage -Online -ScanHealth}}} | ||
| 195 | |||
| 196 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/repair-windowsimage-online-scanhealth-powershell.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/repair-windowsimage-online-scanhealth-powershell.png]] | ||
| 197 | |||
| 198 | Если в хранилище компонентов ошибок не обнаружено, появится следующее сообщение: | ||
| 199 | |||
| 200 | {{{ImageHealth State: Healthy}}} | ||
| 201 | |||
| 202 | Чтобы восстановить файлы хранилища компонентов Windows, запустите: | ||
| 203 | |||
| 204 | {{{Repair-WindowsImage -Online -RestoreHealth}}} | ||
| 205 | |||
| 206 | Если у вас нет прямого доступа в Интернет, эта команда может зависнуть в процессе восстановления образа. Вы можете восстановить системные компоненты из локального файла образа Windows (install.wim/install.esd), скопированного из установочного ISO-образа Windows 10. Здесь также нужно указать индекс версии Windows в wim-файле в качестве источника восстановления: | ||
| 207 | |||
| 208 | {{{Repair-WindowsImage -Online -RestoreHealth -Source F:\sources\install.wim:5 -LimitAccess}}} | ||
| 209 | |||
| 210 | == Используйте DISM Offline для восстановления образа Windows == | ||
| 211 | |||
| 212 | Если Windows загружается неправильно, вы можете использовать DISM для проверки и восстановления системных файлов вашего образа Windows в автономном режиме. | ||
| 213 | |||
| 214 | Если Windows не загружается после установки обновлений, попробуйте сначала удалить последние обновления в соответствии с руководством. | ||
| 215 | |||
| 216 | 1. ((( | ||
| 217 | Загрузите свое устройство с установочного образа Windows (вы можете использовать Media Creation Tool для создания загрузочного USB-накопителя Windows) и нажмите | ||
| 218 | |||
| 219 | {{{Shift + F10}}} | ||
| 220 | |||
| 221 | на начальном экране установки Windows; | ||
| 222 | ))) | ||
| 223 | 1. ((( | ||
| 224 | Чтобы проверить буквы дисков, назначенные в WinPE, выполните команду | ||
| 225 | |||
| 226 | {{{diskpart }}} | ||
| 227 | |||
| 228 | -> | ||
| 229 | |||
| 230 | {{{list vol}}} | ||
| 231 | |||
| 232 | (в моем примере буква диска **C:\** присвоена диску, на котором установлена Windows, и я буду использовать ее в следующих командах); | ||
| 233 | |||
| 234 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/diskpart-get-assigned-drive-letters.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/diskpart-get-assigned-drive-letters.png]] | ||
| 235 | ))) | ||
| 236 | 1. ((( | ||
| 237 | Проверьте системные файлы и восстановите поврежденные с помощью команды: | ||
| 238 | |||
| 239 | {{{sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows}}} | ||
| 240 | |||
| 241 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/sfc-scannow-offline-offbootdir-offwindir.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/sfc-scannow-offline-offbootdir-offwindir.png]] | ||
| 242 | ))) | ||
| 243 | 1. ((( | ||
| 244 | Чтобы восстановить автономный образ Windows, используйте следующую команду (я использую WIM-файл с установочным образом Windows 10, с которого загружается компьютер, в качестве источника для восстановления моего автономного образа Windows): | ||
| 245 | |||
| 246 | {{{Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim}}} | ||
| 247 | |||
| 248 | [[~[~[image:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-cleanup-image-restore-offline-windows-10.png~]~]>>url:https://ru.a-d.site/common-images/dism-cleanup-image-restorehealth/dism-cleanup-image-restore-offline-windows-10.png]] | ||
| 249 | ))) | ||
| 250 | 1. ((( | ||
| 251 | Если на целевом диске недостаточно свободного места, вам понадобится отдельный диск, например. г., F:\, на котором вы создадите пустую папку | ||
| 252 | |||
| 253 | {{{mkdir F:\scratch}}} | ||
| 254 | |||
| 255 | . Выполните ремонт хранилища компонентов, используя рабочий каталог с помощью команды: | ||
| 256 | |||
| 257 | {{{Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /ScratchDir:F:\scratch}}} | ||
| 258 | ))) | ||
| 259 | |||
| 260 | **Совет. **Вот некоторые полезные параметры DISM, которые должен знать администратор: | ||
| 261 | |||
| 262 | * | ||
| 263 | |||
| 264 | {{{DISM /Add-Package}}}((( | ||
| 265 | - установить файлы обновлений MSU/CAB, интегрировать обновления безопасности в ваш образ Windows; | ||
| 266 | ))) | ||
| 267 | * | ||
| 268 | |||
| 269 | {{{DISM /Get-Drivers}}}((( | ||
| 270 | - получить список установленных драйверов; | ||
| 271 | ))) | ||
| 272 | * | ||
| 273 | |||
| 274 | {{{DISM /Add-Driver}}}((( | ||
| 275 | - внедрить драйверы в установочный образ Windows; | ||
| 276 | ))) | ||
| 277 | * | ||
| 278 | |||
| 279 | {{{DISM /Add-Capability}}}((( | ||
| 280 | - установка дополнительных функций Windows через функции по запросу (FoD). Например, RSAT, сервер OpenSSH или клиент Windows SSH); | ||
| 281 | ))) | ||
| 282 | * | ||
| 283 | |||
| 284 | {{{DISM /Enable-Features}}}((( | ||
| 285 | и | ||
| 286 | |||
| 287 | {{{/Disable-Features}}} | ||
| 288 | |||
| 289 | - включение и отключение компонентов Windows (например, протокола SMBv1); | ||
| 290 | ))) | ||
| 291 | * | ||
| 292 | |||
| 293 | {{{Dism.exe /StartComponentCleanup}}}((( | ||
| 294 | - очистить Хранилище компонентов и удалить старые версии компонентов (из папки WinSxS); | ||
| 295 | ))) | ||
| 296 | * | ||
| 297 | |||
| 298 | {{{Dism /set-edition}}}((( | ||
| 299 | - обновление с ознакомительной до полной версии Windows без переустановки. | ||
| 300 | ))) |