SetupDiag – утилита диагностики проблем и ошибок обновления версий Windows 10

Согласно жизненному циклу Windows 10 пользователи должны устанавливать большие пакеты обновлений чаще, чем в предыдущих версиях Windows. Апгрейд версии Windows 10 происходит 2 раза в год. На текущий момент – последняя актуальная версия Windows 10 1803 (April 2018 Update). Апгрейд версии Windows 10 можно сравнить с установкой Service Pack в более ранних версиях Windows. Участники программы предварительной оценки — Windows 10 Insider Preview устанавливают такие сборки гораздо чаще — за месяц билд системы обновляется 3-4 раза.

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

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

Утилита SetupDiag.exe

К счастью Microsoft недавно выпустила новую отдельную диагностическую утилиту SetupDiag.exe , которая позволяет получить детальную информацию о причинах, из-за которых не удалось выполнить обновление версии Windows 10 на вашем компьютере.

Данная утилита консольная, ее нужно запустить непосредственно на компьютере с Win10, который не удается обновить, либо в офлайн режиме на другом компьютере, на который предварительно нужно скопировать файлы логов с проблемного компьютера.

Утилита SetupDiag сканирует логи установки Windows, и ищет в ней определенные ошибки, которые свидетельствуют о той или иной проблеме обновления Windows.

Утилита SetupDiag.exe предназначена для Windows 10 и для своей работы требует наличие установленного .NET Framework 4.6 или выше ( как определить какие версии .NET Framework установлены на вашем компьютере ). Использовать утилиту можно как для анализа ошибок апгрейда билдовWindows 10, так и при обновлении до Windows 10 с Windows 7 SP1 или Windows 8.1 (файлы логов обновлений придется скопировать для анализа на компьютер с Windows 10).

Скачайте утилиту SetupDiag по ссылке https://go.microsoft.com/fwlink/?linkid=870142 и запустите с правами администратора. При запуске без параметров утилита пытается найти файлы логов, которые Windows 10 создает в процесс обновления.

SetupDiag.exe - утилита диагностики ошибок апгрейда версии Windows 10

Выполняется поиск по различным стандартным путям, которые создаются системой на разных этапах установки новой сборки. Файлы логов по-умолчанию хранятся в следующих папках:

  • $Windows.~btSourcesRollback – в этом каталоге появляются файлы обновлений, если процесс апгрейда Windows 10 завершился с ошибкой и пришлось откатываться на предыдущий билд.
  • $Windows.~btsourcespanther
  • WindowsPanther
  • WindowsPantherNewOS

После окончания анализа логов, утилита создает в каталоге, из которого она запущена файл results.log , в котором содержится список найденных ошибок, которые возникли в процессе обновления (местоположение итогового файла можно указать с помощью ключа / Output) . Кроме того, утилита формирует zip архив с исходными файлами логов.

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

SetupDiag.exe /Output:C:SetupDiagResults.log /Mode:Offline /LogsPath:D:Logs

Утилиту SetupDiag можно использовать для анализа файлов дампов памяти (minidump), которые в Windows 10 создаются при появлении BSOD (для анализа нужно установить WinDbg ). Файл setupmem.dmp создается в %SystemDrive%$Windows.~btSourcesRollback или в %WinDir%PantherNewOSRollback в зависимости от того, на каком этапе прервался процесс апгрейда сборки Windows 10.

Чтобы выполнить анализ файла дампа setupmem.dmp в указанном каталоге, выполните:

SetupDiag.exe /Output:C:SetupDiagDumpdebug.log /Mode:Offline /LogsPath:D:Dump

Правила SetupDiag

При запуске SetupDiag в консоли вы увидите следующие строки:

SetupDiag: processing rule: CompatScanOnly. No match.
SetupDiag: processing rule: BitLockerHardblock. No match.
SetupDiag: processing rule: VHDHardblock. No match.
SetupDiag: processing rule: PortableWorkspaceHardblock. No match.
SetupDiag: processing rule: AuditModeHardblock. No match.
SetupDiag: processing rule: SafeModeHardblock. No match.

Утилита SetupDiag использует набор предопределенных шаблонов (правил), которые используются для поиска известных проблем апгрейда редакции Windows 10. Т.е. утилита SetupDiag поможет вам обнаружить только те ошибки обновления, которые определены в этих паттернах. Строка No match означает, что указанная проблема в логах не найдена.

SetupDiag - проверка логов апгрейда билда windows 10

Набор правил SetupDiag понемногу расширяется. Так, например, в SetupDiag v1.00 (30.03.2018) было 26 правил, то в SetupDiag v1.20 (30.5.2018) имеется уже 41 шаблона. У каждого правила есть имя и уникальный идентификатор. Вкратце рассмотрим правила SetupDiag и связанные ошибки обновления версии Windows 10.

  1. CompatScanOnly — FFDAFD37-DB75-498A-A893-472D49A1311D – запуск установки setup.exe вызван в режиме проверки совместимости, а не обновления.
  2. BitLockerHardblock — C30152E2-938E-44B8-915B-D1181BA635AE – в исходной системе включен BitLocker, который не поддерживается в целевой.
  3. VHDHardblock — D9ED1B82-4ED8-4DFD-8EC0-BE69048978CC – система загружается в виде VHD образа (такой режим обновления Windows 10 не поддерживается).
  4. PortableWorkspaceHardblock — 5B0D3AB4-212A-4CE4-BDB9-37CA404BB280 – система загружается с USB устройства Windows To-Go (апгрейд системы в среде Windows To-Go не поддерживается).
  5. AuditModeHardblock — A03BD71B-487B-4ACA-83A0-735B0F3F1A90 – операционная система загружена в режиме аудита (Audit Mode).
  6. SafeModeHardblock — 404D9523-B7A8-4203-90AF-5FBB05B6579B — операционная система загружена в безопасном режиме (Safe mode).
  7. InsufficientSystemPartitionDiskSpaceHardblock — 3789FBF8-E177-437D-B1E3-D38B4C4269D1 – на системном разделе недостаточно места для обновления.
  8. CompatBlockedApplicationAutoUninstall – BEBA5BC6-6150-413E-8ACE-5E1EC8D34DD5 – найдено несовместимое приложение, которое нужно удалить перед апгрейдом версии.
  9. CompatBlockedApplicationDismissable — EA52620B-E6A0-4BBC-882E-0686605736D9 – при установке в тихом (с ключом /quiet), возникла ошибка, требующая взаимодействия с пользователем и препятствующая установке.
  10. CompatBlockedApplicationManualUninstall — 9E912E5F-25A5-4FC0-BEC1-CA0EA5432FF4 – в системе обнаружено нестандартное приложение, отсутствующее в Add/Remove Programs, файлы которого нужно удалить вручную.
  11. HardblockDeviceOrDriver — ED3AEFA1-F3E2-4F33-8A21-184ADF215B1B – один из установленных драйверов не совместим с новой ОС и должен быть удален.
  12. HardblockMismatchedLanguage — 60BA8449-CF23-4D92-A108-D6FCEFB95B45 не совпадает язык исходной системы и целевой.
  13. HardblockFlightSigning — 598F2802-3E7F-4697-BD18-7A6371C8B2F8 – вы пытаетесь установить пре-релиз (в рамках программы Windows Insider) на компьютере с включённым режимом Secure Boot . В этом режиме пре-релиз не загрузится.
  14. DiskSpaceBlockInDownLevel — 6080AFAC-892E-4903-94EA-7A17E69E549E в ходе операции обновления на диске закончилось место.
  15. DiskSpaceFailure — 981DCBA5-B8D0-4BA7-A8AB-4030F7A10191 – место на диске кончилось после перезагрузки в новый релиз.
  16. DeviceInstallHang — 37BB1C3A-4D79-40E8-A556-FDA126D40BC6 – в процессе установки система зависла, или упала в BSOD.
  17. DebugSetupMemoryDump — C7C63D8A-C5F6-4255-8031-74597773C3C6 – BSOD при установке. Для дальнейшего анализа нужно исследовать файл дампа памяти.
  18. DebugSetupCrash — CEEBA202-6F04-4BC3-84B8-7B99AED924B1 – ошибка установки, требующая анализа дампа памяти.
  19. DebugMemoryDump — 505ED489-329A-43F5-B467-FCAAF6A1264C – правило для анализа файла memory.dmp , созданного в процессе установки/обновления.
  20. BootFailureDetected — 4FB446C2-D4EC-40B4-97E2-67EB19D1CFB7 – ошибка загрузки на определённой фазе обновления.
  21. FindDebugInfoFromRollbackLog — 9600EB68-1120-4A87-9FE9-3A4A70ACFC37 – информация об BSOD без необходимости установки пакета отладки.
  22. AdvancedInstallerFailed — 77D36C96-32BE-42A2-BB9C-AAFFE64FCADC — фатальная ошибка установщика.
  23. FindMigApplyUnitFailure — A4232E11-4043-4A37-9BF4-5901C46FD781 – ошибка в модуле миграции.
  24. FindMigGatherUnitFailure — D04C064B-CD77-4E64-96D6-D26F30B4EE29 – подробная информация о сбойном компоненте миграции.
  25. CriticalSafeOSDUFailure — 73566DF2-CA26-4073-B34C-C9BC70DBF043 – ошибка при обновлении образа SafeOS.
  26. UserProfileCreationFailureDuringOnlineApply — 678117CE-F6A9-40C5-BC9F-A22575C78B14 – ошибка при создании или изменении профиля пользователя в режиме онлайн фазы апгрейда.
  27. WimMountFailure — BE6DF2F1-19A6-48C6-AEF8-D3B0CE3D4549 – при обновлении не удалось смонтировать wim файл.
  28. FindSuccessfulUpgrade — 8A0824C8-A56D-4C55-95A0-22751AB62F3E – выполнено успешное обновление билда Windows 10.
  29. FindSetupHostReportedFailure — 6253C04F-2E4E-4F7A-B88E-95A69702F7EC – сбой в начале процесса обновления при работе setuphost.exe.
  30. FindDownlevelFailure — 716334B7-F46A-4BAA-94F2-3E31BC9EFA55 – ошибка в SetupPlatform.
  31. FindAbruptDownlevelFailure — 55882B1A-DA3E-408A-9076-23B22A0472BD – информация о последней ошибке, когда записи в журнале неожиданно обрываются.
  32. FindSetupPlatformFailedOperationInfo — 307A0133-F06B-4B75-AEA8-116C3B53C2D1 – информация о фазе и ошибке при критическом сбое в SetupPlatform.
  33. FindRollbackFailure — 3A43C9B5-05B3-4F7C-A955-88F991BB5A48 – последнее действие, и сбойная фаза перед началом процедура отката к предыдущей версии Windows 10.
  34. AdvancedInstallerGenericFailure – 4019550D-4CAA-45B0-A222-349C48E86F71 – ошибки чтения/записи AdvancedInstaller.
  35. OptionalComponentFailedToGetOCsFromPackage – D012E2A2-99D8-4A8C-BBB2-088B92083D78 – информация об ошибке в опциональном компоненте при попытке получить список компонентов пакета.
  36. OptionalComponentOpenPackageFailed – 22952520-EC89-4FBD-94E0-B67DF88347F6 – ошибка при попытке открыть опциональный компонент.
  37. OptionalComponentInitCBSSessionFailed – 63340812-9252-45F3-A0F2-B2A4CA5E9317 – установщик или определенный компонент не запущены.
  38. UserProfileCreationFailureDuringFinalize – C6677BA6-2E53-4A88-B528-336D15ED1A64 – ошибка создания профиля на финальном этапе обновления.
  39. WimApplyExtractFailure – 746879E9-C9C5-488C-8D4B-0C811FF3A9A8 – ошибка образа wim при его распаковке.
  40. UpdateAgentExpanderFailure – 66E496B3-7D19-47FA-B19B-4040B9FD17E2 — ошибка DPX при обновлении через Windows Update.
  41. FindFatalPluginFailure – E48E3F1C-26F6-4AFB-859B-BF637DA49636 – ошибка в одном из подключаемых модулей.

Пример файла results.log с указанием информации о системе, исходной и целевой версии Windows 10 и найденной ошибке FindFatalPluginFailure:

Matching Profile found: FindFatalPluginFailure - E48E3F1C-26F6-4AFB-859B-BF637DA49636
System Information:
Machine Name = Offline
Manufacturer = VMware, Inc.
Model = VMware Virtual Platform
HostOSArchitecture = x64
FirmwareType = PCAT
BiosReleaseDate = 20150921000000.000000+000
BiosVendor = PhoenixBIOS 4.0 Release 6.0
BiosVersion = 6.00
HostOSVersion = 10.0.16299
HostOSBuildString = 16299.15.amd64fre.rs3_release.170928-1534
TargetOSBuildString = 10.0.17134.1 (rs4_release.180410-1804)
HostOSLanguageId = 1049
HostOSEdition = Professional
RegisteredAV =
FilterDrivers =
UpgradeStartTime = 5/24/2018 9:17:59 PM
UpgradeEndTime = 5/24/2018 10:10:36 PM
UpgradeElapsedTime = 00:52:37
ReportId = 004db4ee-17f9-4b6f-bc46-a8bd9877ccd8

Error: SetupDiag reports fatal migration plug-in failure. Plug-in Name = %windir%system32migrationCntrtextMig.dll, Migration Operation = IPostApply->ApplySuccess, Plug-in Error: 0x00000032

В данном примере утилита SetupDiag обнаружила, что установка обновления завершилось неудачно из-за ошибки в плагине %windir%system32migrationCntrtextMig.dll.
SetupDiag results.log

При успешном обновлении в файле results.log будет содержаться строка:

Matching Profile found: FindSuccessfulUpgrade - 8A0824C8-A56D-4C55-95A0-22751AB62F3E

Ошибка SetupDiag: Main() failed with an unhandled exception

В некоторых случая при запуске SetupDiag в логе вы можете столкнутся с ошибкой: « SetupDiag: Main() failed with an unhandled exception ».

10:20:58 - SetupDiag: Main() failed with an unhandled exception:
Could not find a part of the path 'C:$Windows.~btsourcesrollback'.
Exception System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:$Windows.~btsourcesrollback'.
Source: mscorlib
Stack: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern, SearchOption searchOption)
at Microsoft.Internal.Deployment.SetupDiag.CSetupAPIParser.GetCorrectSetupApiLog(String logsPath, DateTime dtSetupActLogTime)
at Microsoft.Internal.Deployment.SetupDiag.Directive.DirectiveDetermineDeviceInstallHang()
at Microsoft.Internal.Deployment.SetupDiag.Directive.DoDirective()
at Microsoft.Internal.Deployment.SetupDiag.CSetupDiag.RunDiag(String strRulesFile, String strlogsPath, String strMode, String strOutPut, String strFormat, String resLevel, Boolean fCreateLogs)
at Microsoft.Internal.Deployment.SetupDiag.Program.Main(String[] args)

SetupDiag: Main() failed with an unhandled exception

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

SetupDiag.exe /Output:C:toolsResults.log /Mode:Offline /LogsPath:c:Logs

Некоторые найденные ошибки исправить довольно просто (например, нехватка места на системном разделе), другие – сложнее. В любом случае утилита SetupDiag позволяет значительно быстрее продиагностировать и исправить проблемы обновления редакции на компьютерах Windows 10 и избавляет администратора от необходимости ручного анализа логов.

EnglishRussianUkrainian