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 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.~bt\Sources\Rollback – в этом каталоге появляются файлы обновлений, если процесс апгрейда Windows 10 завершился с ошибкой и пришлось откатываться на предыдущий билд.
  • \$Windows.~bt\sources\panther
  • \Windows\Panther
  • \Windows\Panther\NewOS

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

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

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

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

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

SetupDiag.exe /Output:C:\SetupDiag\Dumpdebug.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%\system32\migration\CntrtextMig.dll, Migration Operation = IPostApply->ApplySuccess, Plug-in Error: 0x00000032

В данном примере утилита SetupDiag обнаружила, что установка обновления завершилось неудачно из-за ошибки в плагине %windir%\system32\migration\CntrtextMig.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.~bt\sources\rollback'.
Exception System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\$Windows.~bt\sources\rollback'.
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:\tools\Results.log /Mode:Offline /LogsPath:c:\Logs\

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


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)