0 Votes
Last modified by Сергей Коршунов on 2023/12/08 18:46

Show last authors
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 )))