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
  • Правила SetupDiag
  • Помилка SetupDiag: Main () failed with an unhandled exception

утиліта 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. ~ 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 потроху розширюється. Так, наприклад, в 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.

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

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

Деякі знайдені помилки виправити досить просто (наприклад, нестача місця на системному розділі), інші - складніше. У будь-якому випадку утиліта SetupDiag дозволяє значно швидше продіагностувати і виправити проблеми оновлення редакції на комп'ютерах Windows 10 і позбавляє адміністратора від необхідності ручного аналізу логів.