Categories: Windows 10

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 создает в процесс обновления.

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

  • $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 понемногу расширяется. Так, например, в 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.

При успешном обновлении в файле 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 в офлайн режиме:

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

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

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago