SetupDiag で Windows 11 アップグレード失敗の原因を調べる方法

Windows 11 へのアップグレードや機能更新に失敗したとき、表示されたエラーコードだけでは原因を特定できないことがあります。

例えば、0xC1900101 - 0x20017のようなコードが表示されても、「どのドライバーが原因なのか」までは画面上に表示されない場合があります。

このようなときに利用できるのが SetupDiag です。

SetupDiag は Microsoft が提供している Windows アップグレード専用の診断ツールで、Windows セットアップのログを解析し、失敗したフェーズ、操作、エラーコード、関連するドライバーなどから原因を特定しようとします。

現在サポートされている Windows のセットアップには SetupDiag が含まれているため、まずは Windows が自動的に実行した SetupDiag の結果を確認します。

結果がない場合や、より新しい SetupDiag で再解析したい場合は、Microsoft から最新版をダウンロードして手動で実行します。

目次

SetupDiag とは

SetupDiag は、Windows 11 や Windows 10 のアップグレードが失敗した理由を調べるための診断ツールです。

一般的なトラブルシューティング ツールとは異なり、Windows セットアップが作成したログを解析して、既知の失敗パターンと照合します。

SetupDiag が調べる対象には、例えば次のようなものがあります。

  • ドライバーの互換性問題
  • 起動時のエラー
  • デバイス インストール中の停止
  • ディスク領域不足
  • Windows 機能やパッケージのインストール失敗
  • 移行処理の失敗
  • Windows セットアップ自体のエラー

SetupDiag には複数の判定ルールがあり、例えば HardblockDeviceOrDriver、UnsignedDriverBootFailure、BootFailureDetected、DeviceInstallHang、DiskSpaceFailure などのルールが用意されています。

まず自動生成された SetupDiag の結果を確認する

Windows 11 のアップグレードに失敗した場合、Windows セットアップによって SetupDiag が自動実行され、失敗原因の分析結果が保存されることがあります。

まず、エクスプローラーのアドレスバーに次のパスを入力し、Enter キーを押してください。

%WinDir%\Logs\SetupDiag

フォルダーが開いたら、SetupDiagResults.xml があるか確認します。

※このフォルダーは通常の Windows 環境に最初から存在するものではありません。 アップグレードに失敗していても、SetupDiag の自動実行結果が保存されていない場合は、フォルダー自体が存在しないことがあります。

フォルダーや SetupDiagResults.xml が見つからない場合は、「SetupDiag を手動で実行する」へ進んでください。

SetupDiagResults.xml を開く

SetupDiagResults.xml を右クリックし、「プログラムから開く」からメモ帳などを選択します。

XML の内容は一見分かりにくいですが、すべて読む必要はありません。

主に次の項目を確認します。

  • ProfileName
  • FailureData
  • FailureDetails
  • Last Setup Phase
  • Last Setup Operation
  • Error
  • DeviceDriverInfo
  • Remediation

Last Setup Phase や Last Setup Operation は、独立した XML タグではなく、FailureData などの内容に表示される場合があります。

すべての結果にこれらの項目が表示されるわけではありません。

SetupDiag が一致するルールを見つけた場合は、FailureData や FailureDetails に失敗したフェーズ、操作、エラーコードなどが記録されます。Microsoft の XML 例でも ProfileName、FailureData、FailureDetails などが出力されています。

「Last Setup Phase」と「Last Setup Operation」を確認する

SetupDiag の結果では、次のような情報が表示される場合があります。

Last Phase: Safe OS
Last Operation: Apply Optional Component status
Error: 0x800706ba

Microsoft の SetupDiag の例でも、最後に処理していたフェーズと操作、エラーコードが表示されています。

Last Setup Phase は、Windows セットアップのどの段階まで進んでいたかを示します。

代表的なフェーズは次のとおりです。

表示主な段階
Downlevel現在使用している Windows 上で準備している段階
Safe OS再起動後、更新用の環境で処理している段階
First Boot新しい Windows を最初に起動して構成する段階
Second Boot(OOBE Boot)初期設定や最終構成へ進む段階

フェーズだけで原因を特定することはできませんが、「どの段階で止まったのか」を知る重要な手掛かりになります。

SetupDiag の判定名を見る

SetupDiag の結果では、ProfileName などに判定したルール名が表示される場合があります。

例えば Microsoft が現在公開しているルールには、次のようなものがあります。

判定例意味
HardblockDeviceOrDriver新しい Windows と互換性のないデバイス ドライバーが存在する
UnsignedDriverBootFailure署名されていないドライバーにより起動エラーが発生した
BootFailureDetectedアップグレード中の起動処理でエラーが発生した
DeviceInstallHangデバイス インストール中に停止またはバグチェックが発生した
DiskSpaceFailure再起動後のアップグレード処理中にシステム ドライブの空き領域が不足した

これらは SetupDiag が Windows セットアップのログから検出する既知の失敗パターンです。

ルール名だけを見るのではなく、その下に表示される FailureData、エラーコード、デバイス名、ドライバー名なども合わせて確認してください。

複数のエラーが表示された場合は最後のエラーに注目する

SetupDiag の結果に複数のエラーが表示される場合があります。

Microsoft は、複数のエラーが検出された場合、

ログ ファイルの最後のエラーが、通常は致命的なエラー

であると説明しています。

そのため、最初に表示されたエラーだけで判断せず、結果の最後まで確認してください。

ただし、最後の行だけを機械的に原因と決めるのではなく、ProfileName、Last Setup Phase、Last Setup Operation、FailureData などを合わせて確認することが重要です。

自動生成された結果がない場合は SetupDiag を手動で実行する

%WinDir%\Logs\SetupDiag フォルダーが存在しない場合や、保存されている結果を最新版の SetupDiag で再分析したい場合は、Microsoft 公式ページから最新版をダウンロードして実行できます。

Microsoft は、SetupDiag を手動で実行する場合は最新バージョンを使用するよう推奨しています。新しいバージョンでは判定ルールの追加や既知の問題の修正が行われる場合があります。

Microsoft:SetupDiag の最新版を入手する から SetupDiag.exe をダウンロードし、分かりやすい場所へ保存してください。

Microsoft:SetupDiag のページ
Microsoft:SetupDiag のページ

この記事では例として「ダウンロード」フォルダーに保存した場合を説明します。

SetupDiag を管理者権限で実行する

「スタート」ボタンをクリックし、

cmd

と入力します。

「コマンド プロンプト」の「管理者として実行」をクリックしてください。

Microsoft は、SetupDiag を正常に動作させるためには管理者特権のコマンド プロンプトから実行する必要があると説明しています。

次のコマンドで「ダウンロード」フォルダーへ移動します。(「ダウンロード」フォルダーに保存した場合)

cd /d "%USERPROFILE%\Downloads"

続いて、次を実行します。

SetupDiag.exe /Output:"%CD%\SetupDiagResults.log" /ZipLogs:False

解析が完了すると、「ダウンロード」フォルダーに、SetupDiagResults.logが作成されます。

SetupDiag は現在使用している PC 上の Windows セットアップ ログを自動的に探し、オンライン モードで解析します。/Output を指定すると結果の保存場所を指定できます。

SetupDiagResults.log を確認する

「ダウンロード」フォルダーに作成された SetupDiagResults.log をメモ帳で開きます。

例えば Microsoft のサンプルでは、

Error: SetupDiag reports DISM provider failure.
Last Phase: Safe OS
Last Operation: Apply Optional Component status
Error: 0x800706ba

のように、エラーの種類、最後のフェーズ、操作、エラーコードが表示されています。

結果によっては、その下に推奨する対処法が表示される場合もあります。

ドライバー名が表示された場合

SetupDiag の結果に特定のドライバー、デバイス名、.sys ファイルなどが表示された場合は、その情報が重要な手掛かりになります。

まず、そのドライバーがどのデバイスに属しているか確認してください。

PC メーカーやデバイス メーカーの公式サイトから最新版のドライバーを入手し、更新します。

現在使用していないデバイスや古いドライバーであれば、アンインストールしてから Windows 11 のアップグレードを再実行する方法もあります。

ただし、C:\Windows\System32\drivers にある .sys ファイルを直接削除することはおすすめしません。

ドライバーはデバイス マネージャーや正規のアンインストーラーから削除してください。

SetupDiag で原因が特定できない場合

SetupDiag は Windows セットアップのログを既知のルールと照合して原因を特定しようとするツールですが、すべてのアップグレード失敗で原因を特定できるわけではありません。

一致するルールがない場合や、結果から具体的なドライバーを特定できない場合は、Windows セットアップの元ログを確認します。

特に重要なのが、

C:\$WINDOWS.~BT\Sources\Panther

と、

C:\$WINDOWS.~BT\Sources\Rollback

です。

Microsoft は、setupact.log を Windows セットアップの問題を診断する最も重要なログの 1つとして説明しています。

0xC1900101 のようなロールバックを調べる場合は、

%SystemDrive%\$Windows.~BT\Sources\Rollback\setupact.log

が重要です。setuperr.log にはセットアップ中に発生したエラーが記録されます。

ただし、ログにはアップグレード失敗の直接原因ではない警告やエラーも多数記録されます。

そのため、単に Error と書かれた行をすべて原因と判断するのではなく、SetupDiag が示したフェーズ、操作、エラーコードと照らし合わせて確認してください。

0xC1900101 系のエラーでは SetupDiag が特に役立つ

0xC1900101 は Windows アップグレードで発生する一般的なロールバック コードで、Microsoft は多くの場合、ドライバー互換性の問題が原因になると説明しています。

ただし、

0xC1900101 - 0x20017
0xC1900101 - 0x30018
0xC1900101 - 0x40017

など、後半のコードによって失敗したフェーズや操作が異なります。

SetupDiag を使用すると、単に 0xC1900101 というコードだけを見るよりも、実際のセットアップ ログから原因を絞り込める場合があります。

0xC1900101 - 0x20017 が表示されている場合は、次の記事をご覧ください。

あわせて読みたい
Windows 11 アップグレードエラー 0xC1900101 – 0x20017 の原因と対処法
Windows 11 アップグレードエラー 0xC1900101 – 0x20017 の原因と対処法 Windows 11 へのアップグレードや機能更新で、0xC1900101 - 0x20017が表示され、インストール前の Windows に戻されることがあります。 このとき、次のようなメッセージ...

まとめ

Windows 11 のアップグレードに失敗した場合は、まず、

%WinDir%\Logs\SetupDiag

を開き、SetupDiagResults.xmlが作成されていないか確認してください。

現在サポートされている Windows のセットアップでは、アップグレードに問題が発生すると SetupDiag が自動的に実行されます。

結果がない場合や、最新版で再解析したい場合は SetupDiag を手動で実行できます。

SetupDiag だけで原因を特定できない場合は、ログを確認して、Windows セットアップが失敗した直前の処理を調べます。

参考資料

この記事が「役立った!」と思ったら、ぜひSNSでシェアをお願いします。
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

日々の PC 操作から生まれた疑問や、「もっとこうしたい」という想いを原動力に、2008年頃から現在に至るまで Windows の知識を独学で追求してきました。試行錯誤を重ねて見つけた「なるほど!」な技や、困った時の解決策を、皆さんの PC ライフに役立ててほしい一心で発信しています。

プロフィールを見る

コメント

コメントする

【投稿について】
記事の内容に関するご質問や情報提供は大歓迎です。
ただし、記事の趣旨と無関係な内容、特定の人物・団体への批判、攻撃的な表現、不適切な語句を含むコメントは、管理人の判断で予告なく削除・非公開とさせていただく場合があります。
また、スパム対策機能により自動的に削除される場合もありますのでご了承ください。

CAPTCHA


目次