SetupDiag.exeを使ってWindows 10のアップグレードエラーを診断する完全ガイド
Windows 10のライフサイクルポリシーでは、従来のWindowsバージョンと比べて、大規模な更新プログラム(機能更新プログラム)をより頻繁にインストールする必要があります。Windows 10は年2回、大型アップデートが提供されており、執筆時点での最新バージョンはWindows 10 1809(October 2018 Update)です。このバージョンアップの仕組みは、かつてのWindowsにおけるService Packの適用に近いものと言えます。また、Windows Insider Previewプログラムに参加しているユーザーはさらに頻繁にビルドを受け取り、月に3〜4回システムが更新されます。
しかし、Windows 10のアップグレードが常に成功するとは限りません。さまざまな理由により、新しいビルドのインストールに失敗することがあります。ところが、Windows自体は更新に失敗した理由について分かりやすい情報を表示してくれないため、原因を特定するのが難しい場合があります。実は、アップグレード処理に関する必要な情報はすべてログファイルに記録されています。これらの情報は、Windows 10のアップグレードエラーを診断・修正する際に非常に役立ちます。ただし、これらのログはプレーンテキスト形式であり、その中から意味のある情報を見つけ出すには、相当なWindowsの専門知識が必要です。
Microsoft純正ツール「SetupDiag.exe」とは
幸い、Microsoftは新しい診断ツールSetupDiag.exeをリリースしました。このツールを使えば、お使いのコンピューターでWindows 10のビルドアップグレードが失敗した理由について、詳細な情報を取得できます。SetupDiagはコマンドラインツールであり、アップグレードに失敗したWindows 10マシン上で直接実行するか、または問題のあるPCから事前にログファイルをコピーしておいた別のコンピューター上でオフラインモードで実行します。
SetupDiagはWindowsのインストールログをスキャンし、特定のアップグレード問題を示すエラーがないかを調べます。
SetupDiag.exeはWindows 10上で動作し、.NET Framework 4.6以降がコンピューターにインストールされている必要があります。このツールは、Windows 10ビルド間のアップグレードエラーの診断だけでなく、Windows 7 SP1やWindows 8.1からWindows 10へのアップグレード時にも利用できます(その場合は、アップグレードのログファイルをWindows 10が動作するコンピューターにコピーして分析します)。
SetupDiagツールはこちらのリンク https://go.microsoft.com/fwlink/?linkid=870142 からダウンロードし、管理者権限のコマンドプロンプト(cmd)で実行してください。パラメータを指定せずに実行すると、Windows 10がアップグレード中に作成するログファイルを自動的に検索します。
SetupDiagの検索対象は、新しいWindows 10ビルドのインストールの各段階でシステムが作成する標準パスです。デフォルトでは、ログファイルは以下のフォルダに格納されています:
\$Windows.~bt\Sources\Rollback— Windows 10のアップグレードがエラーで終了し、以前のビルドへロールバックした場合に、このディレクトリにアップグレードファイルが残ります;\$Windows.~bt\sources\panther\Windows\Panther\Windows\Panther\NewOS
ログの解析が完了すると、ツールは実行したディレクトリ内にresults.logファイルを作成します。このファイルには、アップグレード中に発生したエラーの一覧が記録されます(/Outputパラメータで結果ファイルの出力先を指定することも可能です)。また、ユーティリティは元のログファイルをまとめたZIPアーカイブも生成します。
SetupDiagはオフラインモードでも実行でき、別のコンピューターからコピーしたログファイルをスキャンできます。例えば、特定のフォルダ内のログをオフラインで検索し、結果を指定したファイルに保存するには、次のコマンドを実行します:
SetupDiag.exe /Output:C:\SetupDiag\Results.log /Mode:Offline /LogsPath:D:\Logs
さらに、SetupDiagはBSOD(ブルースクリーン)発生時にWindows 10が作成するメモリダンプファイル(minidump)の解析にも使用できます(WinDbgのインストールが必要です)。setupmem.dmpは、アップグレードが中断された段階に応じて%SystemDrive%$Windows.~bt\Sources\Rollbackまたは%WinDir%\Panther\NewOS\Rollbackに作成されます。
指定したディレクトリ内の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(2018年3月30日版)では26個のルールでしたが、v1.4.0.0(2018年12月18日版)では53個のテンプレートが用意されています。各ルールには名前と一意の識別子(GUID)が割り当てられています。以下に、SetupDiagの主なルールと、それに関連するWindows 10アップグレードエラーを簡単に紹介します。
- CompatScanOnly — FFDAFD37-DB75-498A-A893-472D49A1311D – setup.exeがアップグレードモードではなく互換性モードで呼び出されました。
- BitLockerHardblock — C30152E2-938E-44B8-915B-D1181BA635AE – ソースシステムでBitLockerが有効になっていますが、ターゲットシステムではサポートされていません。
- VHDHardblock — D9ED1B82-4ED8-4DFD-8EC0-BE69048978CC – システムがVHDイメージとして起動しています(このアップグレードモードはWindows 10ではサポートされていません)。
- PortableWorkspaceHardblock — 5B0D3AB4-212A-4CE4-BDB9-37CA404BB280 – システムがUSBのWindows To Goデバイスから起動しています(Windows To Go環境でのアップグレードはサポートされていません)。
- AuditModeHardblock — A03BD71B-487B-4ACA-83A0-735B0F3F1A90 – OSが監査モード(Audit Mode)で起動しています。
- SafeModeHardblock — 404D9523-B7A8-4203-90AF-5FBB05B6579B – OSがセーフモードで起動しています。
- InsufficientSystemPartitionDiskSpaceHardblock — 3789FBF8-E177-437D-B1E3-D38B4C4269D1 – システムパーティションにアップグレードに必要な十分な空き容量がありません。
- CompatBlockedApplicationAutoUninstall – BEBA5BC6-6150-413E-8ACE-5E1EC8D34DD5 – ビルドアップグレード前に削除が必要な互換性のないアプリケーションが見つかりました。
- CompatBlockedApplicationDismissable — EA52620B-E6A0-4BBC-882E-0686605736D9 – /quietキーを付けたサイレントインストール中に、ユーザーの操作を必要とするエラーが発生し、インストールがブロックされました。
- CompatBlockedApplicationManualUninstall — 9E912E5F-25A5-4FC0-BEC1-CA0EA5432FF4 – 「プログラムの追加と削除」に登録されていない非標準アプリケーションがシステム内に見つかりました。そのファイルは手動で削除する必要があります。
- HardblockDeviceOrDriver — ED3AEFA1-F3E2-4F33-8A21-184ADF215B1B – インストール済みドライバーのいずれかが新しいOSと互換性がなく、削除が必要です。
- HardblockMismatchedLanguage — 60BA8449-CF23-4D92-A108-D6FCEFB95B45 – ソースシステムとターゲットシステムの言語が一致していません。
- HardblockFlightSigning — 598F2802-3E7F-4697-BD18-7A6371C8B2F8 – Secure Bootが有効なコンピューターに、Windows Insiderプログラムのプレリリース版をインストールしようとしています。プレリリース版はこのモードでは起動できません。
- DiskSpaceBlockInDownLevel — 6080AFAC-892E-4903-94EA-7A17E69E549E – アップグレード中にディスク容量が不足しました。
- DiskSpaceFailure — 981DCBA5-B8D0-4BA7-A8AB-4030F7A10191 – 新しいリリースへの再起動後にディスク容量が不足しました。
- DeviceInstallHang — 37BB1C3A-4D79-40E8-A556-FDA126D40BC6 – アップグレードのインストール中にシステムがハングまたは失敗しました(BSODが発生)。
- DebugSetupMemoryDump — C7C63D8A-C5F6-4255-8031-74597773C3C6 – インストール中にBSODが発生しました。詳細なデバッグのためメモリダンプの解析が必要です。
- DebugSetupCrash — CEEBA202-6F04-4BC3-84B8-7B99AED924B1 – メモリダンプのデバッグを必要とするセットアップエラーです。
- DebugMemoryDump — 505ED489-329A-43F5-B467-FCAAF6A1264C – セットアップ/アップグレード中に作成されたmemory.dmpファイルをデバッグするためのルールです。
- BootFailureDetected — 4FB446C2-D4EC-40B4-97E2-67EB19D1CFB7 – アップグレードの特定の段階で起動障害が発生しました。
- FindDebugInfoFromRollbackLog — 9600EB68-1120-4A87-9FE9-3A4A70ACFC37 – デバッグパッケージをインストールしなくてもBSODに関する情報を提供します。
- AdvancedInstallerFailed — 77D36C96-32BE-42A2-BB9C-AAFFE64FCADC – 致命的なインストーラーエラーです。
- FindMigApplyUnitFailure — A4232E11-4043-4A37-9BF4-5901C46FD781 – 移行ユニットでエラーが発生しました。
- FindMigGatherUnitFailure — D04C064B-CD77-4E64-96D6-D26F30B4EE29 – 失敗した移行ユニットに関する詳細情報です。
- CriticalSafeOSDUFailure — 73566DF2-CA26-4073-B34C-C9BC70DBF043 – SafeOSイメージの更新に失敗しました。
- UserProfileCreationFailureDuringOnlineApply — 678117CE-F6A9-40C5-BC9F-A22575C78B14 – アップグレードのオンラインフェーズでユーザープロファイルの作成・編集中にエラーが発生しました。
- WimMountFailure — BE6DF2F1-19A6-48C6-AEF8-D3B0CE3D4549 – アップグレード中にWIMファイルのマウントに失敗しました。
- FindSuccessfulUpgrade — 8A0824C8-A56D-4C55-95A0-22751AB62F3E – Windows 10ビルドは正常にアップグレードされました。
- FindSetupHostReportedFailure — 6253C04F-2E4E-4F7A-B88E-95A69702F7EC – setuphost.exeでアップグレードの初期段階において障害が発生しました。
- FindDownlevelFailure — 716334B7-F46A-4BAA-94F2-3E31BC9EFA55 – SetupPlatformでエラーが発生しました。
- FindAbruptDownlevelFailure — 55882B1A-DA3E-408A-9076-23B22A0472BD – ログの記録が予期せず途切れた場合の最新の障害に関する情報です。
- FindSetupPlatformFailedOperationInfo — 307A0133-F06B-4B75-AEA8-116C3B53C2D1 – SetupPlatformの致命的な障害発生時のフェーズとエラーに関する情報です。
- FindRollbackFailure — 3A43C9B5-05B3-4F7C-A955-88F991BB5A48 – 以前のWindows 10バージョンへのロールバック前の最後の操作と問題のフェーズに関する情報です。
- AdvancedInstallerGenericFailure – 4019550D-4CAA-45B0-A222-349C48E86F71 – AdvancedInstallerの読み書きエラーです。
- OptionalComponentFailedToGetOCsFromPackage – D012E2A2-99D8-4A8C-BBB2-088B92083D78 – パッケージコンポーネントの一覧取得時にオプションコンポーネントでエラーが発生しました。
- OptionalComponentOpenPackageFailed – 22952520-EC89-4FBD-94E0-B67DF88347F6 – オプションコンポーネントを開こうとして失敗しました。
- OptionalComponentInitCBSSessionFailed – 63340812-9252-45F3-A0F2-B2A4CA5E9317 – インストーラーまたは特定のコンポーネントが実行されていません。
- UserProfileCreationFailureDuringFinalize – C6677BA6-2E53-4A88-B528-336D15ED1A64 – アップグレードの最終段階でユーザープロファイルの作成エラーが発生しました。
- WimApplyExtractFailure – 746879E9-C9C5-488C-8D4B-0C811FF3A9A8 – WIMイメージの展開時に失敗しました。
- UpdateAgentExpanderFailure – 66E496B3-7D19-47FA-B19B-4040B9FD17E2 – Windows Update経由の更新時にDPXで障害が発生しました。
- FindFatalPluginFailure – E48E3F1C-26F6-4AFB-859B-BF637DA49636 – いずれかのプラグインでエラーが発生しました。
- MigrationAbortedDueToPluginFailure – D07A24F6-5B25-474E-B516-A730085940C9 – 移行プラグインの致命的な障害により、セットアップが移行を中止しました。
- DISMAddPackageFailed – 6196FF5B-E69E-4117-9EC6-9C1EAB20A3B9 – DISMのパッケージ追加操作中に致命的な障害が発生しました。
- PlugInComplianceBlock – D912150B-1302-4860-91B5-527907D08960 – Serverコンプライアンスプラグインからのすべての互換性ブロックを検出します。
- FindMigGatherApplyFailure – A9964E6C-A2A8-45FF-B6B5-25E0BD71428E – 移行エンジンが収集(gather)または適用(apply)操作で失敗した際のエラーを表示します。
- OptionalComponentFailedToGetOCsFromPackage – D012E2A2-99D8-4A8C-BBB2-088B92083D78 – オプションコンポーネントの移行操作が、オプションコンポーネントパッケージからコンポーネントの列挙に失敗したことを示します。
- OptionalComponentOpenPackageFailed – 22952520-EC89-4FBD-94E0-B67DF88347F6 – オプションコンポーネントの移行操作が、オプションコンポーネントパッケージを開くことに失敗したことを示します。
- OptionalComponentInitCBSSessionFailed – 63340812-9252-45F3-A0F2-B2A4CA5E9317 – ダウンレベルシステムのサービススタックに破損があることを示します。
- DISMproviderFailure – D76EF86F-B3F8-433F-9EBF-B4411F8141F4 – DISMプロバイダー(プラグイン)が重要な操作で失敗したときにトリガーされます。
- SysPrepLaunchModuleFailure – 7905655C-F295-45F7-8873-81D6F9149BFD – SysPrepプラグインが重要な操作で失敗したことを示します。
- UserProvidedDriverInjectionFailure – 2247C48A-7EE3-4037-AFAB-95B92DE1D980 – コマンドライン入力経由でセットアップに渡されたドライバーが何らかの形で失敗しました。
以下はresults.logファイルの例です。OS情報、ソースおよびターゲットの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 = 20160921000000.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 = 4/10/2019 9:17:59 PM
UpgradeEndTime = 4/10/2019 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が稼働するコンピューターのアップグレード問題をより迅速に診断・修正でき、管理者が手作業でログを解析する手間を大幅に省くことができます。
-
Windows 11への無料アップグレード手順|インストール アシスタントの使い方を徹底解説
Windows 11は、対応するWindows 10 PCに対して無料でアップグレードできます。通常は「設定」のWindows Updateから配信されるのを待てばOKですが、まだ表示されていない場合でも、今すぐアップグレードしたい方にはいくつかの方法があります。Windows 11のISOイメージをダウンロードしてインストールメディアを作成し、クリーンインストールを行うことも可能です。この記事では、Microsoft公式のWindows 11インストール アシスタントを使用して、Windows 10から最新のWindows 11(バージョン22H2)へアップグレードする手順を詳しく解説します
-
【完全ガイド】Windows 10でDirectX 12エラーが発生したときの診断と修正方法
DirectXは、Microsoftが開発したアプリケーションプログラミングインターフェース(API)のコレクションで、Windowsプラットフォーム上での2D・3Dベクターグラフィックスの描画、動画の再生、音声の処理などを担当しています。Windows 10にとって不可欠なコンポーネントであり、多くのマルチメディアアプリケーションやゲームがこの技術に依存しています。DirectX関連のファイルが欠けていると、これらのアプリケーションは正常に動作しなくなり、「DirectXがシステムに存在しません」といったエラーが表示されることもあります。 Windows 10でDirectXエラーが発生す