diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md
index 8280d47b34..14a501e31c 100644
--- a/windows/deployment/do/mcc-ent-deploy-to-linux.md
+++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md
@@ -28,7 +28,7 @@ Before deploying Connected Cache to a Linux host machine, ensure that the host m
1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package.
>[!Note]
- >* If you are deploying your cache node to a Linux host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command.
+ >* If you're deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and then add `proxytlscertificatepath="/path/to/pem/file"` to the provisioning command.
1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute.
1. Run the provisioning command on the host machine.
@@ -47,8 +47,8 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the
1. Download and extract the [Connected Cache provisioning package for Linux](https://aka.ms/MCC-Ent-InstallScript-Linux) to your host machine.
1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package.
- >[!Note]
- >* If you are deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and add `proxyTlsCertificatePath="/path/to/pem/file"` to the provisioning command.
+ > [!Note]
+ >* If you're deploying your cache node to a host machine that uses a TLS-inspecting proxy (e.g. ZScaler), ensure that you've [configured the proxy settings](mcc-ent-create-resource-and-cache.md#proxy-settings) for your cache node, then place the proxy certificate file (.pem) in the extracted provisioning package directory and then add `proxytlscertificatepath="/path/to/pem/file"` to the provisioning command.
1. Set access permissions to allow the `provisionmcc.sh` script within the provisioning package directory to execute.
1. Replace the values in the following provisioning command before running it on the host machine.
diff --git a/windows/deployment/do/waas-delivery-optimization.md b/windows/deployment/do/waas-delivery-optimization.md
index 39fed0922d..53fd47a91e 100644
--- a/windows/deployment/do/waas-delivery-optimization.md
+++ b/windows/deployment/do/waas-delivery-optimization.md
@@ -55,7 +55,7 @@ The following table lists the minimum Windows 10 version that supports Delivery
| Windows Defender definition updates | Windows 10 1511, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Intune Win32 apps| Windows 10 1709, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Microsoft 365 Apps and updates | Windows 10 1709, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-| Edge Browser Updates | Windows 10 1809, Windows 11 | | | |
+| Edge Browser Updates | Windows 10 1809, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Configuration Manager Express updates| Windows 10 1709 + Configuration Manager version 1711, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Dynamic updates| Windows 10 1903, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| MDM Agent | Windows 11 | :heavy_check_mark: | | |
diff --git a/windows/deployment/mbr-to-gpt.md b/windows/deployment/mbr-to-gpt.md
index 51a6fb4e62..2e0fd5f1de 100644
--- a/windows/deployment/mbr-to-gpt.md
+++ b/windows/deployment/mbr-to-gpt.md
@@ -4,7 +4,7 @@ description: Use MBR2GPT.EXE to convert a disk from the Master Boot Record (MBR)
ms.service: windows-client
author: frankroj
ms.author: frankroj
-ms.date: 11/26/2024
+ms.date: 04/08/2024
manager: aaroncz
ms.localizationpriority: high
ms.topic: how-to
@@ -19,9 +19,11 @@ appliesto:
# MBR2GPT.EXE
-**MBR2GPT.EXE** converts a disk from the Master Boot Record (MBR) to the GUID Partition Table (GPT) partition style without modifying or deleting data on the disk. The tool runs from a Windows Preinstallation Environment (Windows PE) command prompt, but can also be run from the full Windows operating system (OS) by using the **`/allowFullOS`** option.
+> [!IMPORTANT]
+>
+> **MBR2GPT.EXE** is located in the **`Windows\System32`** directory on any device running a [currently supported version of Windows](/windows/release-health/supported-versions-windows-client).
-**MBR2GPT.EXE** is located in the **`Windows\System32`** directory on a computer running Windows.
+**MBR2GPT.EXE** converts a disk from the Master Boot Record (MBR) to the GUID Partition Table (GPT) partition style without modifying or deleting data on the disk. The tool runs from a Windows Preinstallation Environment (Windows PE) command prompt, but can also be run from the full Windows operating system (OS) by using the **`/allowFullOS`** option.
The tool is available in both the full OS environment and Windows PE.
@@ -451,22 +453,22 @@ The partition type can be determined with the DiskPart tool. The DiskPart tool i
1. The partition type is displayed in the **Gpt** column. If the partition is GPT, an asterisk (**\***) is displayed in the column. If the partition is MBR, the column is blank.
-The following shows an example output of the DiskPart tool showing the partition type for two disks:
+ The following shows an example output of the DiskPart tool showing the partition type for two disks:
-```cmd
-X:\>DiskPart.exe
+ ```cmd
+ X:\>DiskPart.exe
-Microsoft DiskPart version 10.0.15048.0
+ Microsoft DiskPart version 10.0.15048.0
-Copyright (C) Microsoft Corporation.
-On computer: MININT-K71F13N
+ Copyright (C) Microsoft Corporation.
+ On computer: MININT-K71F13N
-DISKPART> list disk
+ DISKPART> list disk
- Disk ### Status Size Free Dyn Gpt
- -------- ------------- ------- ------- --- ---
- Disk 0 Online 238 GB 0 B
- Disk 1 Online 931 GB 0 B *
-```
+ Disk ### Status Size Free Dyn Gpt
+ -------- ------------- ------- ------- --- ---
+ Disk 0 Online 238 GB 0 B
+ Disk 1 Online 931 GB 0 B *
+ ```
In this example, Disk 0 is formatted with the MBR partition style, and Disk 1 is formatted using GPT.
diff --git a/windows/deployment/upgrade/log-files.md b/windows/deployment/upgrade/log-files.md
index 78f9f1690b..34fd512807 100644
--- a/windows/deployment/upgrade/log-files.md
+++ b/windows/deployment/upgrade/log-files.md
@@ -1,257 +1,257 @@
----
-title: Log files and resolving upgrade errors
-description: Learn how to interpret and analyze the log files that are generated during the Windows upgrade process.
-ms.service: windows-client
-author: frankroj
-manager: aaroncz
-ms.author: frankroj
-ms.localizationpriority: medium
-ms.topic: troubleshooting
-ms.collection:
- - highpri
- - tier2
-ms.subservice: itpro-deploy
-ms.date: 01/29/2025
-appliesto:
- - ✅ Windows 11
- - ✅ Windows 10
----
-
-# Windows upgrade log files
-
-> [!NOTE]
->
-> This article is a 400-level article (advanced).
->
-> See [Resolve Windows upgrade errors](resolve-windows-upgrade-errors.md) for a full list of articles in this section.
-
-Several log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. By default, the folders that contain these log files are hidden on the upgrade target computer. To view the log files, configure Windows Explorer to view hidden items, or use a tool to automatically gather these logs. The most useful log is **setupact.log**. The log files are located in a different folder depending on the Windows Setup phase. Recall that the phase can be determined from the extend code.
-
-> [!NOTE]
->
-> Also see the [Windows Error Reporting](windows-error-reporting.md) article in this section for help with locating error codes and log files.
-
-The following table describes some log files and how to use them for troubleshooting purposes:
-
-|Log file |Phase: Location |Description |When to use|
-|---|---|---|---|
-|**setupact.log**|Down-Level:
$Windows.~BT\Sources\Panther|Contains information about setup actions during the downlevel phase. |All down-level failures and starting point for rollback investigations.
Setup.act is the most important log for diagnosing setup issues.|
-|**setupact.log**|OOBE:
$Windows.~BT\Sources\Panther\UnattendGC|Contains information about actions during the OOBE phase.|Investigating rollbacks that failed during OOBE phase and operations - 0x4001C, 0x4001D, 0x4001E, 0x4001F.|
-|**setupact.log**|Rollback:
$Windows.~BT\Sources\Rollback|Contains information about actions during rollback.|Investigating generic rollbacks - 0xC1900101.|
-|**setupact.log**|Pre-initialization (prior to downlevel):
Windows|Contains information about initializing setup.|If setup fails to launch.|
-|**setupact.log**|Post-upgrade (after OOBE):
Windows\Panther|Contains information about setup actions during the installation.|Investigate post-upgrade related issues.|
-|**setuperr.log**|Same as setupact.log|Contains information about setup errors during the installation.|Review all errors encountered during the installation phase.|
-|**miglog.xml**|Post-upgrade (after OOBE):
Windows\Panther|Contains information about what was migrated during the installation.|Identify post upgrade data migration issues.|
-|**BlueBox.log**|Down-Level:
Windows\Logs\Mosetup|Contains information communication between `setup.exe` and Windows Update.|Use during WSUS and Windows Update down-level failures or for 0xC1900107.|
-|Supplemental rollback logs:
**Setupmem.dmp**
**setupapi.dev.log**
Event logs (*.evtx)|$Windows.~BT\Sources\Rollback|Additional logs collected during rollback.|Setupmem.dmp: If OS bug checks during upgrade, setup attempts to extract a mini-dump.
Setupapi: Device install issues - 0x30018
Event logs: Generic rollbacks (0xC1900101) or unexpected reboots.|
-
-## Log entry structure
-
-A `setupact.log` or `setuperr.log` entry includes the following elements:
-
-1. **The date and time** - 2023-09-08 09:20:05
-
-2. **The log level** - Info, Warning, Error, Fatal Error
-
-3. **The logging component** - CONX, MOUPG, PANTHR, SP, IBSLIB, MIG, DISM, CSI, CBS
-
- The logging components SP (setup platform), MIG (migration engine), and CONX (compatibility information) are useful for troubleshooting Windows Setup errors.
-
-4. **The message** - Operation completed successfully.
-
-See the following example:
-
-| Date/Time | Log level | Component | Message |
-|------|------------|------------|------------|
-|2023-09-08 09:23:50,| Warning | MIG | Couldn't replace object C:\Users\name\Cookies. Target Object can't be removed.|
-
-## Analyze log files
-
-The following instructions are meant for IT professionals. Also see the [Upgrade error codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json) section in this guide to become familiar with [result codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#result-codes) and [extend codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes).
-
-To analyze Windows Setup log files:
-
-1. Determine the Windows Setup error code. Windows Setup should return an error code if it isn't successful with the upgrade process.
-
-1. Based on the [extend code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes) portion of the error code, determine the type and location of a log file to investigate.
-
-1. Open the log file in a text editor, such as notepad.
-
-1. Using the [result code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#result-codes) portion of the Windows Setup error code, search for the result code in the file and find the last occurrence of the code. Alternatively search for the "abort" and abandoning" text strings described in step 7 below.
-
-1. To find the last occurrence of the result code:
-
- 1. Scroll to the bottom of the file and select after the last character.
- 1. Select **Edit**.
- 1. Select **Find**.
- 1. Type the result code.
- 1. Under **Direction** select **Up**.
- 1. Select **Find Next**.
-
-1. When the last occurrence of the result code is located, scroll up a few lines from this location in the file and review the processes that failed prior to generating the result code.
-
-1. Search for the following important text strings:
-
- - `Shell application requested abort`
- - `Abandoning apply due to error for object`
-
-1. Decode Win32 errors that appear in this section.
-
-1. Write down the timestamp for the observed errors in this section.
-
-1. Search other log files for additional information matching these timestamps or errors.
-
-For example, assume that the error code for an error is **0x8007042B - 0x2000D**. Searching for **8007042B** reveals the following content from the `setuperr.log` file:
-
-> [!NOTE]
->
-> Some lines in the following text are shortened to enhance readability. For example
->
-> - The date and time at the start of each line (ex: 2023-10-05 15:27:08) is shortened to minutes and seconds
-> - The certificate file name, which is a long text string, is shortened to just "CN."
-
-**setuperr.log** content:
-
-```console
-27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
-27:08, Error MIG Error 1392 while gathering object C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Shell application requested abort![gle=0x00000570]
-27:08, Error Gather failed. Last error: 0x00000000
-27:08, Error SP SPDoFrameworkGather: Gather operation failed. Error: 0x0000002C
-27:09, Error SP CMigrateFramework: Gather framework failed. Status: 44
-27:09, Error SP Operation failed: Migrate framework (Full). Error: 0x8007042B[gle=0x000000b7]
-27:09, Error SP Operation execution failed: 13. hr = 0x8007042B[gle=0x000000b7]
-27:09, Error SP CSetupPlatformPrivate::Execute: Execution of operations queue failed, abandoning. Error: 0x8007042B[gle=0x000000b7]
-```
-
-The first line indicates there was an error **0x00000570** with the file **C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]**:
-
-```console
-27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
-```
-
-The error **0x00000570** is a [Win32 error code](/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d) corresponding to: **ERROR_FILE_CORRUPT: The file or directory is corrupted and unreadable**.
-
-Therefore, Windows Setup failed because it wasn't able to migrate the corrupt file **C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\[CN]**. This file is a local system certificate and can be safely deleted. After the `setupact.log` file is searched for more details, the phrase **Shell application requested abort** is found in a location with the same timestamp as the lines in `setuperr.log`. This analysis confirms the suspicion that this file is the cause of the upgrade failure:
-
-**setupact.log** content:
-
-```console
-27:00, Info Gather started at 10/5/2023 23:27:00
-27:00, Info [0x080489] MIG Setting system object filter context (System)
-27:00, Info [0x0803e5] MIG Not unmapping HKCU\Software\Classes; it is not mapped
-27:00, Info [0x0803e5] MIG Not unmapping HKCU; it is not mapped
-27:00, Info SP ExecuteProgress: Elapsed events:1 of 4, Percent: 12
-27:00, Info [0x0802c6] MIG Processing GATHER for migration unit: <System>\UpgradeFramework (CMXEAgent)
-27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
-27:08, Error MIG Error 1392 while gathering object C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Shell application requested abort![gle=0x00000570]
-27:08, Info SP ExecuteProgress: Elapsed events:2 of 4, Percent: 25
-27:08, Info SP ExecuteProgress: Elapsed events:3 of 4, Percent: 37
-27:08, Info [0x080489] MIG Setting system object filter context (System)
-27:08, Info [0x0803e5] MIG Not unmapping HKCU\Software\Classes; it is not mapped
-27:08, Info [0x0803e5] MIG Not unmapping HKCU; it is not mapped
-27:08, Info MIG COutOfProcPluginFactory::FreeSurrogateHost: Shutdown in progress.
-27:08, Info MIG COutOfProcPluginFactory::LaunchSurrogateHost::CommandLine: -shortened-
-27:08, Info MIG COutOfProcPluginFactory::LaunchSurrogateHost: Successfully launched host and got control object.
-27:08, Error Gather failed. Last error: 0x00000000
-27:08, Info Gather ended at 10/5/2023 23:27:08 with result 44
-27:08, Info Leaving MigGather method
-27:08, Error SP SPDoFrameworkGather: Gather operation failed. Error: 0x0000002C
-```
-
-**setupapi.dev.log** content:
-
-```console
->>> [Device Install (UpdateDriverForPlugAndPlayDevices) - PCI\VEN_8086&DEV_8C4F]
->>> Section start 2023/09/26 20:13:01.623
- cmd: rundll32.exe "C:\WINDOWS\Installer\MSI6E4C.tmp",zzzzInvokeManagedCustomActionOutOfProc SfxCA_95972906 484 ChipsetWiX.CustomAction!Intel.Deployment.ChipsetWiX.CustomActions.InstallDrivers
- ndv: INF path: C:\WINDOWS\TEMP\{15B1CD41-69F5-48EA-9F45-0560A40FE2D8}\Drivers\lynxpoint\LynxPointSystem.inf
- ndv: Install flags: 0x00000000
- ndv: {Update Device Driver - PCI\VEN_8086&DEV_8C4F&SUBSYS_05BE1028&REV_04\3&11583659&0&F8}
- ndv: Search options: 0x00000081
- ndv: Searching single INF 'C:\WINDOWS\TEMP\{15B1CD41-69F5-48EA-9F45-0560A40FE2D8}\Drivers\lynxpoint\LynxPointSystem.inf'
- dvi: {Build Driver List} 20:13:01.643
- dvi: Searching for hardware ID(s):
- dvi: pci\ven_8086&dev_8c4f&subsys_05be1028&rev_04
- dvi: pci\ven_8086&dev_8c4f&subsys_05be1028
- dvi: pci\ven_8086&dev_8c4f&cc_060100
- dvi: pci\ven_8086&dev_8c4f&cc_0601
- dvi: Searching for compatible ID(s):
- dvi: pci\ven_8086&dev_8c4f&rev_04
- dvi: pci\ven_8086&dev_8c4f
- dvi: pci\ven_8086&cc_060100
- dvi: pci\ven_8086&cc_0601
- dvi: pci\ven_8086
- dvi: pci\cc_060100
- dvi: pci\cc_0601
- sig: {_VERIFY_FILE_SIGNATURE} 20:13:01.667
- sig: Key = lynxpointsystem.inf
- sig: FilePath = c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\lynxpointsystem.inf
- sig: Catalog = c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\LynxPoint.cat
- sig: Success: File is signed in catalog.
- sig: {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 20:13:01.683
- dvi: Created Driver Node:
- dvi: HardwareID - PCI\VEN_8086&DEV_8C4F
- dvi: InfName - c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\lynxpointsystem.inf
- dvi: DevDesc - Intel(R) QM87 LPC Controller - 8C4F
- dvi: Section - Needs_ISAPNP_DRV
- dvi: Rank - 0x00ff2001
- dvi: Signer Score - WHQL
- dvi: DrvDate - 04/04/2016
- dvi: Version - 10.1.1.18
- dvi: {Build Driver List - exit(0x00000000)} 20:13:01.699
- ndv: Searching currently installed INF
- dvi: {Build Driver List} 20:13:01.699
- dvi: Searching for hardware ID(s):
- dvi: pci\ven_8086&dev_8c4f&subsys_05be1028&rev_04
- dvi: pci\ven_8086&dev_8c4f&subsys_05be1028
- dvi: pci\ven_8086&dev_8c4f&cc_060100
- dvi: pci\ven_8086&dev_8c4f&cc_0601
- dvi: Searching for compatible ID(s):
- dvi: pci\ven_8086&dev_8c4f&rev_04
- dvi: pci\ven_8086&dev_8c4f
- dvi: pci\ven_8086&cc_060100
- dvi: pci\ven_8086&cc_0601
- dvi: pci\ven_8086
- dvi: pci\cc_060100
- dvi: pci\cc_0601
- dvi: Created Driver Node:
- dvi: HardwareID - PCI\VEN_8086&DEV_8C4F
- dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\lynxpointsystem.inf_amd64_cd1e518d883ecdfe\lynxpointsystem.inf
- dvi: DevDesc - Intel(R) QM87 LPC Controller - 8C4F
- dvi: Section - Needs_ISAPNP_DRV
- dvi: Rank - 0x00ff2001
- dvi: Signer Score - WHQL
- dvi: DrvDate - 10/03/2016
- dvi: Version - 10.1.1.38
- dvi: {Build Driver List - exit(0x00000000)} 20:13:01.731
- dvi: {DIF_SELECTBESTCOMPATDRV} 20:13:01.731
- dvi: Default installer: Enter 20:13:01.735
- dvi: {Select Best Driver}
- dvi: Class GUID of device changed to: {4d36e97d-e325-11ce-bfc1-08002be10318}.
- dvi: Selected Driver:
- dvi: Description - Intel(R) QM87 LPC Controller - 8C4F
- dvi: InfFile - c:\windows\system32\driverstore\filerepository\lynxpointsystem.inf_amd64_cd1e518d883ecdfe\lynxpointsystem.inf
- dvi: Section - Needs_ISAPNP_DRV
- dvi: {Select Best Driver - exit(0x00000000)}
- dvi: Default installer: Exit
- dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 20:13:01.743
- ndv: Currently Installed Driver:
- ndv: Inf Name - oem1.inf
- ndv: Driver Date - 10/03/2016
- ndv: Driver Version - 10.1.1.38
- ndv: {Update Device Driver - exit(00000103)}
-! ndv: No better matching drivers found for device 'PCI\VEN_8086&DEV_8C4F&SUBSYS_05BE1028&REV_04\3&11583659&0&F8'.
-! ndv: No devices were updated.
-<<< Section end 2019/09/26 20:13:01.759
-<<< [Exit status: FAILURE(0xC1900101)]
-```
-
-This analysis indicates that the Windows upgrade error can be resolved by deleting the `C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\[CN]` file.
-
-> [!NOTE]
->
-> In this example, the full file name is `C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f`.
-
-## Related articles
-
-- [Fix Windows Update errors by using the DISM or System Update Readiness tool](/troubleshoot/windows-server/deployment/fix-windows-update-errors).
+---
+title: Log files and resolving upgrade errors
+description: Learn how to interpret and analyze the log files that are generated during the Windows upgrade process.
+ms.service: windows-client
+author: frankroj
+manager: aaroncz
+ms.author: frankroj
+ms.localizationpriority: medium
+ms.topic: troubleshooting
+ms.collection:
+ - highpri
+ - tier2
+ms.subservice: itpro-deploy
+ms.date: 04/08/2025
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
+---
+
+# Windows upgrade log files
+
+> [!NOTE]
+>
+> This article is a 400-level article (advanced).
+>
+> See [Resolve Windows upgrade errors](resolve-windows-upgrade-errors.md) for a full list of articles in this section.
+
+Several log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. By default, the folders that contain these log files are hidden on the upgrade target computer. To view the log files, configure Windows Explorer to view hidden items, or use a tool to automatically gather these logs. The most useful log is **setupact.log**. The log files are located in a different folder depending on the Windows Setup phase. Recall that the phase can be determined from the [extend code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes).
+
+> [!NOTE]
+>
+> Also see the [Windows Error Reporting](windows-error-reporting.md) article in this section for help with locating error codes and log files.
+
+The following table describes some log files and how to use them for troubleshooting purposes:
+
+|Log file |Phase: Location |Description |When to use|
+|---|---|---|---|
+|**setupact.log**|Down-Level:
$Windows.~BT\Sources\Panther|Contains information about setup actions during the downlevel phase. |All downlevel failures and starting point for rollback investigations.
Setup.act is the most important log for diagnosing setup issues.|
+|**setupact.log**|Out of box experience (OOBE):
$Windows.~BT\Sources\Panther\UnattendGC|Contains information about actions during the OOBE phase.|Investigating rollbacks that failed during OOBE phase and operations - 0x4001C, 0x4001D, 0x4001E, 0x4001F.|
+|**setupact.log**|Rollback:
$Windows.~BT\Sources\Rollback|Contains information about actions during rollback.|Investigating generic rollbacks - 0xC1900101.|
+|**setupact.log**|Pre-initialization (before downlevel):
Windows|Contains information about initializing setup.|If setup fails to launch.|
+|**setupact.log**|Post-upgrade (after OOBE):
Windows\Panther|Contains information about setup actions during the installation.|Investigate post-upgrade related issues.|
+|**setuperr.log**|Same as setupact.log|Contains information about setup errors during the installation.|Review all errors encountered during the installation phase.|
+|**miglog.xml**|Post-upgrade (after OOBE):
Windows\Panther|Contains information about what was migrated during the installation.|Identify post upgrade data migration issues.|
+|**BlueBox.log**|Down-Level:
Windows\Logs\Mosetup|Contains information communication between `setup.exe` and Windows Update.|Use during WSUS and Windows Update downlevel failures or for 0xC1900107.|
+|Supplemental rollback logs:
**Setupmem.dmp**
**setupapi.dev.log**
Event logs (*.evtx)|$Windows.~BT\Sources\Rollback|Additional logs collected during rollback.|Setupmem.dmp: If OS bug checks during upgrade, setup attempts to extract a mini-dump.
Setupapi: Device install issues - 0x30018
Event logs: Generic rollbacks (0xC1900101) or unexpected reboots.|
+
+## Log entry structure
+
+A `setupact.log` or `setuperr.log` entry includes the following elements:
+
+1. **The date and time** - 2023-09-08 09:20:05
+
+1. **The log level** - Info, Warning, Error, Fatal Error
+
+1. **The logging component** - CONX, MOUPG, PANTHR, SP, IBSLIB, MIG, DISM, CSI, CBS
+
+ The logging components SP (setup platform), MIG (migration engine), and CONX (compatibility information) are useful for troubleshooting Windows Setup errors.
+
+1. **The message** - Operation completed successfully.
+
+See the following example:
+
+| Date/Time | Log level | Component | Message |
+|------|------------|------------|------------|
+|2023-09-08 09:23:50,| Warning | MIG | Couldn't replace object C:\Users\name\Cookies. Target Object can't be removed.|
+
+## Analyze log files
+
+The following instructions are meant for IT professionals. To become more familiar with [result codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#result-codes) and [extend codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes), see the article [Upgrade error codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json).
+
+To analyze Windows Setup log files:
+
+1. Determine the Windows Setup error code. Windows Setup should return an error code if it isn't successful with the upgrade process.
+
+1. Based on the [extend code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes) portion of the error code, determine the type and location of a log file to investigate.
+
+1. Open the log file in a text editor, such as Notepad.
+
+1. Using the [result code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#result-codes) portion of the Windows Setup error code, search for the result code in the file and find the last occurrence of the code. Alternatively search for the "abort" and abandoning" text strings described in step 7 below.
+
+1. To find the last occurrence of the result code:
+
+ 1. Scroll to the bottom of the file and select after the last character.
+ 1. Select **Edit**.
+ 1. Select **Find**.
+ 1. Type the result code.
+ 1. Under **Direction** select **Up**.
+ 1. Select **Find Next**.
+
+1. When the last occurrence of the result code is located, scroll up a few lines from this location in the file and review the processes that failed before generating the result code.
+
+1. Search for the following important text strings:
+
+ - `Shell application requested abort`
+ - `Abandoning apply due to error for object`
+
+1. Decode Win32 errors that appear in this section.
+
+1. Write down the timestamp for the observed errors in this section.
+
+1. Search other log files for additional information matching these timestamps or errors.
+
+For example, assume that the error code for an error is **0x8007042B - 0x2000D**. Searching for **8007042B** reveals the following content from the `setuperr.log` file:
+
+> [!NOTE]
+>
+> Some lines in the following text are shortened to enhance readability. For example
+>
+> - The date and time at the start of each line (ex: 2023-10-05 15:27:08) is shortened to minutes and seconds
+> - The certificate file name, which is a long text string, is shortened to just "CN."
+
+**setuperr.log** content:
+
+```console
+27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
+27:08, Error MIG Error 1392 while gathering object C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Shell application requested abort![gle=0x00000570]
+27:08, Error Gather failed. Last error: 0x00000000
+27:08, Error SP SPDoFrameworkGather: Gather operation failed. Error: 0x0000002C
+27:09, Error SP CMigrateFramework: Gather framework failed. Status: 44
+27:09, Error SP Operation failed: Migrate framework (Full). Error: 0x8007042B[gle=0x000000b7]
+27:09, Error SP Operation execution failed: 13. hr = 0x8007042B[gle=0x000000b7]
+27:09, Error SP CSetupPlatformPrivate::Execute: Execution of operations queue failed, abandoning. Error: 0x8007042B[gle=0x000000b7]
+```
+
+The first line indicates there was an error **0x00000570** with the file **C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]**:
+
+```console
+27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
+```
+
+The error **0x00000570** is a [Win32 error code](/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d) corresponding to: **ERROR_FILE_CORRUPT: The file or directory is corrupted and unreadable**.
+
+Therefore, Windows Setup failed because it wasn't able to migrate the corrupt file **C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\[CN]**. This file is a local system certificate and can be safely deleted. After the `setupact.log` file is searched for more details, the phrase **Shell application requested abort** is found in a location with the same timestamp as the lines in `setuperr.log`. This analysis confirms the suspicion that this file is the cause of the upgrade failure:
+
+**setupact.log** content:
+
+```console
+27:00, Info Gather started at 10/5/2023 23:27:00
+27:00, Info [0x080489] MIG Setting system object filter context (System)
+27:00, Info [0x0803e5] MIG Not unmapping HKCU\Software\Classes; it is not mapped
+27:00, Info [0x0803e5] MIG Not unmapping HKCU; it is not mapped
+27:00, Info SP ExecuteProgress: Elapsed events:1 of 4, Percent: 12
+27:00, Info [0x0802c6] MIG Processing GATHER for migration unit: <System>\UpgradeFramework (CMXEAgent)
+27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
+27:08, Error MIG Error 1392 while gathering object C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Shell application requested abort![gle=0x00000570]
+27:08, Info SP ExecuteProgress: Elapsed events:2 of 4, Percent: 25
+27:08, Info SP ExecuteProgress: Elapsed events:3 of 4, Percent: 37
+27:08, Info [0x080489] MIG Setting system object filter context (System)
+27:08, Info [0x0803e5] MIG Not unmapping HKCU\Software\Classes; it is not mapped
+27:08, Info [0x0803e5] MIG Not unmapping HKCU; it is not mapped
+27:08, Info MIG COutOfProcPluginFactory::FreeSurrogateHost: Shutdown in progress.
+27:08, Info MIG COutOfProcPluginFactory::LaunchSurrogateHost::CommandLine: -shortened-
+27:08, Info MIG COutOfProcPluginFactory::LaunchSurrogateHost: Successfully launched host and got control object.
+27:08, Error Gather failed. Last error: 0x00000000
+27:08, Info Gather ended at 10/5/2023 23:27:08 with result 44
+27:08, Info Leaving MigGather method
+27:08, Error SP SPDoFrameworkGather: Gather operation failed. Error: 0x0000002C
+```
+
+**setupapi.dev.log** content:
+
+```console
+>>> [Device Install (UpdateDriverForPlugAndPlayDevices) - PCI\VEN_8086&DEV_8C4F]
+>>> Section start 2023/09/26 20:13:01.623
+ cmd: rundll32.exe "C:\WINDOWS\Installer\MSI6E4C.tmp",zzzzInvokeManagedCustomActionOutOfProc SfxCA_95972906 484 ChipsetWiX.CustomAction!Intel.Deployment.ChipsetWiX.CustomActions.InstallDrivers
+ ndv: INF path: C:\WINDOWS\TEMP\{15B1CD41-69F5-48EA-9F45-0560A40FE2D8}\Drivers\lynxpoint\LynxPointSystem.inf
+ ndv: Install flags: 0x00000000
+ ndv: {Update Device Driver - PCI\VEN_8086&DEV_8C4F&SUBSYS_05BE1028&REV_04\3&11583659&0&F8}
+ ndv: Search options: 0x00000081
+ ndv: Searching single INF 'C:\WINDOWS\TEMP\{15B1CD41-69F5-48EA-9F45-0560A40FE2D8}\Drivers\lynxpoint\LynxPointSystem.inf'
+ dvi: {Build Driver List} 20:13:01.643
+ dvi: Searching for hardware ID(s):
+ dvi: pci\ven_8086&dev_8c4f&subsys_05be1028&rev_04
+ dvi: pci\ven_8086&dev_8c4f&subsys_05be1028
+ dvi: pci\ven_8086&dev_8c4f&cc_060100
+ dvi: pci\ven_8086&dev_8c4f&cc_0601
+ dvi: Searching for compatible ID(s):
+ dvi: pci\ven_8086&dev_8c4f&rev_04
+ dvi: pci\ven_8086&dev_8c4f
+ dvi: pci\ven_8086&cc_060100
+ dvi: pci\ven_8086&cc_0601
+ dvi: pci\ven_8086
+ dvi: pci\cc_060100
+ dvi: pci\cc_0601
+ sig: {_VERIFY_FILE_SIGNATURE} 20:13:01.667
+ sig: Key = lynxpointsystem.inf
+ sig: FilePath = c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\lynxpointsystem.inf
+ sig: Catalog = c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\LynxPoint.cat
+ sig: Success: File is signed in catalog.
+ sig: {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 20:13:01.683
+ dvi: Created Driver Node:
+ dvi: HardwareID - PCI\VEN_8086&DEV_8C4F
+ dvi: InfName - c:\windows\temp\{15b1cd41-69f5-48ea-9f45-0560a40fe2d8}\drivers\lynxpoint\lynxpointsystem.inf
+ dvi: DevDesc - Intel(R) QM87 LPC Controller - 8C4F
+ dvi: Section - Needs_ISAPNP_DRV
+ dvi: Rank - 0x00ff2001
+ dvi: Signer Score - WHQL
+ dvi: DrvDate - 04/04/2016
+ dvi: Version - 10.1.1.18
+ dvi: {Build Driver List - exit(0x00000000)} 20:13:01.699
+ ndv: Searching currently installed INF
+ dvi: {Build Driver List} 20:13:01.699
+ dvi: Searching for hardware ID(s):
+ dvi: pci\ven_8086&dev_8c4f&subsys_05be1028&rev_04
+ dvi: pci\ven_8086&dev_8c4f&subsys_05be1028
+ dvi: pci\ven_8086&dev_8c4f&cc_060100
+ dvi: pci\ven_8086&dev_8c4f&cc_0601
+ dvi: Searching for compatible ID(s):
+ dvi: pci\ven_8086&dev_8c4f&rev_04
+ dvi: pci\ven_8086&dev_8c4f
+ dvi: pci\ven_8086&cc_060100
+ dvi: pci\ven_8086&cc_0601
+ dvi: pci\ven_8086
+ dvi: pci\cc_060100
+ dvi: pci\cc_0601
+ dvi: Created Driver Node:
+ dvi: HardwareID - PCI\VEN_8086&DEV_8C4F
+ dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\lynxpointsystem.inf_amd64_cd1e518d883ecdfe\lynxpointsystem.inf
+ dvi: DevDesc - Intel(R) QM87 LPC Controller - 8C4F
+ dvi: Section - Needs_ISAPNP_DRV
+ dvi: Rank - 0x00ff2001
+ dvi: Signer Score - WHQL
+ dvi: DrvDate - 10/03/2016
+ dvi: Version - 10.1.1.38
+ dvi: {Build Driver List - exit(0x00000000)} 20:13:01.731
+ dvi: {DIF_SELECTBESTCOMPATDRV} 20:13:01.731
+ dvi: Default installer: Enter 20:13:01.735
+ dvi: {Select Best Driver}
+ dvi: Class GUID of device changed to: {4d36e97d-e325-11ce-bfc1-08002be10318}.
+ dvi: Selected Driver:
+ dvi: Description - Intel(R) QM87 LPC Controller - 8C4F
+ dvi: InfFile - c:\windows\system32\driverstore\filerepository\lynxpointsystem.inf_amd64_cd1e518d883ecdfe\lynxpointsystem.inf
+ dvi: Section - Needs_ISAPNP_DRV
+ dvi: {Select Best Driver - exit(0x00000000)}
+ dvi: Default installer: Exit
+ dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 20:13:01.743
+ ndv: Currently Installed Driver:
+ ndv: Inf Name - oem1.inf
+ ndv: Driver Date - 10/03/2016
+ ndv: Driver Version - 10.1.1.38
+ ndv: {Update Device Driver - exit(00000103)}
+! ndv: No better matching drivers found for device 'PCI\VEN_8086&DEV_8C4F&SUBSYS_05BE1028&REV_04\3&11583659&0&F8'.
+! ndv: No devices were updated.
+<<< Section end 2019/09/26 20:13:01.759
+<<< [Exit status: FAILURE(0xC1900101)]
+```
+
+This analysis indicates that the Windows upgrade error can be resolved by deleting the `C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\[CN]` file.
+
+> [!NOTE]
+>
+> In this example, the full file name is `C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f`.
+
+## Related articles
+
+- [Fix Windows Update errors by using the DISM or System Update Readiness tool](/troubleshoot/windows-server/deployment/fix-windows-update-errors).
diff --git a/windows/deployment/upgrade/resolve-windows-upgrade-errors.md b/windows/deployment/upgrade/resolve-windows-upgrade-errors.md
index 9ab18bdcfd..8b9ff49ed1 100644
--- a/windows/deployment/upgrade/resolve-windows-upgrade-errors.md
+++ b/windows/deployment/upgrade/resolve-windows-upgrade-errors.md
@@ -8,7 +8,7 @@ ms.localizationpriority: medium
ms.topic: troubleshooting-general
ms.service: windows-client
ms.subservice: itpro-deploy
-ms.date: 01/29/2025
+ms.date: 04/08/2025
appliesto:
- ✅ Windows 11
- ✅ Windows 10
@@ -35,22 +35,22 @@ The following four levels are assigned:
See the following articles in this section:
-- [Quick fixes](/troubleshoot/windows-client/deployment/windows-10-upgrade-quick-fixes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): \Level 100\ Steps to take to eliminate many Windows upgrade errors.
-- [SetupDiag](setupdiag.md): \Level 300\ SetupDiag is a new tool to help isolate the root cause of an upgrade failure.
-- [Troubleshooting upgrade errors](/troubleshoot/windows-client/deployment/windows-10-upgrade-issues-troubleshooting?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): \Level 300\ General advice and techniques for troubleshooting Windows upgrade errors, and an explanation of phases used during the upgrade process.
-- [Windows Error Reporting](windows-error-reporting.md): \Level 300\ How to use Event Viewer to review details about a Windows upgrade.
-- [Upgrade error codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): \Level 400\ The components of an error code are explained.
+- [Quick fixes](/troubleshoot/windows-client/deployment/windows-10-upgrade-quick-fixes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): (Level 100) Steps to take to eliminate many Windows upgrade errors.
+- [SetupDiag](setupdiag.md): (Level 300) SetupDiag is a new tool to help isolate the root cause of an upgrade failure.
+- [Troubleshooting upgrade errors](/troubleshoot/windows-client/deployment/windows-10-upgrade-issues-troubleshooting?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): (Level 300) General advice and techniques for troubleshooting Windows upgrade errors, and an explanation of phases used during the upgrade process.
+- [Windows Error Reporting](windows-error-reporting.md): (Level 300) How to use Event Viewer to review details about a Windows upgrade.
+- [Upgrade error codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): (Level 400) The components of an error code are explained.
- [Result codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#result-codes): Information about result codes.
- [Extend codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes): Information about extend codes.
-- [Log files](log-files.md): \Level 400\ A list and description of log files useful for troubleshooting.
+- [Log files](log-files.md): (Level 400) A list and description of log files useful for troubleshooting.
- [Log entry structure](log-files.md#log-entry-structure): The format of a log entry is described.
- [Analyze log files](log-files.md#analyze-log-files): General procedures for log file analysis, and an example.
-- [Resolution procedures](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): \Level 200\ Causes and mitigation procedures associated with specific error codes.
+- [Resolution procedures](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json): (Level 200) Causes and mitigation procedures associated with specific error codes.
- [0xC1900101](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#0xc1900101): Information about the 0xC1900101 result code.
- [0x800xxxxx](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#0x800xxxxx): Information about result codes that start with 0x800.
- [Other result codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#other-result-codes): Additional causes and mitigation procedures are provided for some result codes.
- [Other error codes](/troubleshoot/windows-client/deployment/windows-10-upgrade-resolution-procedures?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#other-error-codes): Additional causes and mitigation procedures are provided for some error codes.
-- [Submit Windows upgrade errors](submit-errors.md): \Level 100\ Submit upgrade errors to Microsoft for analysis.
+- [Submit Windows upgrade errors](submit-errors.md): (Level 100) Submit upgrade errors to Microsoft for analysis.
## Related articles
diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md
index 140ffb27b7..b082524620 100644
--- a/windows/deployment/upgrade/setupdiag.md
+++ b/windows/deployment/upgrade/setupdiag.md
@@ -12,7 +12,7 @@ ms.topic: troubleshooting
ms.collection:
- highpri
- tier2
-ms.date: 03/27/2025
+ms.date: 04/08/2025
appliesto:
- ✅ Windows 11
- ✅ Windows 10
@@ -24,14 +24,15 @@ appliesto:
>
> This article is a 300 level article (moderate advanced). See [Resolve Windows upgrade errors](resolve-windows-upgrade-errors.md) for a full list of articles in this section.
-> [!div class="nextstepaction"]
-> [Download the latest version of SetupDiag](https://go.microsoft.com/fwlink/?linkid=870142)
-
## About SetupDiag
> [!IMPORTANT]
>
-> When SetupDiag is run manually, Microsoft recommends running the latest version of SetupDiag. The latest version is available via the following [download link](https://go.microsoft.com/fwlink/?linkid=870142). Running the latest version ensures the latest functionality and fixes known issues.
+> When SetupDiag is run manually, Microsoft recommends running the latest version of SetupDiag. The latest version is available via the following link:
+>
+> [Download the latest version of SetupDiag](https://go.microsoft.com/fwlink/?linkid=870142)
+>
+> Running the latest version ensures the latest functionality and fixes known issues.
SetupDiag is a diagnostic tool that can be used to obtain details about why a Windows upgrade was unsuccessful.
@@ -39,14 +40,14 @@ SetupDiag works by examining Windows Setup log files. It attempts to parse these
SetupDiag is included with [Windows Setup](/windows-hardware/manufacture/desktop/deployment-troubleshooting-and-log-files#windows-setup-scenario) in all currently supported versions of Windows.
-During the upgrade process, Windows Setup extracts all its sources files, including **SetupDiag.exe**, to the **%SystemDrive%\$Windows.~bt\Sources** directory. If there's an issue with the upgrade, SetupDiag automatically runs to determine the cause of the failure.
+During the upgrade process, Windows Setup extracts all its source files, including `SetupDiag.exe`, to the `%SystemDrive%\$Windows.~bt\Sources` directory. If there's an issue with the upgrade, SetupDiag automatically runs to determine the cause of the failure.
When run by Windows Setup, the following [parameters](#parameters) are used:
-- /ZipLogs:False
-- /Format:xml
-- /Output:%windir%\logs\SetupDiag\SetupDiagResults.xml
-- /RegPath:HKEY_LOCAL_MACHINE\SYSTEM\Setup\SetupDiag\Results
+- `/ZipLogs:False`
+- `/Format:xml`
+- `/Output:%windir%\logs\SetupDiag\SetupDiagResults.xml`
+- `/RegPath:HKEY_LOCAL_MACHINE\SYSTEM\Setup\SetupDiag\Results`
The resulting SetupDiag analysis can be found at `%WinDir%\Logs\SetupDiag\SetupDiagResults.xml` and in the registry under `HKLM\SYSTEM\Setup\SetupDiag\Results`.
@@ -58,7 +59,11 @@ The resulting SetupDiag analysis can be found at `%WinDir%\Logs\SetupDiag\SetupD
>
> When SetupDiag indicates that there were multiple failures, the last failure in the log file is typically the fatal error, not the first one.
-If the upgrade process proceeds normally, the **Sources** directory including **SetupDiag.exe** is moved under **%SystemDrive%\Windows.Old** for cleanup. If the **Windows.old** directory is deleted later, **SetupDiag.exe** is also removed.
+If the upgrade process proceeds normally, the `Sources` directory including `SetupDiag.exe` is moved under `%SystemDrive%\Windows.Old` for cleanup. If the `Windows.old` directory is deleted later, `SetupDiag.exe` is also removed.
+
+> [!TIP]
+>
+> If `SetupDiag.exe` is needed after the `Windows.old` directory is deleted, it can be downloaded from the [Microsoft Download Center](https://go.microsoft.com/fwlink/?linkid=870142).
## Requirements
@@ -81,50 +86,52 @@ If the upgrade process proceeds normally, the **Sources** directory including **
## Using SetupDiag
-To quickly use SetupDiag on the current computer:
+To use SetupDiag:
1. Verify that the system meets the [requirements](#requirements).
-1. [Download SetupDiag](https://go.microsoft.com/fwlink/?linkid=870142).
+1. [Download](https://go.microsoft.com/fwlink/?linkid=870142) the latest version of SetupDiag.
-1. If the web browser asks what to do with the file, choose **Save**. By default, the file is saved to the **Downloads** folder. If desired, the file can also be saved to a different location by using **Save As**.
+1. If the web browser asks what to do with the file, choose **Save**. By default, the file is saved to the **Downloads** folder, which is displayed in File Explorer under **Quick access** in the left navigation pane. If desired, the file can also be saved to a different location by using **Save As**.
-1. When SetupDiag finishes downloading, open the folder where the file was downloaded. By default, this folder is the **Downloads** folder, which is displayed in File Explorer under **Quick access** in the left navigation pane.
+1. Once SetupDiag finishes downloading, open an elevated command prompt and navigate to the directory where `setupdiag.exe` was downloaded and saved to.
-1. Double-click the **SetupDiag** file to run it. Select **Yes** if asked to approve running the program.
+1. In the elevated command prompt, run `setupdiage.exe` in online mode using the desired parameters as documented in the [Parameters](#parameters) and [Examples](#examples) sections.
- Double-clicking the file to run it automatically closes the command window when SetupDiag completes its analysis. To instead keep the window open to review the messages SetupDiag generates, run the program by typing **SetupDiag** at the command prompt instead of double-clicking it. When running from a command prompt, make sure to change directories to where SetupDiag is located.
+1. Wait for SetupDiag to finish.
-1. A command window opens while SetupDiag diagnoses the computer. Wait for this process to finish.
-
-1. When SetupDiag finishes, two files are created in the same folder where SetupDiag was run from. One is a configuration file, the other is a log file.
+1. When SetupDiag finishes, two files are created in the same folder where SetupDiag was run from:
+ - A configuration file.
+ - A log file.
1. Use Notepad to open the log file **SetupDiagResults.log**.
1. Review the information that is displayed. If a rule was matched, this information can say why the computer failed to upgrade, and potentially how to fix the problem. See the section [Text log sample](#text-log-sample).
-For instructions on how to run the tool in offline mode and with more advanced options, see the sections [Parameters](#parameters) and [Examples](#examples).
+> [!TIP]
+>
+> For instructions on how to run the tool in offline mode in Windows PE, see the sections [Parameters](#parameters) and [Examples](#examples).
## Parameters
| Parameter | Description |
| --- | --- |
-| **/?** | Displays interactive help |
-| **/Output:\[Full path and file name for output log file\]** | This optional parameter specifies the name and location for the results log file. The output file contains the analysis from SetupDiag. Only text format output is supported. UNC paths work provided the context under which SetupDiag runs has access to the UNC path. If the path has a space in it, the entire path must be enclosed in double quotes (**"**). See the [Examples](#examples) sections for an example.
Default: If not specified, SetupDiag creates the file **SetupDiagResults.log** in the same directory where **SetupDiag.exe** is run. |
-| **/LogsPath:\[Full path to logs\]** | This optional parameter specifies the location of logs to parse and where to find the log files for an offline analysis. These log files can be in a flat folder format, or containing multiple subdirectories. SetupDiag recursively searches all child directories. Defaults to checking the current system for logs. |
+| **/?** | Displays help information |
+| **/Output:\[Full path and file name for output log file\]** | This optional parameter specifies the name and location for the results log file. The output file contains the analysis from SetupDiag. Only text format output is supported. UNC paths work provided the context under which SetupDiag runs has access to the UNC path. If the path has a space in it, the entire path must be enclosed in double quotes (**"**). See the [Examples](#examples) sections for an example.
Default: If not specified, SetupDiag creates the file **SetupDiagResults.log** in the same directory where **SetupDiag.exe** is run. |
+| **/LogsPath:\[Full path to logs\]** | This optional parameter specifies the location of logs to parse and where to find the log files for an offline analysis. These log files can be in a flat folder format, or containing multiple subdirectories. SetupDiag recursively searches all child directories. Defaults to checking the current system for logs. |
| **/ZipLogs:\[True \| False\]** | This optional parameter Tells **SetupDiag.exe** to create a zip file containing the results and all the log files that were parsed. The zip file is created in the same directory where **SetupDiag.exe** is run.
Default: If not specified, a value of 'true' is used. |
-| **/Format:\[xml \| json\]** | This optional parameter specifies the output format for log files to be XML or JSON. If this parameter isn't specified, text format is used by default. |
+| **/Format:\[xml \| json\]** | This optional parameter specifies the output format for log files to be XML or JSON. If this parameter isn't specified, text format is used by default. |
| **/Scenario:\[Recovery \| Debug\]** | This optional parameter can do one of the following two items based on the argument used: