From f1b6c2e40c087b7843ab9718c359219af7b1e8f2 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 27 Mar 2025 08:36:41 -0700 Subject: [PATCH 01/35] dep-map-plat-9853566 --- windows/whats-new/deprecated-features-resources.md | 3 +++ windows/whats-new/deprecated-features.md | 1 + 2 files changed, 4 insertions(+) diff --git a/windows/whats-new/deprecated-features-resources.md b/windows/whats-new/deprecated-features-resources.md index a276519e51..4d5155934e 100644 --- a/windows/whats-new/deprecated-features-resources.md +++ b/windows/whats-new/deprecated-features-resources.md @@ -21,6 +21,9 @@ appliesto: This article provides additional resources about [deprecated features for Windows client](deprecated-features.md) that may be needed by IT professionals. The following information is provided to help IT professionals plan for the removal of deprecated features: +## Windows UWP Map control and Windows Maps platform APIs + + ## Paint 3D Paint 3D is deprecated and will be removed from the Microsoft Store on November 4, 2024. Existing installations of Paint 3D will continue to work, but the app will no longer be available for download from the Microsoft Store. If you remove the app, you can reinstall it from the Microsoft Store until November 4, 2024. After that date, Paint 3D will no longer be available for download. Paint 3D was preinstalled on some Windows 10 devices, but wasn't preinstalled on Windows 11 devices. Some alternatives to Paint 3D include: diff --git a/windows/whats-new/deprecated-features.md b/windows/whats-new/deprecated-features.md index 88573222b7..407195c666 100644 --- a/windows/whats-new/deprecated-features.md +++ b/windows/whats-new/deprecated-features.md @@ -47,6 +47,7 @@ The features in this article are no longer being actively developed, and might b | Feature | Details and mitigation | Deprecation announced | |---|---|---| +| Windows UWP Map control and Windows Maps platform APIs | [Windows UWP Map control](/uwp/api/windows.ui.xaml.controls.maps) and [Windows Maps platform APIs](/uwp/api/windows.services.maps) are deprecated. Once the Maps app for Windows is removed on **[APP Date TBD]**, the UWP Bing Maps platform support within Windows will also be removed on **[PLAT Date TBD]**. Once the UWP Bing Maps platform support is removed, it won't be available to your UWP apps that use the Map control. For more information, see [Resources for deprecated features](deprecated-features-resources.md#windows-uwp-map-control-and-windows-maps-platform-apis). | April 2025 | | Line printer daemon (LPR/LPD) | Deprecation reminder: [The line printer daemon protocol (LPR/LPD) was deprecated](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831568(v=ws.11)#printing) starting in Windows Server 2012. As removal of the line printer daemon protocol nears, we'd like to remind customers to ensure their environments are prepared for removal. When these features are eventually removed, clients that print to a server using this protocol, such as UNIX clients, will not be able to connect or print. Instead, UNIX clients should use IPP. Windows clients can connect to UNIX shared printers using the [Windows Standard Port Monitor](/troubleshoot/windows-server/printing/standard-port-monitor-for-tcpip). | [Original announcement: Windows Server 2012](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831568(v=ws.11)#printing)

Courtesy reminder: February 2025 | | Location History | We are deprecating and removing the Location History feature, an [API](/uwp/api/windows.devices.geolocation.geolocator.getgeopositionhistoryasync) that allowed Cortana to access 24 hours of device history when location was enabled. With the removal of the Location History feature, location data will no longer be saved locally and the corresponding settings will also be removed from the **Privacy & Security** > **Location** page in **Settings**. | February 2025 | | Suggested actions | Suggested actions that appear when you copy a phone number or future date in Windows 11 are deprecated and will be removed in a future Windows 11 update. | December 2024 | From b426d36fdbafd79bf3e03f73cc452356c4e56455 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 27 Mar 2025 10:56:09 -0700 Subject: [PATCH 02/35] dep-map-plat-9853566 --- windows/whats-new/deprecated-features-resources.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/windows/whats-new/deprecated-features-resources.md b/windows/whats-new/deprecated-features-resources.md index 4d5155934e..7aa2acecc7 100644 --- a/windows/whats-new/deprecated-features-resources.md +++ b/windows/whats-new/deprecated-features-resources.md @@ -23,6 +23,11 @@ This article provides additional resources about [deprecated features for Window ## Windows UWP Map control and Windows Maps platform APIs +In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement before **[PLAT Date TBD]** rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: +- [Migrate from Bing Maps to Azure Maps](/azure/azure-maps/migrate-bing-maps-overview) +- [Use the Azure Maps map control](/azure/azure-maps/how-to-use-map-control) +- [Azure Maps code samples](https://samples.azuremaps.com/) + ## Paint 3D From cda1c7ab5d04f444482aa377c813cf1bfa330735 Mon Sep 17 00:00:00 2001 From: Andrei-George Stoica <5600871+andreiztm@users.noreply.github.com> Date: Wed, 2 Apr 2025 14:59:44 +0300 Subject: [PATCH 03/35] Update waas-delivery-optimization-reference.md --- windows/deployment/do/waas-delivery-optimization-reference.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows/deployment/do/waas-delivery-optimization-reference.md b/windows/deployment/do/waas-delivery-optimization-reference.md index 59d11c87f8..45b16770f1 100644 --- a/windows/deployment/do/waas-delivery-optimization-reference.md +++ b/windows/deployment/do/waas-delivery-optimization-reference.md @@ -335,6 +335,8 @@ Configure this policy to designate Delivery Optimization in Network Cache server > [!NOTE] > If you format the DHCP Option ID incorrectly, the client will fall back to the Cache Server Hostname policy value if that value has been configured. +> +> If [LocalPolicyMerge](/windows/security/operating-system-security/network-security/windows-firewall/rules#local-policy-merge-and-application-rules) setting is configured (e.g. as part of security baselines) it can impact DHCP client and prevent it from retrieving this DHCP option, especially in Autopilot scenarios. ### Maximum foreground download bandwidth (in KB/s) From 399f1d03d0b8b2ff393ba14c3da3bf3a4050ac11 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 3 Apr 2025 09:16:01 -0700 Subject: [PATCH 04/35] Update windows/deployment/do/waas-delivery-optimization-reference.md drop eg, or ex, and use things like "for example, or such as" --- windows/deployment/do/waas-delivery-optimization-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/waas-delivery-optimization-reference.md b/windows/deployment/do/waas-delivery-optimization-reference.md index 45b16770f1..b703bcb19f 100644 --- a/windows/deployment/do/waas-delivery-optimization-reference.md +++ b/windows/deployment/do/waas-delivery-optimization-reference.md @@ -336,7 +336,7 @@ Configure this policy to designate Delivery Optimization in Network Cache server > [!NOTE] > If you format the DHCP Option ID incorrectly, the client will fall back to the Cache Server Hostname policy value if that value has been configured. > -> If [LocalPolicyMerge](/windows/security/operating-system-security/network-security/windows-firewall/rules#local-policy-merge-and-application-rules) setting is configured (e.g. as part of security baselines) it can impact DHCP client and prevent it from retrieving this DHCP option, especially in Autopilot scenarios. +> If [LocalPolicyMerge](/windows/security/operating-system-security/network-security/windows-firewall/rules#local-policy-merge-and-application-rules) setting is configured, such as part of security baselines, it can impact DHCP client and prevent it from retrieving this DHCP option, especially in Autopilot scenarios. ### Maximum foreground download bandwidth (in KB/s) From 5321af3ec0b3481d1121162c4252a4329dfd8a34 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 3 Apr 2025 09:16:55 -0700 Subject: [PATCH 05/35] Update windows/deployment/do/waas-delivery-optimization-reference.md minor tweak --- windows/deployment/do/waas-delivery-optimization-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/waas-delivery-optimization-reference.md b/windows/deployment/do/waas-delivery-optimization-reference.md index b703bcb19f..42ed7148af 100644 --- a/windows/deployment/do/waas-delivery-optimization-reference.md +++ b/windows/deployment/do/waas-delivery-optimization-reference.md @@ -336,7 +336,7 @@ Configure this policy to designate Delivery Optimization in Network Cache server > [!NOTE] > If you format the DHCP Option ID incorrectly, the client will fall back to the Cache Server Hostname policy value if that value has been configured. > -> If [LocalPolicyMerge](/windows/security/operating-system-security/network-security/windows-firewall/rules#local-policy-merge-and-application-rules) setting is configured, such as part of security baselines, it can impact DHCP client and prevent it from retrieving this DHCP option, especially in Autopilot scenarios. +> If the [LocalPolicyMerge](/windows/security/operating-system-security/network-security/windows-firewall/rules#local-policy-merge-and-application-rules) setting is configured, such as part of security baselines, it can impact DHCP client and prevent it from retrieving this DHCP option, especially in Autopilot scenarios. ### Maximum foreground download bandwidth (in KB/s) From e19d4580f7124aa901c2ecb80f86a64d7e6dd694 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 3 Apr 2025 09:43:55 -0700 Subject: [PATCH 06/35] Update waas-delivery-optimization.md Removing note as requested during review --- windows/deployment/do/waas-delivery-optimization.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/windows/deployment/do/waas-delivery-optimization.md b/windows/deployment/do/waas-delivery-optimization.md index c52b1fff78..0d4826ebbd 100644 --- a/windows/deployment/do/waas-delivery-optimization.md +++ b/windows/deployment/do/waas-delivery-optimization.md @@ -47,9 +47,6 @@ The following table lists the minimum Windows 10 version that supports Delivery #### Windows Client -> [!NOTE] -> Starting March 4, 2025, Edge Browser updates will temporarily not utilize Delivery Optimization for downloads. We are actively working to resolve this issue. - | Windows Client | Minimum Windows version | HTTP Downloader | Peer to Peer | Microsoft Connected Cache | |------------------|---------------|----------------|----------|----------------| | Windows Update ([feature updates quality updates, language packs, drivers](../update/get-started-updates-channels-tools.md#types-of-updates)) | Windows 10 1511, Windows 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | From d7911a494dfe6e30a14e9ad670ddecf79f943fa2 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Thu, 3 Apr 2025 09:45:08 -0700 Subject: [PATCH 07/35] Update ms.date in Delivery Optimization docs update metadata --- windows/deployment/do/waas-delivery-optimization-reference.md | 2 +- windows/deployment/do/waas-delivery-optimization.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/waas-delivery-optimization-reference.md b/windows/deployment/do/waas-delivery-optimization-reference.md index 42ed7148af..8ea753be60 100644 --- a/windows/deployment/do/waas-delivery-optimization-reference.md +++ b/windows/deployment/do/waas-delivery-optimization-reference.md @@ -14,7 +14,7 @@ appliesto: - ✅ Windows 11 - ✅ Windows 10 - ✅ Delivery Optimization -ms.date: 10/15/2024 +ms.date: 04/03/2025 --- # Delivery Optimization reference diff --git a/windows/deployment/do/waas-delivery-optimization.md b/windows/deployment/do/waas-delivery-optimization.md index 0d4826ebbd..39fed0922d 100644 --- a/windows/deployment/do/waas-delivery-optimization.md +++ b/windows/deployment/do/waas-delivery-optimization.md @@ -15,7 +15,7 @@ ms.localizationpriority: medium appliesto: - ✅ Windows 11 - ✅ Windows 10 -ms.date: 05/23/2024 +ms.date: 04/03/2025 --- # What is Delivery Optimization? From bb316da125323d6cb87306abea80063b5f841fc3 Mon Sep 17 00:00:00 2001 From: "Vinay Pamnani (from Dev Box)" Date: Fri, 4 Apr 2025 09:42:11 -0600 Subject: [PATCH 08/35] CSP Updates March 2025 --- .../client-management/mdm/bitlocker-csp.md | 20 +- .../mdm/bitlocker-ddf-file.md | 20 +- windows/client-management/mdm/firewall-csp.md | 10 +- .../mdm/firewall-ddf-file.md | 8 +- .../mdm/policies-in-preview.md | 28 +- .../mdm/policy-csp-applicationmanagement.md | 50 +- .../mdm/policy-csp-defender.md | 8 +- .../mdm/policy-csp-humanpresence.md | 152 ++---- .../mdm/policy-csp-lanmanworkstation.md | 481 +++++++++++++++++- .../client-management/mdm/policy-csp-power.md | 64 ++- .../mdm/policy-csp-system.md | 57 ++- .../mdm/policy-csp-update.md | 4 +- .../client-management/mdm/reboot-ddf-file.md | 8 +- 13 files changed, 755 insertions(+), 155 deletions(-) diff --git a/windows/client-management/mdm/bitlocker-csp.md b/windows/client-management/mdm/bitlocker-csp.md index 5934d85fb5..02e1bc5257 100644 --- a/windows/client-management/mdm/bitlocker-csp.md +++ b/windows/client-management/mdm/bitlocker-csp.md @@ -1,7 +1,7 @@ --- title: BitLocker CSP description: Learn more about the BitLocker CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -175,7 +175,7 @@ The expected values for this policy are: 1 = This is the default, when the policy isn't set. Warning prompt and encryption notification is allowed. -0 = Disables the warning prompt and encryption notification. Starting in Windows 10, next major update, the value 0 only takes effect on Microsoft Entra joined devices. +0 = Disables the warning prompt and encryption notification. Starting in Windows 10, next major update, the value 0 only takes effect on Entra ID joined devices. Windows will attempt to silently enable BitLocker for value 0. @@ -209,7 +209,7 @@ Windows will attempt to silently enable BitLocker for value 0. | Value | Description | |:--|:--| -| 0 | Disables the warning prompt. Starting in Windows 10, version 1803, the value 0 can only be set for Microsoft Entra joined devices. Windows will attempt to silently enable BitLocker for value 0. | +| 0 | Disables the warning prompt. Starting in Windows 10, version 1803, the value 0 can only be set for Entra ID joined devices. Windows will attempt to silently enable BitLocker for value 0. | | 1 (Default) | Warning prompt allowed. | @@ -251,9 +251,9 @@ Windows will attempt to silently enable BitLocker for value 0. -Allows Admin to configure Numeric Recovery Password Rotation upon use for OS and fixed drives on Microsoft Entra ID and hybrid domain joined devices. +Allows Admin to configure Numeric Recovery Password Rotation upon use for OS and fixed drives on Entra ID and hybrid domain joined devices. -When not configured, Rotation is turned on by default for Microsoft Entra ID only and off on hybrid. The Policy will be effective only when Active Directory back up for recovery password is configured to required. +When not configured, Rotation is turned on by default for Entra ID only and off on hybrid. The Policy will be effective only when Active Directory back up for recovery password is configured to required. For OS drive: Turn on "Do not enable BitLocker until recovery information is stored to AD DS for operating system drives". @@ -261,8 +261,8 @@ For Fixed drives: Turn on "Do not enable BitLocker until recovery information is Supported Values: 0 - Numeric Recovery Passwords rotation OFF. -1 - Numeric Recovery Passwords Rotation upon use ON for Microsoft Entra joined devices. Default value -2 - Numeric Recovery Passwords Rotation upon use ON for both Microsoft Entra ID and hybrid devices. +1 - Numeric Recovery Passwords Rotation upon use ON for Entra ID joined devices. Default value +2 - Numeric Recovery Passwords Rotation upon use ON for both Entra ID and hybrid devices. @@ -285,8 +285,8 @@ Supported Values: 0 - Numeric Recovery Passwords rotation OFF. | Value | Description | |:--|:--| | 0 (Default) | Refresh off (default). | -| 1 | Refresh on for Microsoft Entra joined devices. | -| 2 | Refresh on for both Microsoft Entra joined and hybrid-joined devices. | +| 1 | Refresh on for Entra ID-joined devices. | +| 2 | Refresh on for both Entra ID-joined and hybrid-joined devices. | @@ -1212,7 +1212,7 @@ Disabling the policy won't turn off the encryption on the storage card. But will -Allows admin to push one-time rotation of all numeric recovery passwords for OS and Fixed Data drives on a Microsoft Entra ID or hybrid-joined device. +Allows admin to push one-time rotation of all numeric recovery passwords for OS and Fixed Data drives on an Entra ID or hybrid-joined device. This policy is Execute type and rotates all numeric passwords when issued from MDM tools. diff --git a/windows/client-management/mdm/bitlocker-ddf-file.md b/windows/client-management/mdm/bitlocker-ddf-file.md index c8dd0ba91c..5297684368 100644 --- a/windows/client-management/mdm/bitlocker-ddf-file.md +++ b/windows/client-management/mdm/bitlocker-ddf-file.md @@ -1,7 +1,7 @@ --- title: BitLocker DDF file description: View the XML file containing the device description framework (DDF) for the BitLocker configuration service provider. -ms.date: 02/13/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -580,7 +580,7 @@ The following XML file contains the device description framework (DDF) for the B 1 = This is the default, when the policy is not set. Warning prompt and encryption notification is allowed. 0 = Disables the warning prompt and encryption notification. Starting in Windows 10, next major update, - the value 0 only takes affect on Azure Active Directory joined devices. + the value 0 only takes affect on Entra ID joined devices. Windows will attempt to silently enable BitLocker for value 0. If you want to disable this policy use the following SyncML: @@ -600,7 +600,7 @@ The following XML file contains the device description framework (DDF) for the B 0 - Disables the warning prompt. Starting in Windows 10, version 1803, the value 0 can only be set for Azure Active Directory joined devices. Windows will attempt to silently enable BitLocker for value 0. + Disables the warning prompt. Starting in Windows 10, version 1803, the value 0 can only be set for Entra ID joined devices. Windows will attempt to silently enable BitLocker for value 0. 1 @@ -680,15 +680,15 @@ The following XML file contains the device description framework (DDF) for the B 0 - Allows Admin to configure Numeric Recovery Password Rotation upon use for OS and fixed drives on AAD and Hybrid domain joined devices. - When not configured, Rotation is turned on by default for AAD only and off on Hybrid. The Policy will be effective only when + Allows Admin to configure Numeric Recovery Password Rotation upon use for OS and fixed drives on Entra ID and Hybrid domain joined devices. + When not configured, Rotation is turned on by default for Entra ID only and off on Hybrid. The Policy will be effective only when Active Directory back up for recovery password is configured to required. For OS drive: Turn on "Do not enable Bitlocker until recovery information is stored to AD DS for operating system drives" For Fixed drives: Turn on "Do not enable Bitlocker until recovery information is stored to AD DS for fixed data drives" Supported Values: 0 - Numeric Recovery Passwords rotation OFF. - 1 - Numeric Recovery Passwords Rotation upon use ON for AAD joined devices. Default value - 2 - Numeric Recovery Passwords Rotation upon use ON for both AAD and Hybrid devices + 1 - Numeric Recovery Passwords Rotation upon use ON for Entra ID joined devices. Default value + 2 - Numeric Recovery Passwords Rotation upon use ON for both Entra ID and Hybrid devices If you want to disable this policy use the following SyncML: @@ -716,11 +716,11 @@ The following XML file contains the device description framework (DDF) for the B 1 - Refresh on for Azure AD-joined devices + Refresh on for Entra ID-joined devices 2 - Refresh on for both Azure AD-joined and hybrid-joined devices + Refresh on for both Entra ID-joined and hybrid-joined devices @@ -731,7 +731,7 @@ The following XML file contains the device description framework (DDF) for the B - Allows admin to push one-time rotation of all numeric recovery passwords for OS and Fixed Data drives on an Azure Active Directory or hybrid-joined device. + Allows admin to push one-time rotation of all numeric recovery passwords for OS and Fixed Data drives on an Entra ID or hybrid-joined device. This policy is Execute type and rotates all numeric passwords when issued from MDM tools. The policy only comes into effect when Active Directory backup for a recovery password is configured to "required." diff --git a/windows/client-management/mdm/firewall-csp.md b/windows/client-management/mdm/firewall-csp.md index 88cf7531a8..2ff47c6b70 100644 --- a/windows/client-management/mdm/firewall-csp.md +++ b/windows/client-management/mdm/firewall-csp.md @@ -1,7 +1,7 @@ --- title: Firewall CSP description: Learn more about the Firewall CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -1896,9 +1896,7 @@ New rules have the EdgeTraversal property disabled by default. -Indicates whether the rule is enabled or disabled. If the rule must be enabled, this value must be set to true. - -If not specified - a new rule is disabled by default. +Indicates whether the rule is enabled or disabled. If not specified - a new rule is enabled by default. @@ -3254,9 +3252,7 @@ If not specified the default is OUT. -Indicates whether the rule is enabled or disabled. If the rule must be enabled, this value must be set to true. - -If not specified - a new rule is disabled by default. +Indicates whether the rule is enabled or disabled. If not specified - a new rule is enabled by default. diff --git a/windows/client-management/mdm/firewall-ddf-file.md b/windows/client-management/mdm/firewall-ddf-file.md index d0cc7b9d7c..5ec78fee84 100644 --- a/windows/client-management/mdm/firewall-ddf-file.md +++ b/windows/client-management/mdm/firewall-ddf-file.md @@ -1,7 +1,7 @@ --- title: Firewall DDF file description: View the XML file containing the device description framework (DDF) for the Firewall configuration service provider. -ms.date: 02/13/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -4060,8 +4060,7 @@ An IPv6 address range in the format of "start address - end address" with no spa - Indicates whether the rule is enabled or disabled. If the rule must be enabled, this value must be set to true. -If not specified - a new rule is disabled by default. + Indicates whether the rule is enabled or disabled. If not specified - a new rule is enabled by default. @@ -4760,8 +4759,7 @@ An IPv6 address range in the format of "start address - end address" with no spa - Indicates whether the rule is enabled or disabled. If the rule must be enabled, this value must be set to true. -If not specified - a new rule is disabled by default. + Indicates whether the rule is enabled or disabled. If not specified - a new rule is enabled by default. diff --git a/windows/client-management/mdm/policies-in-preview.md b/windows/client-management/mdm/policies-in-preview.md index 26e00d9b59..6aaae7383f 100644 --- a/windows/client-management/mdm/policies-in-preview.md +++ b/windows/client-management/mdm/policies-in-preview.md @@ -1,7 +1,7 @@ --- title: Configuration service provider preview policies description: Learn more about configuration service provider (CSP) policies that are available for Windows Insider Preview. -ms.date: 03/26/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -23,6 +23,7 @@ This article lists the policies that are applicable for Windows Insider Preview ## ApplicationManagement - [AllowedNonAdminPackageFamilyNameRules](policy-csp-applicationmanagement.md#allowednonadminpackagefamilynamerules) +- [ConfigureMSIXAuthenticationAuthorizedDomains](policy-csp-applicationmanagement.md#configuremsixauthenticationauthorizeddomains) ## ClientCertificateInstall CSP @@ -92,9 +93,8 @@ This article lists the policies that are applicable for Windows Insider Preview ## HumanPresence -- [ForcePrivacyScreen](policy-csp-humanpresence.md#forceprivacyscreen) -- [ForcePrivacyScreenDim](policy-csp-humanpresence.md#forceprivacyscreendim) -- [ForcePrivacyScreenNotification](policy-csp-humanpresence.md#forceprivacyscreennotification) +- [ForceOnlookerDetection](policy-csp-humanpresence.md#forceonlookerdetection) +- [ForceOnlookerDetectionAction](policy-csp-humanpresence.md#forceonlookerdetectionaction) ## InternetExplorer @@ -111,6 +111,16 @@ This article lists the policies that are applicable for Windows Insider Preview - [StartInstallation](language-pack-management-csp.md#installlanguage-idstartinstallation) - [SystemPreferredUILanguages](language-pack-management-csp.md#languagesettingssystempreferreduilanguages) +## LanmanWorkstation + +- [AuditInsecureGuestLogon](policy-csp-lanmanworkstation.md#auditinsecureguestlogon) +- [AuditServerDoesNotSupportEncryption](policy-csp-lanmanworkstation.md#auditserverdoesnotsupportencryption) +- [AuditServerDoesNotSupportSigning](policy-csp-lanmanworkstation.md#auditserverdoesnotsupportsigning) +- [EnableMailslots](policy-csp-lanmanworkstation.md#enablemailslots) +- [MaxSmb2Dialect](policy-csp-lanmanworkstation.md#maxsmb2dialect) +- [MinSmb2Dialect](policy-csp-lanmanworkstation.md#minsmb2dialect) +- [RequireEncryption](policy-csp-lanmanworkstation.md#requireencryption) + ## LocalPoliciesSecurityOptions - [InteractiveLogon_NumberOfPreviousLogonsToCache](policy-csp-localpoliciessecurityoptions.md#interactivelogon_numberofpreviouslogonstocache) @@ -133,6 +143,10 @@ This article lists the policies that are applicable for Windows Insider Preview - [DisablePostLogonProvisioning](passportforwork-csp.md#devicetenantidpoliciesdisablepostlogonprovisioning) +## Power + +- [EnableEnergySaver](policy-csp-power.md#enableenergysaver) + ## Printers - [ConfigureIppTlsCertificatePolicy](policy-csp-printers.md#configureipptlscertificatepolicy) @@ -165,6 +179,10 @@ This article lists the policies that are applicable for Windows Insider Preview - [ExchangeModernAuthEnabled](surfacehub-csp.md#deviceaccountexchangemodernauthenabled) +## System + +- [DisableCHPE](policy-csp-system.md#disablechpe) + ## TextInput - [TouchKeyboardControllerModeAvailability](policy-csp-textinput.md#touchkeyboardcontrollermodeavailability) @@ -180,10 +198,12 @@ This article lists the policies that are applicable for Windows Insider Preview ## WindowsAI +- [DisableAIDataAnalysis](policy-csp-windowsai.md#disableaidataanalysis) - [SetDenyAppListForRecall](policy-csp-windowsai.md#setdenyapplistforrecall) - [SetDenyUriListForRecall](policy-csp-windowsai.md#setdenyurilistforrecall) - [SetMaximumStorageSpaceForRecallSnapshots](policy-csp-windowsai.md#setmaximumstoragespaceforrecallsnapshots) - [SetMaximumStorageDurationForRecallSnapshots](policy-csp-windowsai.md#setmaximumstoragedurationforrecallsnapshots) +- [DisableClickToDo](policy-csp-windowsai.md#disableclicktodo) - [DisableImageCreator](policy-csp-windowsai.md#disableimagecreator) - [DisableCocreator](policy-csp-windowsai.md#disablecocreator) - [DisableGenerativeFill](policy-csp-windowsai.md#disablegenerativefill) diff --git a/windows/client-management/mdm/policy-csp-applicationmanagement.md b/windows/client-management/mdm/policy-csp-applicationmanagement.md index dd90381449..d47b411cde 100644 --- a/windows/client-management/mdm/policy-csp-applicationmanagement.md +++ b/windows/client-management/mdm/policy-csp-applicationmanagement.md @@ -1,7 +1,7 @@ --- title: ApplicationManagement Policy CSP description: Learn more about the ApplicationManagement Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -635,6 +635,54 @@ Manages non-Administrator users' ability to install Windows app packages. + +## ConfigureMSIXAuthenticationAuthorizedDomains + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ❌ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/ApplicationManagement/ConfigureMSIXAuthenticationAuthorizedDomains +``` + + + + +Defines a regular expression in ECMA Script. When performing a streaming MSIX install, if this regular expression matches the domain name (uppercased) then the user's EntraID OAuth token will be attached to the request. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `chr` (string) | +| Access Type | Add, Delete, Get, Replace | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | ConfigureMSIXAuthenticationAuthorizedDomains | +| Path | AppxPackageManager > AT > WindowsComponents > AppxDeployment | + + + + + + + + ## DisableStoreOriginatedApps diff --git a/windows/client-management/mdm/policy-csp-defender.md b/windows/client-management/mdm/policy-csp-defender.md index 52b51b48ac..55a3527bd5 100644 --- a/windows/client-management/mdm/policy-csp-defender.md +++ b/windows/client-management/mdm/policy-csp-defender.md @@ -1,7 +1,7 @@ --- title: Defender Policy CSP description: Learn more about the Defender Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -728,7 +728,7 @@ This policy setting allows you to configure scheduled scans and on-demand (manua |:--|:--| | Format | `int` | | Access Type | Add, Delete, Get, Replace | -| Default Value | 0 | +| Default Value | 1 | @@ -736,8 +736,8 @@ This policy setting allows you to configure scheduled scans and on-demand (manua | Value | Description | |:--|:--| -| 0 (Default) | Not allowed. Turns off scanning of network files. | -| 1 | Allowed. Scans network files. | +| 0 | Not allowed. Turns off scanning of network files. | +| 1 (Default) | Allowed. Scans network files. | diff --git a/windows/client-management/mdm/policy-csp-humanpresence.md b/windows/client-management/mdm/policy-csp-humanpresence.md index 1b7009e02c..cb3dfdf1a2 100644 --- a/windows/client-management/mdm/policy-csp-humanpresence.md +++ b/windows/client-management/mdm/policy-csp-humanpresence.md @@ -1,7 +1,7 @@ --- title: HumanPresence Policy CSP description: Learn more about the HumanPresence Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -529,31 +529,31 @@ Determines the timeout for Lock on Leave forced by the MDM policy. The user will - -## ForcePrivacyScreen + +## ForceOnlookerDetection - + | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | - + - + ```Device -./Device/Vendor/MSFT/Policy/Config/HumanPresence/ForcePrivacyScreen +./Device/Vendor/MSFT/Policy/Config/HumanPresence/ForceOnlookerDetection ``` - + - + Determines whether detect when other people are looking at my screen is forced on/off by the MDM policy. The user won't be able to change this setting and the UI will be greyed out. - + - + - + - + **Description framework properties**: | Property name | Property value | @@ -561,9 +561,9 @@ Determines whether detect when other people are looking at my screen is forced o | Format | `int` | | Access Type | Add, Delete, Get, Replace | | Default Value | 0 | - + - + **Allowed values**: | Value | Description | @@ -571,48 +571,48 @@ Determines whether detect when other people are looking at my screen is forced o | 2 | ForcedOff. | | 1 | ForcedOn. | | 0 (Default) | DefaultToUserChoice. | - + - + **Group policy mapping**: | Name | Value | |:--|:--| -| Name | ForcePrivacyScreen | +| Name | ForceOnlookerDetection | | Path | Sensors > AT > WindowsComponents > HumanPresence | - + - + - + - + - -## ForcePrivacyScreenDim + +## ForceOnlookerDetectionAction - + | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | - + - + ```Device -./Device/Vendor/MSFT/Policy/Config/HumanPresence/ForcePrivacyScreenDim +./Device/Vendor/MSFT/Policy/Config/HumanPresence/ForceOnlookerDetectionAction ``` - + - + -Determines whether dim the screen when other people are looking at my screen checkbox is forced checked/unchecked by the MDM policy. The user won't be able to change this setting and the checkbox in the UI will be greyed out. - +Determines whether the Onlooker Detection action is forced by the MDM policy. The user won't be able to change this setting and the toggle in the UI will be greyed out. + - + - + - + **Description framework properties**: | Property name | Property value | @@ -620,91 +620,33 @@ Determines whether dim the screen when other people are looking at my screen che | Format | `int` | | Access Type | Add, Delete, Get, Replace | | Default Value | 0 | - + - + **Allowed values**: | Value | Description | |:--|:--| -| 2 | ForcedUnchecked. | -| 1 | ForcedChecked. | +| 3 | ForcedDimAndNotify. | +| 2 | ForcedNotify. | +| 1 | ForcedDim. | | 0 (Default) | DefaultToUserChoice. | - + - + **Group policy mapping**: | Name | Value | |:--|:--| -| Name | ForcePrivacyScreenDim | +| Name | ForceOnlookerDetectionAction | | Path | Sensors > AT > WindowsComponents > HumanPresence | - + - + - + - - - -## ForcePrivacyScreenNotification - - -| Scope | Editions | Applicable OS | -|:--|:--|:--| -| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | - - - -```Device -./Device/Vendor/MSFT/Policy/Config/HumanPresence/ForcePrivacyScreenNotification -``` - - - - -Determines whether providing alert when people are looking at my screen checkbox is forced checked/unchecked by the MDM policy. The user won't be able to change this setting and the checkbox in the UI will be greyed out. - - - - - - - -**Description framework properties**: - -| Property name | Property value | -|:--|:--| -| Format | `int` | -| Access Type | Add, Delete, Get, Replace | -| Default Value | 0 | - - - -**Allowed values**: - -| Value | Description | -|:--|:--| -| 2 | ForcedUnchecked. | -| 1 | ForcedChecked. | -| 0 (Default) | DefaultToUserChoice. | - - - -**Group policy mapping**: - -| Name | Value | -|:--|:--| -| Name | ForcePrivacyScreenNotification | -| Path | Sensors > AT > WindowsComponents > HumanPresence | - - - - - - - + diff --git a/windows/client-management/mdm/policy-csp-lanmanworkstation.md b/windows/client-management/mdm/policy-csp-lanmanworkstation.md index c854a7c214..1dab53713b 100644 --- a/windows/client-management/mdm/policy-csp-lanmanworkstation.md +++ b/windows/client-management/mdm/policy-csp-lanmanworkstation.md @@ -1,7 +1,7 @@ --- title: LanmanWorkstation Policy CSP description: Learn more about the LanmanWorkstation Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -10,10 +10,213 @@ ms.topic: generated-reference # Policy CSP - LanmanWorkstation +[!INCLUDE [Windows Insider tip](includes/mdm-insider-csp-note.md)] + + +## AuditInsecureGuestLogon + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/AuditInsecureGuestLogon +``` + + + + +This policy controls whether the SMB client will enable the audit event when the client is logged-on as guest account. + +- If you enable this policy setting, the SMB client will log the event when the client is logged-on as guest account. + +- If you disable or don't configure this policy setting, the SMB client won't log the event. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | Disabled. | +| 1 | Enabled. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_AuditInsecureGuestLogon | +| Friendly Name | Audit insecure guest logon | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| Registry Value Name | AuditInsecureGuestLogon | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + + +## AuditServerDoesNotSupportEncryption + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/AuditServerDoesNotSupportEncryption +``` + + + + +This policy controls whether the SMB client will enable the audit event when the SMB server doesn't support encryption. + +- If you enable this policy setting, the SMB client will log the event when the SMB server doesn't support encryption. + +- If you disable or don't configure this policy setting, the SMB client won't log the event. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | Disabled. | +| 1 | Enabled. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_AuditServerDoesNotSupportEncryption | +| Friendly Name | Audit server does not support encryption | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| Registry Value Name | AuditServerDoesNotSupportEncryption | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + + +## AuditServerDoesNotSupportSigning + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/AuditServerDoesNotSupportSigning +``` + + + + +This policy controls whether the SMB client will enable the audit event when the SMB server doesn't support signing. + +- If you enable this policy setting, the SMB client will log the event when the SMB server doesn't support signing. + +- If you disable or don't configure this policy setting, the SMB client won't log the event. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | Disabled. | +| 1 | Enabled. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_AuditServerDoesNotSupportSigning | +| Friendly Name | Audit server does not support signing | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| Registry Value Name | AuditServerDoesNotSupportSigning | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + ## EnableInsecureGuestLogons @@ -85,6 +288,282 @@ Insecure guest logons are used by file servers to allow unauthenticated access t + +## EnableMailslots + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/EnableMailslots +``` + + + + +This policy controls whether the SMB client will enable or disable remote mailslots over MUP. + +- If you disable this policy setting, remote mailslots won't function over MUP, hence they won't go through the SMB client redirector. + +- If you don't configure this policy setting, remote mailslots may be allowed through MUP. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | Disabled. | +| 1 | Enabled. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_EnableMailslots | +| Friendly Name | Enable remote mailslots | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\NetworkProvider | +| Registry Value Name | EnableMailslots | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + + +## MaxSmb2Dialect + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/MaxSmb2Dialect +``` + + + + +This policy controls the maximum version of SMB protocol. + +> [!NOTE] +> This group policy doesn't prevent use of SMB 1 if that component is still installed and enabled. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 785 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 514 | SMB 2.0.2. | +| 528 | SMB 2.1.0. | +| 768 | SMB 3.0.0. | +| 770 | SMB 3.0.2. | +| 785 (Default) | SMB 3.1.1. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_MaxSmb2Dialect | +| Friendly Name | Mandate the maximum version of SMB | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + + +## MinSmb2Dialect + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/MinSmb2Dialect +``` + + + + +This policy controls the minimum version of SMB protocol. + +> [!NOTE] +> This group policy doesn't prevent use of SMB 1 if that component is still installed and enabled. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 514 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 514 (Default) | SMB 2.0.2. | +| 528 | SMB 2.1.0. | +| 768 | SMB 3.0.0. | +| 770 | SMB 3.0.2. | +| 785 | SMB 3.1.1. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_MinSmb2Dialect | +| Friendly Name | Mandate the minimum version of SMB | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + + +## RequireEncryption + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows 11, version 24H2 [10.0.26100.3613] and later
✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/LanmanWorkstation/RequireEncryption +``` + + + + +This policy controls whether the SMB client will require encryption. + +- If you enable this policy setting, the SMB client will require the SMB server to support encryption and encrypt the data. + +- If you disable or don't configure this policy setting, the SMB client won't require encryption. However, SMB encryption may still be required; see notes below. + +> [!NOTE] +> This policy is combined with per-share, per-server, and per mapped drive connection properties, through which SMB encryption may be required. The SMB server must support and enable SMB encryption. For example, should this policy be disabled (or not configured), the SMB client may still perform encryption if an SMB server share has required encryption. + +> [!IMPORTANT] +> SMB encryption requires SMB 3.0 or later. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | Disabled. | +| 1 | Enabled. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | Pol_RequireEncryption | +| Friendly Name | Require Encryption | +| Location | Computer Configuration | +| Path | Network > Lanman Workstation | +| Registry Key Name | Software\Policies\Microsoft\Windows\LanmanWorkstation | +| Registry Value Name | RequireEncryption | +| ADMX File Name | LanmanWorkstation.admx | + + + + + + + + diff --git a/windows/client-management/mdm/policy-csp-power.md b/windows/client-management/mdm/policy-csp-power.md index c1c09fc80e..5054b018b5 100644 --- a/windows/client-management/mdm/policy-csp-power.md +++ b/windows/client-management/mdm/policy-csp-power.md @@ -1,7 +1,7 @@ --- title: Power Policy CSP description: Learn more about the Power Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -12,6 +12,8 @@ ms.topic: generated-reference [!INCLUDE [ADMX-backed CSP tip](includes/mdm-admx-csp-note.md)] +[!INCLUDE [Windows Insider tip](includes/mdm-insider-csp-note.md)] + @@ -307,6 +309,64 @@ If the user has configured a slide show to run on the lock screen when the machi + +## EnableEnergySaver + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/Power/EnableEnergySaver +``` + + + + +This policy will extend battery life and reduce energy consumption by enabling Energy Saver to always be on. Energy Saver will always be on for desktops as well as laptops regardless of battery level for both AC and DC. If you disable or don't configure this policy setting, then Energy Saver will turn on based on the EnergySaverBatteryThreshold group policy. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 1 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 | Disable energy saver policy. | +| 1 (Default) | Enable energy saver always-on mode. | + + + +**Group policy mapping**: + +| Name | Value | +|:--|:--| +| Name | EnableEnergySaver | +| Path | Power > AT > System > PowerManagementCat > EnergySaverSettingsCat | + + + + + + + + ## EnergySaverBatteryThresholdOnBattery @@ -344,6 +404,7 @@ This policy setting allows you to specify battery charge level at which Energy S | Access Type | Add, Delete, Get, Replace | | Allowed Values | Range: `[0-100]` | | Default Value | 0 | +| Dependency [Power_EnergySaverBatteryThresholdOnBattery_DependencyGroup] | Dependency Type: `DependsOn`
Dependency URI: `./Device/Vendor/MSFT/Policy/Config/Power/EnableEnergySaver`
Dependency Allowed Value: `[1]`
Dependency Allowed Value Type: `Range`
| @@ -403,6 +464,7 @@ This policy setting allows you to specify battery charge level at which Energy S | Access Type | Add, Delete, Get, Replace | | Allowed Values | Range: `[0-100]` | | Default Value | 0 | +| Dependency [Power_EnergySaverBatteryThresholdPluggedIn_DependencyGroup] | Dependency Type: `DependsOn`
Dependency URI: `./Device/Vendor/MSFT/Policy/Config/Power/EnableEnergySaver`
Dependency Allowed Value: `[1]`
Dependency Allowed Value Type: `Range`
| diff --git a/windows/client-management/mdm/policy-csp-system.md b/windows/client-management/mdm/policy-csp-system.md index e26854737a..01fd23ea15 100644 --- a/windows/client-management/mdm/policy-csp-system.md +++ b/windows/client-management/mdm/policy-csp-system.md @@ -1,7 +1,7 @@ --- title: System Policy CSP description: Learn more about the System Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -12,6 +12,8 @@ ms.topic: generated-reference [!INCLUDE [ADMX-backed CSP tip](includes/mdm-admx-csp-note.md)] +[!INCLUDE [Windows Insider tip](includes/mdm-insider-csp-note.md)] + @@ -1195,6 +1197,59 @@ If you don't configure this policy setting, or you set it to "Enable diagnostic + +## DisableCHPE + + +| Scope | Editions | Applicable OS | +|:--|:--|:--| +| ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | + + + +```Device +./Device/Vendor/MSFT/Policy/Config/System/DisableCHPE +``` + + + + +This policy setting controls whether loading CHPE binaries is disabled on the ARM64 device. This policy has no effect on x64 devices. + +- If you enable this policy setting, ARM64 devices won't load CHPE binaries. This setting is required for hotpatching on ARM64 devices. + +- If you disable or don't configure this policy setting, ARM64 devices will load CHPE binaries. + + + + + + + +**Description framework properties**: + +| Property name | Property value | +|:--|:--| +| Format | `int` | +| Access Type | Add, Delete, Get, Replace | +| Default Value | 0 | + + + +**Allowed values**: + +| Value | Description | +|:--|:--| +| 0 (Default) | CHPE Binaries Enabled (Default). | +| 1 | CHPE Binaries Disabled. | + + + + + + + + ## DisableDeviceDelete diff --git a/windows/client-management/mdm/policy-csp-update.md b/windows/client-management/mdm/policy-csp-update.md index 1af5508754..dba323106b 100644 --- a/windows/client-management/mdm/policy-csp-update.md +++ b/windows/client-management/mdm/policy-csp-update.md @@ -1,7 +1,7 @@ --- title: Update Policy CSP description: Learn more about the Update Area in Policy CSP. -ms.date: 03/12/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -2054,7 +2054,7 @@ Enables the IT admin to manage automatic update behavior to scan, download, and | Value | Description | |:--|:--| | 0 | Notify the user before downloading the update. This policy is used by the enterprise who wants to enable the end-users to manage data usage. With this option users are notified when there are updates that apply to the device and are ready for download. Users can download and install the updates from the Windows Update control panel. | -| 1 | Auto install the update and then notify the user to schedule a device restart. Updates are downloaded automatically on non-metered networks and installed during "Automatic Maintenance" when the device isn't in use and isn't running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates immediately. If the installation requires a restart, the end-user is prompted to schedule the restart time. The end-user has up to seven days to schedule the restart and after that, a restart of the device is forced. Enabling the end-user to control the start time reduces the risk of accidental data loss caused by applications that don't shutdown properly on restart. | +| 1 | Auto install the update and then notify the user to schedule a device restart. Updates are downloaded automatically on non-metered networks and installed during "Automatic Maintenance" when the device isn't in use and isn't running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates immediately. If the installation requires a restart, the end-user is prompted to schedule the restart time. After the update is installed, if the user hasn't scheduled a restart, the device will attempt to restart automatically. The user will be notified about the scheduled restart and can reschedule it if the proposed time is inconvenient. Enabling the end-user to control the start time reduces the risk of accidental data loss caused by applications that don't shutdown properly on restart. | | 2 (Default) | Auto install and restart. Updates are downloaded automatically on non-metered networks and installed during "Automatic Maintenance" when the device isn't in use and isn't running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device isn't actively being used. This is the default behavior for unmanaged devices. Devices are updated quickly, but it increases the risk of accidental data loss caused by an application that doesn't shutdown properly on restart. | | 3 | Auto install and restart at a specified time. The IT specifies the installation day and time. If no day and time are specified, the default is 3 AM daily. Automatic installation happens at this time and device restart happens after a 15-minute countdown. If the user is logged in when Windows is ready to restart, the user can interrupt the 15-minute countdown to delay the restart. | | 4 | Auto install and restart without end-user control. Updates are downloaded automatically on non-metered networks and installed during "Automatic Maintenance" when the device isn't in use and isn't running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device isn't actively being used. This setting option also sets the end-user control panel to read-only. | diff --git a/windows/client-management/mdm/reboot-ddf-file.md b/windows/client-management/mdm/reboot-ddf-file.md index af569e0d56..555128e610 100644 --- a/windows/client-management/mdm/reboot-ddf-file.md +++ b/windows/client-management/mdm/reboot-ddf-file.md @@ -1,7 +1,7 @@ --- title: Reboot DDF file description: View the XML file containing the device description framework (DDF) for the Reboot configuration service provider. -ms.date: 02/13/2025 +ms.date: 04/04/2025 ms.topic: generated-reference --- @@ -96,7 +96,7 @@ The following XML file contains the device description framework (DDF) for the R - Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. Both the date and time are required. A reboot will be scheduled to occur at the specified date and time. Setting a null (empty) date will delete the existing schedule. + Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. Both the date and time are required. A reboot will be scheduled to occur at the specified date and time. Setting a null (empty) date will delete the existing schedule. @@ -123,7 +123,7 @@ The following XML file contains the device description framework (DDF) for the R - Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. While it is supported to set either DailyRecurrent or WeeklyRecurrent schedules, it is not supported to enable both settings simultaneously. A reboot will be scheduled to occur every day at the configured time starting at the specified date and time. Setting a null (empty) date will delete the existing schedule. + Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. While it is supported to set either DailyRecurrent or WeeklyRecurrent schedules, it is not supported to enable both settings simultaneously. A reboot will be scheduled to occur every day at the configured time starting at the specified date and time. Setting a null (empty) date will delete the existing schedule. @@ -150,7 +150,7 @@ The following XML file contains the device description framework (DDF) for the R - Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. While it is supported to set either DailyRecurrent or WeeklyRecurrent schedules, it is not supported to enable both settings simultaneously. A reboot will be scheduled to occur every week at the configured day and time starting at the specified date and time. Setting a null (empty) date will delete the existing schedule. + Value in ISO8601 date and time format (such as 2025-10-07T10:35:00) is required. While it is supported to set either DailyRecurrent or WeeklyRecurrent schedules, it is not supported to enable both settings simultaneously. A reboot will be scheduled to occur every week at the configured day and time starting at the specified date and time. Setting a null (empty) date will delete the existing schedule. From e66e66397088ac8c2fe553a5a35734aaa75c0e50 Mon Sep 17 00:00:00 2001 From: tiaraquan Date: Fri, 4 Apr 2025 11:09:04 -0700 Subject: [PATCH 09/35] Removed public preview note --- .../manage/windows-autopatch-hotpatch-updates.md | 4 ++-- .../windows-autopatch-hotpatch-quality-update-report.md | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/windows/deployment/windows-autopatch/manage/windows-autopatch-hotpatch-updates.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-hotpatch-updates.md index a3eb3ff2fb..b52cda4040 100644 --- a/windows/deployment/windows-autopatch/manage/windows-autopatch-hotpatch-updates.md +++ b/windows/deployment/windows-autopatch/manage/windows-autopatch-hotpatch-updates.md @@ -1,7 +1,7 @@ --- title: Hotpatch updates description: Use Hotpatch updates to receive security updates without restarting your device -ms.date: 04/02/2025 +ms.date: 04/04/2025 ms.service: windows-client ms.subservice: autopatch ms.topic: how-to @@ -91,7 +91,7 @@ LCUs requires you to restart the device, but the LCU ensures that the device rem 1. Select **Devices** from the left navigation menu. 1. Under the **Manage updates** section, select **Windows updates**. 1. Go to the **Quality updates** tab. -1. Select **Create**, and select **Windows quality update policy (preview)**. +1. Select **Create**, and select **Windows quality update policy**. 1. Under the **Basics** section, enter a name for your new policy and select Next. 1. Under the **Settings** section, set **"When available, apply without restarting the device ("Hotpatch")** to **Allow**. Then, select **Next**. 1. Select the appropriate Scope tags or leave as Default and select **Next**. diff --git a/windows/deployment/windows-autopatch/monitor/windows-autopatch-hotpatch-quality-update-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-hotpatch-quality-update-report.md index e8c49abfe2..fa37013aee 100644 --- a/windows/deployment/windows-autopatch/monitor/windows-autopatch-hotpatch-quality-update-report.md +++ b/windows/deployment/windows-autopatch/monitor/windows-autopatch-hotpatch-quality-update-report.md @@ -1,7 +1,7 @@ --- title: Hotpatch quality update report description: Use the Hotpatch quality update report to view the current update statuses for all devices that receive Hotpatch updates -ms.date: 03/31/2025 +ms.date: 04/04/2025 ms.service: windows-client ms.subservice: autopatch ms.topic: how-to @@ -15,10 +15,7 @@ ms.collection: - tier1 --- -# Hotpatch quality update report (public preview) - -> [!IMPORTANT] -> This feature is in public preview. It is being actively developed and might not be complete. They're made available on a "Preview" basis. You can test and use these features in production environments and scenarios and provide feedback. +# Hotpatch quality update report The Hotpatch quality update report provides a per policy level view of the current update statuses for all devices that receive Hotpatch updates. For more information about Hotpatching, see [Hotpatch updates](../manage/windows-autopatch-hotpatch-updates.md). @@ -27,7 +24,7 @@ The Hotpatch quality update report provides a per policy level view of the curre 1. Go to the [Intune admin center](https://go.microsoft.com/fwlink/?linkid=2109431). 1. Navigate to **Reports** > **Windows Autopatch** > **Windows quality updates**. 1. Select the **Reports** tab. -1. Select **Hotpatch quality updates (preview)**. +1. Select **Hotpatch quality updates**. > [!NOTE] > The data in this report is refreshed every four hours with data received by your Windows Autopatch managed devices. The last refreshed on date/time can be seen at the top of the page. For more information about how often Windows Autopatch receives data from your managed devices, see [Data latency](../monitor/windows-autopatch-windows-quality-and-feature-update-reports-overview.md#about-data-latency). From 9f80374b3810c12eb63ff82b7e7109094e2750db Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:30:24 -0400 Subject: [PATCH 10/35] freshness review --- .../windows/edu-take-a-test-kiosk-mode.md | 33 ++++--------- education/windows/images/icons/csp.svg | 10 ++++ .../intune-take-a-test-custom-profile.png | Bin 225886 -> 0 bytes .../windows/take-a-test-app-technical.md | 4 +- .../access-control/access-control.md | 4 +- .../access-control/local-accounts.md | 44 +++++++++--------- .../identity-protection/passkeys/index.md | 4 +- ...l-smart-card-deploy-virtual-smart-cards.md | 2 +- .../virtual-smart-card-evaluate-security.md | 2 +- .../virtual-smart-card-get-started.md | 2 +- .../virtual-smart-card-overview.md | 2 +- .../virtual-smart-card-tpmvscmgr.md | 2 +- ...smart-card-understanding-and-evaluating.md | 2 +- ...tual-smart-card-use-virtual-smart-cards.md | 2 +- .../windows-firewall/configure-logging.md | 2 +- .../configure-with-command-line.md | 6 +-- .../windows-firewall/configure.md | 4 +- .../windows-firewall/dynamic-keywords.md | 4 +- .../filter-origin-documentation.md | 4 +- .../windows-firewall/hyper-v-firewall.md | 4 +- .../windows-firewall/index.md | 6 +-- .../windows-firewall/quarantine.md | 4 +- .../windows-firewall/rules.md | 10 ++-- .../windows-firewall/tools.md | 4 +- .../troubleshooting-uwp-firewall.md | 2 +- 25 files changed, 79 insertions(+), 84 deletions(-) create mode 100644 education/windows/images/icons/csp.svg delete mode 100644 education/windows/images/takeatest/intune-take-a-test-custom-profile.png diff --git a/education/windows/edu-take-a-test-kiosk-mode.md b/education/windows/edu-take-a-test-kiosk-mode.md index 712eec4c91..3c605dd3e8 100644 --- a/education/windows/edu-take-a-test-kiosk-mode.md +++ b/education/windows/edu-take-a-test-kiosk-mode.md @@ -1,7 +1,7 @@ --- -title: Configure Take a Test in kiosk mode -description: Learn how to configure Windows to execute the Take a Test app in kiosk mode, using Intune and provisioning packages. -ms.date: 09/06/2024 +title: Configure Take a Test in Kiosk Mode +description: Learn how to configure Windows to execute the Take a Test app in kiosk mode using different methods. +ms.date: 04/07/2025 ms.topic: how-to --- @@ -11,10 +11,11 @@ Executing Take a Test in kiosk mode is the recommended option for high stakes as The configuration of Take a Test in kiosk mode can be done using: -- Microsoft Intune/MDM -- a provisioning package (PPKG) +- Microsoft Intune +- Configuration service provider (CSP) +- A provisioning package (PPKG) - PowerShell -- the Settings app +- The Settings app When using the Settings app, you can configure Take a Test in kiosk mode using a local account only. This option is recommended for devices that aren't managed. The other options allow you to configure Take a Test in kiosk mode using a local account, an account defined in the directory, or a guest account. @@ -28,18 +29,6 @@ Follow the instructions below to configure your devices, selecting the option th # [:::image type="icon" source="images/icons/intune.svg"::: **Intune/CSP**](#tab/intune) -You can use Intune for Education or a custom profile in Microsoft Intune: - -- Intune for Education provides a simpler experience -- A custom profile provides more flexibility and controls over the configuration - -> [!IMPORTANT] -> Currently, the policy created in Intune for Education is applicable to Windows 10 and Windows 11 only. **It will not apply to Windows 11 SE devices.** -> -> If you want to configure Take a Test for Windows 11 SE devices, you must use a custom policy. - -### Configure Take a Test from Intune for Education - To configure devices using Intune for Education, follow these steps: 1. Sign in to the Intune for Education portal @@ -51,9 +40,9 @@ To configure devices using Intune for Education, follow these steps: :::image type="content" source="./images/takeatest/intune-education-take-a-test-profile.png" alt-text="Intune for Education - creation of a Take a Test profile." lightbox="./images/takeatest/intune-education-take-a-test-profile.png" border="true"::: -### Configure Take a Test with a custom policy +# [:::image type="icon" source="images/icons/csp.svg"::: **CSP**](#tab/csp) -[!INCLUDE [intune-custom-settings-1](../../includes/configure/intune-custom-settings-1.md)] +To configure devices using configuration service providers, use the following settings: | Setting | |--------| @@ -65,10 +54,6 @@ To configure devices using Intune for Education, follow these steps: |
  • OMA-URI: **`./Vendor/MSFT/SharedPC/KioskModeUserTileDisplayText`**
  • Data type: **String**
  • Value: **Take a Test** (or a string of your choice to display in the sing-in screen)
  • | |
  • OMA-URI: **`./Vendor/MSFT/SecureAssessment/LaunchURI`**
  • Data type: **String**
  • Value: **\**
  • | -:::image type="content" source="./images/takeatest/intune-take-a-test-custom-profile.png" alt-text="Intune portal - creation of a custom policy to configure Take a Test." lightbox="./images/takeatest/intune-take-a-test-custom-profile.png" border="true"::: - -[!INCLUDE [intune-custom-settings-2](../../includes/configure/intune-custom-settings-2.md)] - # [:::image type="icon" source="images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg) To create a provisioning package, you can either use Set up School PCs or Windows Configuration Designer: diff --git a/education/windows/images/icons/csp.svg b/education/windows/images/icons/csp.svg new file mode 100644 index 0000000000..6baa611d0f --- /dev/null +++ b/education/windows/images/icons/csp.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/education/windows/images/takeatest/intune-take-a-test-custom-profile.png b/education/windows/images/takeatest/intune-take-a-test-custom-profile.png deleted file mode 100644 index 71e94646ec16bc9b9b04b37ba1fe618e9bd1c429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225886 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 gAAe$ynyLe5A1;8Hzu!Id`?sE#Am23n\Domains\<*Domain*>, and then **Group Policy Objects** where *forest* is the name of the forest, and *domain* is the name of the domain where you want to set the Group Policy Object (GPO) 1. In the console tree, right-click **Group Policy Objects > New** -1. In the **New GPO** dialog box, type <**gpo\_name**>, and > **OK** where *gpo\_name* is the name of the new GPO. The GPO name indicates that the GPO is used to restrict local administrator rights from being carried over to another computer -1. In the details pane, right-click <**gpo\_name**>, and > **Edit** +1. In the **New GPO** dialog box, type <**gpo_name**>, and > **OK** where *gpo_name* is the name of the new GPO. The GPO name indicates that the GPO is used to restrict local administrator rights from being carried over to another computer +1. In the details pane, right-click <**gpo_name**>, and > **Edit** 1. Ensure that UAC is enabled and that UAC restrictions apply to the default Administrator account by following these steps: - - Navigate to the Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\, and > **Security Options** - - Double-click **User Account Control: Run all administrators in Admin Approval Mode** > **Enabled** > **OK** - - Double-click **User Account Control: Admin Approval Mode for the Built-in Administrator account** > **Enabled** > **OK** + - Navigate to the **Computer Configuration** > **Windows Settings** > **Security Settings** > **Local Policies** > **Security Options** + - Select **User Account Control: Run all administrators in Admin Approval Mode** > **Enabled** > **OK** + - Select **User Account Control: Admin Approval Mode for the Built-in Administrator account** > **Enabled** > **OK** 1. Ensure that the local account restrictions are applied to network interfaces by following these steps: - Navigate to *Computer Configuration\Preferences and Windows Settings*, and > **Registry** - - Right-click **Registry**, and > **New** > **Registry Item** + - Right-click **Registry**, and > **New** > **Registry Item** - In the **New Registry Properties** dialog box, on the **General** tab, change the setting in the **Action** box to **Replace** - Ensure that the **Hive** box is set to **HKEY_LOCAL_MACHINE** - - Select (**…**), browse to the following location for **Key Path** > **Select** for: `SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System` + - Select (**…**), browse to the following location for **Key Path** > **Select** for: `SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System` - In the **Value name** area, type `LocalAccountTokenFilterPolicy` - In the **Value type** box, from the drop-down list, select **REG_DWORD** to change the value - In the **Value data** box, ensure that the value is set to **0** - - Verify this configuration, and > **OK** + - Verify this configuration, and > **OK** 1. Link the GPO to the first **Workstations** organizational unit (OU) by doing the following: - Navigate to the `*Forest*\\*Domain*\*OU*` path - Right-click the **Workstations > Link an existing GPO** - - Select the GPO that you created, and > **OK** + - Select the GPO that you created, and > **OK** 1. Test the functionality of enterprise applications on the workstations in that first OU and resolve any issues caused by the new policy 1. Create links to all other OUs that contain workstations @@ -278,23 +278,23 @@ The following table shows the Group Policy settings that are used to deny networ #### To deny network logon to all local administrator accounts 1. Start the **Group Policy Management** Console (GPMC) -1. In the console tree, expand <*Forest*>\\Domains\\<*Domain*>, and then **Group Policy Objects**, where *forest* is the name of the forest, and *domain* is the name of the domain where you want to set the Group Policy Object (GPO) -1. In the console tree, right-click **Group Policy Objects**, and > **New** -1. In the **New GPO** dialog box, type <**gpo\_name**>, and then > **OK** where *gpo\_name* is the name of the new GPO indicates that it's being used to restrict the local administrative accounts from interactively signing in to the computer -1. In the details pane, right-click <**gpo\_name**>, and > **Edit** +1. In the console tree, expand <*Forest*>\Domains\<*Domain*>, and then **Group Policy Objects**, where *forest* is the name of the forest, and *domain* is the name of the domain where you want to set the Group Policy Object (GPO) +1. In the console tree, right-click **Group Policy Objects**, and > **New** +1. In the **New GPO** dialog box, type <**gpo_name**>, and then > **OK** where *gpo_name* is the name of the new GPO indicates that it's being used to restrict the local administrative accounts from interactively signing in to the computer +1. In the details pane, right-click <**gpo_name**>, and > **Edit** 1. Configure the user rights to deny network logons for administrative local accounts as follows: -1. Navigate to the Computer Configuration\\Windows Settings\\Security Settings\\, and > **User Rights Assignment** +1. Navigate to the Computer Configuration\Windows Settings\Security Settings\, and > **User Rights Assignment** 1. Double-click **Deny access to this computer from the network** -1. Select **Add User or Group**, type **Local account and member of Administrators group**, and > **OK** +1. Select **Add User or Group**, type **Local account and member of Administrators group**, and > **OK** 1. Configure the user rights to deny Remote Desktop (Remote Interactive) logons for administrative local accounts as follows: -1. Navigate to Computer Configuration\\Policies\\Windows Settings and Local Policies, and then select **User Rights Assignment** +1. Navigate to Computer Configuration\Policies\Windows Settings and Local Policies, and then select **User Rights Assignment** 1. Double-click **Deny log on through Remote Desktop Services** -1. Select **Add User or Group**, type **Local account and member of Administrators group**, and > **OK** +1. Select **Add User or Group**, type **Local account and member of Administrators group**, and > **OK** 1. Link the GPO to the first **Workstations** OU as follows: - - Navigate to the <*Forest*>\\Domains\\<*Domain*>\\OU path - - Right-click the **Workstations** OU, and > **Link an existing GPO** - - Select the GPO that you created, and > **OK** + - Navigate to the <*Forest*>\Domains\<*Domain*>\OU path + - Right-click the **Workstations** OU, and > **Link an existing GPO** + - Select the GPO that you created, and > **OK** 1. Test the functionality of enterprise applications on the workstations in that first OU and resolve any issues caused by the new policy 1. Create links to all other OUs that contain workstations diff --git a/windows/security/identity-protection/passkeys/index.md b/windows/security/identity-protection/passkeys/index.md index ebad860cb2..aef59bf2b1 100644 --- a/windows/security/identity-protection/passkeys/index.md +++ b/windows/security/identity-protection/passkeys/index.md @@ -1,10 +1,10 @@ --- -title: Support for passkeys in Windows +title: Support for Passkeys in Windows description: Learn about passkeys and how to use them on Windows devices. ms.collection: - tier1 ms.topic: overview -ms.date: 09/06/2024 +ms.date: 04/07/2025 appliesto: - ✅ Windows 11 - ✅ Windows 10 diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-deploy-virtual-smart-cards.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-deploy-virtual-smart-cards.md index 8c0882c38c..5d48549c5c 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-deploy-virtual-smart-cards.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-deploy-virtual-smart-cards.md @@ -2,7 +2,7 @@ title: Deploy Virtual Smart Cards description: Learn about what to consider when deploying a virtual smart card authentication solution ms.topic: concept-article -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Deploy Virtual Smart Cards diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-evaluate-security.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-evaluate-security.md index 3ee5766ed3..99ccd6d643 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-evaluate-security.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-evaluate-security.md @@ -2,7 +2,7 @@ title: Evaluate Virtual Smart Card Security description: Learn about the security characteristics and considerations when deploying TPM virtual smart cards. ms.topic: concept-article -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Evaluate Virtual Smart Card Security diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-get-started.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-get-started.md index f9d707ff54..d4c5e6d5b9 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-get-started.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-get-started.md @@ -2,7 +2,7 @@ title: Get Started with Virtual Smart Cards - Walkthrough Guide description: This topic for the IT professional describes how to set up a basic test environment for using TPM virtual smart cards. ms.topic: get-started -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Get Started with Virtual Smart Cards: Walkthrough Guide diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-overview.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-overview.md index 985c2fcf93..5cc635e4d2 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-overview.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-overview.md @@ -2,7 +2,7 @@ title: Virtual Smart Card Overview description: Learn about virtual smart card technology for Windows. ms.topic: overview -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Virtual Smart Card Overview diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-tpmvscmgr.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-tpmvscmgr.md index 4204ca10f0..b908769c7e 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-tpmvscmgr.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-tpmvscmgr.md @@ -2,7 +2,7 @@ title: Tpmvscmgr description: Learn about the Tpmvscmgr command-line tool, through which an administrator can create and delete TPM virtual smart cards on a computer. ms.topic: reference -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Tpmvscmgr diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-understanding-and-evaluating.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-understanding-and-evaluating.md index d1a28711ff..fc2fc88404 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-understanding-and-evaluating.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-understanding-and-evaluating.md @@ -2,7 +2,7 @@ title: Understanding and Evaluating Virtual Smart Cards description: Learn how smart card technology can fit into your authentication design. ms.topic: overview -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Understand and Evaluate Virtual Smart Cards diff --git a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-use-virtual-smart-cards.md b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-use-virtual-smart-cards.md index de527ed1b0..66b7644792 100644 --- a/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-use-virtual-smart-cards.md +++ b/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-use-virtual-smart-cards.md @@ -2,7 +2,7 @@ title: Use Virtual Smart Cards description: Learn about the requirements for virtual smart cards, how to use and manage them. ms.topic: concept-article -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Use Virtual Smart Cards diff --git a/windows/security/operating-system-security/network-security/windows-firewall/configure-logging.md b/windows/security/operating-system-security/network-security/windows-firewall/configure-logging.md index 1696c770a0..8d95c636d5 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/configure-logging.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/configure-logging.md @@ -2,7 +2,7 @@ title: Configure Windows Firewall logging description: Learn how to configure Windows Firewall to log dropped packets or successful connections with CSP and group policy. ms.topic: how-to -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Configure Windows Firewall logging diff --git a/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line.md b/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line.md index b332d7b87d..0222d06e64 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line.md @@ -1,8 +1,8 @@ --- -title: Manage Windows Firewall with the command line +title: Manage Windows Firewall With the Command Line description: Learn how to manage Windows Firewall from the command line. This guide provides examples how to manage Windows Firewall with PowerShell and Netsh. ms.topic: how-to -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Manage Windows Firewall with the command line @@ -53,7 +53,7 @@ netsh advfirewall set allprofiles logging filename %SystemRoot%\System32\LogFile ### Disable Windows Firewall -Microsoft recommends that you don't disable Windows Firewall because you lose other benefits, such as the ability to use Internet Protocol security (IPsec) connection security rules, network protection from attacks that employ network fingerprinting, Windows Service Hardening, and [boot time filters][BTF]. Non-Microsoft firewall software can programmatically disable only the [rule types][FWRC] of Windows Firewall that need to be disabled for compatibility. You shouldn't disable the firewall yourself for this purpose. +Microsoft recommends that you don't disable Windows Firewall because you lose other benefits, such as the ability to use Internet Protocol security (IPsec) connection security rules, network protection from attacks that employ network fingerprinting, Windows Service Hardening, and [boot time filters][BTF]. Non-Microsoft firewall software can programmatically disable only the [rule types][FWRC] of Windows Firewall that need to be disabled for compatibility. You shouldn't disable the firewall yourself for this purpose. If disabling Windows Firewall is required, don't disable it by stopping the Windows Firewall service (in the Services snap-in, the display name is Windows Defender Firewall and the service name is MpsSvc). Stopping the Windows Firewall service isn't supported by Microsoft and can cause problems, including: - Start menu can stop working diff --git a/windows/security/operating-system-security/network-security/windows-firewall/configure.md b/windows/security/operating-system-security/network-security/windows-firewall/configure.md index f6540ef8df..b4ca3feac9 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/configure.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/configure.md @@ -1,8 +1,8 @@ --- -title: Configure firewall rules with group policy +title: Configure Firewall Rules With Group Policy description: Learn how to configure firewall rules using group policy with the Windows Firewall with Advanced Security console. ms.topic: how-to -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Configure rules with group policy diff --git a/windows/security/operating-system-security/network-security/windows-firewall/dynamic-keywords.md b/windows/security/operating-system-security/network-security/windows-firewall/dynamic-keywords.md index 55844489b4..30210647b8 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/dynamic-keywords.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/dynamic-keywords.md @@ -1,8 +1,8 @@ --- -title: Windows Firewall dynamic keywords +title: Windows Firewall Dynamic Keywords description: Learn about Windows Firewall dynamic keywords and how to configure it using Windows PowerShell. ms.topic: how-to -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Windows Firewall dynamic keywords diff --git a/windows/security/operating-system-security/network-security/windows-firewall/filter-origin-documentation.md b/windows/security/operating-system-security/network-security/windows-firewall/filter-origin-documentation.md index 3b126e154b..67bab0410a 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/filter-origin-documentation.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/filter-origin-documentation.md @@ -1,8 +1,8 @@ --- -title: Filter origin audit log +title: Filter Origin Audit Log description: Learn about Windows Firewall and filter origin audit log to troubleshoot packet drops. ms.topic: troubleshooting -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Filter origin audit log diff --git a/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall.md b/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall.md index c0f1b76b53..dee3c9a4a0 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall.md @@ -1,8 +1,8 @@ --- -title: Hyper-V firewall +title: Hyper-V Firewall description: Learn how to configure Hyper-V firewall rules and settings using PowerShell or Configuration Service Provider (CSP). ms.topic: how-to -ms.date: 09/06/2024 +ms.date: 04/07/2025 appliesto: - ✅ Windows 11 --- diff --git a/windows/security/operating-system-security/network-security/windows-firewall/index.md b/windows/security/operating-system-security/network-security/windows-firewall/index.md index 4de85b91d4..1a10def08e 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/index.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/index.md @@ -1,8 +1,8 @@ --- -title: Windows Firewall overview +title: Windows Firewall Overview description: Learn overview information about the Windows Firewall security feature. ms.topic: overview -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Windows Firewall overview @@ -75,7 +75,7 @@ The *public network* profile is designed with higher security in mind for public ## Disable Windows Firewall -Microsoft recommends that you don't disable Windows Firewall because you lose other benefits, such as the ability to use Internet Protocol security (IPsec) connection security rules, network protection from attacks that employ network fingerprinting, Windows Service Hardening, and [boot time filters][BTF]. Non-Microsoft firewall software can programmatically disable only the [rule types][FWRC] of Windows Firewall that need to be disabled for compatibility. You shouldn't disable the firewall yourself for this purpose. +Microsoft recommends that you don't disable Windows Firewall because you lose other benefits, such as the ability to use Internet Protocol security (IPsec) connection security rules, network protection from attacks that employ network fingerprinting, Windows Service Hardening, and [boot time filters][BTF]. Non-Microsoft firewall software can programmatically disable only the [rule types][FWRC] of Windows Firewall that need to be disabled for compatibility. You shouldn't disable the firewall yourself for this purpose. If disabling Windows Firewall is required, don't disable it by stopping the Windows Firewall service (in the Services snap-in, the display name is Windows Defender Firewall and the service name is MpsSvc). Stopping the Windows Firewall service isn't supported by Microsoft and can cause problems, including: - Start menu can stop working diff --git a/windows/security/operating-system-security/network-security/windows-firewall/quarantine.md b/windows/security/operating-system-security/network-security/windows-firewall/quarantine.md index 66d7f05f80..5c15f745cf 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/quarantine.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/quarantine.md @@ -1,8 +1,8 @@ --- -title: Quarantine behavior +title: Quarantine Behavior description: Learn about Windows Firewall and the quarantine feature behavior. ms.topic: concept-article -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Quarantine behavior diff --git a/windows/security/operating-system-security/network-security/windows-firewall/rules.md b/windows/security/operating-system-security/network-security/windows-firewall/rules.md index 3e4efcc4cd..6b6eef9e48 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/rules.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/rules.md @@ -1,7 +1,7 @@ --- -title: Windows Firewall rules +title: Windows Firewall Rules description: Learn about Windows Firewall rules and design recommendations. -ms.date: 09/06/2024 +ms.date: 04/07/2025 ms.topic: concept-article --- @@ -21,7 +21,7 @@ In many cases, allowing specific types of inbound traffic is required for applic Because of 1 and 2, when designing a set of policies, you should make sure that there are no other explicit block rules that could inadvertently overlap, thus preventing the traffic flow you wish to allow. -Outbound rules follow the same precedence behaviors. +Outbound rules follow the same precedence behaviors. > [!NOTE] > Windows Firewall doesn't support weighted, administrator-assigned rule ordering. An effective policy set with expected behaviors can be created by keeping in mind the few, consistent, and logical rule behaviors as described. @@ -33,12 +33,12 @@ When first installed, network applications and services issue a *listen call* sp :::row::: :::column span="2"::: If there's no active application or administrator-defined allow rule(s), a dialog box prompts the user to either allow or block an application's packets the first time the app is launched or tries to communicate in the network: - + - If the user has admin permissions, they're prompted. If they respond *No* or cancel the prompt, block rules are created. Two rules are typically created, one each for TCP and UDP traffic - If the user isn't a local admin and they are prompted, block rules are created. It doesn't matter what option is selected To disable the notification prompt, you can use the [command line](/windows/security/operating-system-security/network-security/windows-firewall/configure-with-command-line) or the **Windows Firewall with Advanced Security** console - + :::column-end::: :::column span="2"::: :::image type="content" source="images/uac.png" alt-text="Screenshot showing the User Account Control (UAC) prompt to allow Microsoft Teams." border="false"::: diff --git a/windows/security/operating-system-security/network-security/windows-firewall/tools.md b/windows/security/operating-system-security/network-security/windows-firewall/tools.md index bd17b1a53c..6c1d8fbbd2 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/tools.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/tools.md @@ -1,7 +1,7 @@ --- -title: Windows Firewall tools +title: Windows Firewall Tools description: Learn about the available tools to configure Windows Firewall and firewall rules. -ms.date: 09/06/2024 +ms.date: 04/07/2025 ms.topic: best-practice --- diff --git a/windows/security/operating-system-security/network-security/windows-firewall/troubleshooting-uwp-firewall.md b/windows/security/operating-system-security/network-security/windows-firewall/troubleshooting-uwp-firewall.md index 07a5074ab6..0d7e9b0c1b 100644 --- a/windows/security/operating-system-security/network-security/windows-firewall/troubleshooting-uwp-firewall.md +++ b/windows/security/operating-system-security/network-security/windows-firewall/troubleshooting-uwp-firewall.md @@ -2,7 +2,7 @@ title: Troubleshooting UWP App Connectivity Issues in Windows Firewall description: Troubleshooting UWP App Connectivity Issues in Windows Firewall ms.topic: troubleshooting -ms.date: 09/06/2024 +ms.date: 04/07/2025 --- # Troubleshooting UWP App Connectivity Issues From 7e5ec7c10cf3b0433729bd266340c6f0dcd826ca Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:53:11 -0400 Subject: [PATCH 11/35] updates --- .../windows/edu-take-a-test-kiosk-mode.md | 30 +++++++++---------- windows/configuration/start/layout.md | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/education/windows/edu-take-a-test-kiosk-mode.md b/education/windows/edu-take-a-test-kiosk-mode.md index 3c605dd3e8..65474c0222 100644 --- a/education/windows/edu-take-a-test-kiosk-mode.md +++ b/education/windows/edu-take-a-test-kiosk-mode.md @@ -27,7 +27,7 @@ The other options allow you to configure Take a Test in kiosk mode using a local Follow the instructions below to configure your devices, selecting the option that best suits your needs. -# [:::image type="icon" source="images/icons/intune.svg"::: **Intune/CSP**](#tab/intune) +# [:::image type="icon" source="images/icons/intune.svg"::: **Intune**](#tab/intune) To configure devices using Intune for Education, follow these steps: @@ -46,13 +46,13 @@ To configure devices using configuration service providers, use the following se | Setting | |--------| -|

  • OMA-URI: **`./Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions/InteractiveLogon_DoNotDisplayLastSignedIn`**
  • Data type: **Integer**
  • Value: **1**
  • | -|
  • OMA-URI: **`./Vendor/MSFT/Policy/Config/WindowsLogon/HideFastUserSwitching`**
  • Data type: **Integer**
  • Value: **1**
  • | -|
  • OMA-URI: **`./Vendor/MSFT/SharedPC/AccountModel`**
  • Data type: **Integer**
  • Value: **1**
  • | -|
  • OMA-URI: **`./Vendor/MSFT/SharedPC/EnableAccountManager`**
  • Data type: **Boolean**
  • Value: **True**
  • | -|
  • OMA-URI: **`./Vendor/MSFT/SharedPC/KioskModeAUMID`**
  • Data type: **String**
  • Value: **Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App**
  • | -|
  • OMA-URI: **`./Vendor/MSFT/SharedPC/KioskModeUserTileDisplayText`**
  • Data type: **String**
  • Value: **Take a Test** (or a string of your choice to display in the sing-in screen)
  • | -|
  • OMA-URI: **`./Vendor/MSFT/SecureAssessment/LaunchURI`**
  • Data type: **String**
  • Value: **\**
  • | +| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions/InteractiveLogon_DoNotDisplayLastSignedIn`
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/WindowsLogon/HideFastUserSwitching`
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/AccountModel`
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/EnableAccountManager`
    - **Data type:** Boolean
    - **Value:** `True`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/KioskModeAUMID`
    - **Data type:** String
    - **Value:** `Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/KioskModeUserTileDisplayText`
    - **Data type:** String
    - **Value:** **Take a Test** (or a string of your choice to display in the sing-in screen)| +| - **OMA-URI:** `./Vendor/MSFT/SecureAssessment/LaunchURI`
    - **Data type:** String
    - **Value:** | # [:::image type="icon" source="images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg) @@ -73,13 +73,13 @@ Create a provisioning package using the Set up School PCs app, configuring the s | Setting | |--------| -|
  • Path: **`Policies/LocalPoliciesSecurityOptions/InteractiveLogon_DoNotDisplayLastSignedIn`**
  • Value: **Enabled**
  • | -|
  • Path: **`Policies/WindowsLogon/HideFastUserSwitching`**
  • Value: **True**
  • | -|
  • Path: **`SharedPC/AccountManagement/AccountModel`**
  • Value: **Domain-joined only**
  • | -|
  • Path: **`SharedPC/AccountManagement/EnableAccountManager`**
  • Value: **True**
  • | -|
  • Path: **`SharedPC/AccountManagement/KioskModeAUMID`**
  • Value: **Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App**
  • | -|
  • Path: **`SharedPC/AccountManagement/KioskModeUserTileDisplayText`**
  • Value: **Take a Test** (or a string of your choice to display in the sing-in screen)
  • | -|
  • Path: **`TakeATest/LaunchURI/`**
  • Value: **\**
  • | +| - Path: `Policies/LocalPoliciesSecurityOptions/InteractiveLogon_DoNotDisplayLastSignedIn`
    - **Value:** `Enabled`| +| - Path: `Policies/WindowsLogon/HideFastUserSwitching`
    - **Value:** True| +| - Path: `SharedPC/AccountManagement/AccountModel`
    - **Value:** Domain-joined only| +| - Path: `SharedPC/AccountManagement/EnableAccountManager`
    - **Value:** True| +| - Path: `SharedPC/AccountManagement/KioskModeAUMID`
    - **Value:** **Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App**| +| - Path: `SharedPC/AccountManagement/KioskModeUserTileDisplayText`
    - **Value:** Take a Test (or a string of your choice to display in the sing-in screen)| +| - Path: `TakeATest/LaunchURI/`
    - **Value:** | :::image type="content" source="./images/takeatest/wcd-take-a-test.png" alt-text="Windows Configuration Designer - configuration of policies to enable Take a Test to run in kiosk mode" lightbox="./images/takeatest/wcd-take-a-test.png" border="true"::: diff --git a/windows/configuration/start/layout.md b/windows/configuration/start/layout.md index 42002f195e..7d53966dec 100644 --- a/windows/configuration/start/layout.md +++ b/windows/configuration/start/layout.md @@ -470,7 +470,7 @@ You can configure devices using the [Start CSP][WIN-1]. Use one of the following [!INCLUDE [provisioning-package-1](../../../includes/configure/provisioning-package-1.md)] -- **Path:** `Policies/Start/StartLayout` +- **Path:** Policies > Start > StartLayout - **Value:** content of the XML file > [!NOTE] From 3a1694827952c1e622be6d5a43813c52cb12cab2 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 7 Apr 2025 12:06:29 -0400 Subject: [PATCH 12/35] updates --- education/windows/edu-take-a-test-kiosk-mode.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/education/windows/edu-take-a-test-kiosk-mode.md b/education/windows/edu-take-a-test-kiosk-mode.md index 65474c0222..14a1e7515a 100644 --- a/education/windows/edu-take-a-test-kiosk-mode.md +++ b/education/windows/edu-take-a-test-kiosk-mode.md @@ -46,13 +46,13 @@ To configure devices using configuration service providers, use the following se | Setting | |--------| -| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions/InteractiveLogon_DoNotDisplayLastSignedIn`
    - **Data type:** Integer
    - **Value:** `1`| -| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/WindowsLogon/HideFastUserSwitching`
    - **Data type:** Integer
    - **Value:** `1`| -| - **OMA-URI:** `./Vendor/MSFT/SharedPC/AccountModel`
    - **Data type:** Integer
    - **Value:** `1`| -| - **OMA-URI:** `./Vendor/MSFT/SharedPC/EnableAccountManager`
    - **Data type:** Boolean
    - **Value:** `True`| -| - **OMA-URI:** `./Vendor/MSFT/SharedPC/KioskModeAUMID`
    - **Data type:** String
    - **Value:** `Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App`| -| - **OMA-URI:** `./Vendor/MSFT/SharedPC/KioskModeUserTileDisplayText`
    - **Data type:** String
    - **Value:** **Take a Test** (or a string of your choice to display in the sing-in screen)| -| - **OMA-URI:** `./Vendor/MSFT/SecureAssessment/LaunchURI`
    - **Data type:** String
    - **Value:** | +| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions/`[InteractiveLogon_DoNotDisplayLastSignedIn](/windows/client-management/mdm/policy-csp-localpoliciessecurityoptions#interactivelogon_donotdisplaylastsignedin)
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/Policy/Config/WindowsLogon/`[HideFastUserSwitching](/windows/client-management/mdm/policy-csp-windowslogon#hidefastuserswitching)
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/`[AccountModel](/windows/client-management/mdm/sharedpc-csp#accountmodel)
    - **Data type:** Integer
    - **Value:** `1`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/`[EnableAccountManager](/windows/client-management/mdm/sharedpc-csp#enableaccountmanager)
    - **Data type:** Boolean
    - **Value:** `True`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/`[KioskModeAUMID](/windows/client-management/mdm/sharedpc-csp#kioskmodeaumid)
    - **Data type:** String
    - **Value:** `Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App`| +| - **OMA-URI:** `./Vendor/MSFT/SharedPC/`[KioskModeUserTileDisplayText](/windows/client-management/mdm/sharedpc-csp#KioskModeUserTileDisplayText)
    - **Data type:** String
    - **Value:** **Take a Test** (or a string of your choice to display in the sing-in screen)| +| - **OMA-URI:** `./Vendor/MSFT/SecureAssessment/`[LaunchURI](/windows/client-management/mdm/sharedpc-csp#LaunchURI)
    - **Data type:** String
    - **Value:** \| # [:::image type="icon" source="images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg) @@ -79,7 +79,7 @@ Create a provisioning package using the Set up School PCs app, configuring the s | - Path: `SharedPC/AccountManagement/EnableAccountManager`
    - **Value:** True| | - Path: `SharedPC/AccountManagement/KioskModeAUMID`
    - **Value:** **Microsoft.Windows.SecureAssessmentBrowser_cw5n1h2txyewy!App**| | - Path: `SharedPC/AccountManagement/KioskModeUserTileDisplayText`
    - **Value:** Take a Test (or a string of your choice to display in the sing-in screen)| -| - Path: `TakeATest/LaunchURI/`
    - **Value:** | +| - Path: `TakeATest/LaunchURI/`
    - **Value:** \| :::image type="content" source="./images/takeatest/wcd-take-a-test.png" alt-text="Windows Configuration Designer - configuration of policies to enable Take a Test to run in kiosk mode" lightbox="./images/takeatest/wcd-take-a-test.png" border="true"::: From 4b025fc8ca0a6c406e53745302532346c750acd7 Mon Sep 17 00:00:00 2001 From: mgewida1 Date: Mon, 7 Apr 2025 15:17:44 -0700 Subject: [PATCH 13/35] Update configure.md --- .../security/identity-protection/credential-guard/configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/identity-protection/credential-guard/configure.md b/windows/security/identity-protection/credential-guard/configure.md index 84a8a1ab89..2e5a9a8c07 100644 --- a/windows/security/identity-protection/credential-guard/configure.md +++ b/windows/security/identity-protection/credential-guard/configure.md @@ -212,7 +212,7 @@ The following event indicates whether TPM is used for key protection. Path: `App :::column-end::: :::row-end::: -If you're running with a TPM, the TPM PCR mask value is something other than 0. +The TPM PCR mask is only relevant when SRTM is used. If the cached Copy status is 1, SRTM was not used - typically indicating DRTM is in use - and the PCR mask should be ignored. ## Disable Credential Guard From 94b89a6f213147620da0e92e7aebfa182ef41947 Mon Sep 17 00:00:00 2001 From: Ruchika Mittal Date: Tue, 8 Apr 2025 03:52:35 +0530 Subject: [PATCH 14/35] repo-health-link-fix --- .../certification/validations/cc-windows-server-previous.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/security-foundations/certification/validations/cc-windows-server-previous.md b/windows/security/security-foundations/certification/validations/cc-windows-server-previous.md index d41e015648..bba88b0a2d 100644 --- a/windows/security/security-foundations/certification/validations/cc-windows-server-previous.md +++ b/windows/security/security-foundations/certification/validations/cc-windows-server-previous.md @@ -63,7 +63,7 @@ The following tables list the completed Common Criteria certifications for Windo [security-target-april-2014]: https://www.commoncriteriaportal.org/files/epfiles/st_vid10540-st.pdf [security-target-january-2014]: https://www.commoncriteriaportal.org/files/epfiles/st_vid10529-st.pdf [security-target-march-2011]: https://www.commoncriteriaportal.org/files/epfiles/st_vid10390-st.pdf -[security-target-july-2009]: https://www.microsoft.com/download/en/details.aspx?id=29305 +[security-target-july-2009]: https://www.microsoft.com/download/details.aspx?id=29305 [security-target-july-2009-hyperv]: https://www.commoncriteriaportal.org/files/epfiles/0570b_pdf.pdf [security-target-august-2009]: https://www.commoncriteriaportal.org/files/epfiles/st_vid10291-st.pdf [security-target-september-2008]: https://www.commoncriteriaportal.org/files/epfiles/efs-t005_msvista_msserver2008_eal1_st_v1.0.pdf @@ -77,7 +77,7 @@ The following tables list the completed Common Criteria certifications for Windo [admin-guide-january-2015-pro]: https://download.microsoft.com/download/6/0/b/60b27ded-705a-4751-8e9f-642e635c3cf3/microsoft%20windows%208%20windows%20server%202012%20common%20criteria%20supplemental%20admin%20guidance.docx [admin-guide-april-2014]: https://download.microsoft.com/download/0/8/4/08468080-540b-4326-91bf-f2a33b7e1764/administrative%20guidance%20for%20software%20full%20disk%20encryption%20clients.pdf [admin-guide-january-2014]: https://download.microsoft.com/download/a/9/f/a9fd7e2d-023b-4925-a62f-58a7f1a6bd47/microsoft%20windows%208%20windows%20server%202012%20supplemental%20admin%20guidance%20ipsec%20vpn%20client.docx -[admin-guide-july-2009]: https://www.microsoft.com/download/en/details.aspx?id=29308 +[admin-guide-july-2009]: https://www.microsoft.com/download/details.aspx?id=29308 [admin-guide-july-2009-hyperv]: https://www.microsoft.com/en-us/download/details.aspx?id=14252 From fe3e374dd986245a1af05ffb908d40a372276c5d Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 09:37:10 -0400 Subject: [PATCH 15/35] Highlight MBR2GPT.exe location Highlight MBR2GPT.exe location. We keep getting customer feedback asking where it's at when it was already documented in the article where it's at. --- windows/deployment/mbr-to-gpt.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/windows/deployment/mbr-to-gpt.md b/windows/deployment/mbr-to-gpt.md index 51a6fb4e62..228db5bd26 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. From 5957bc88e9df4758dbdeb63163ff855588577d8d Mon Sep 17 00:00:00 2001 From: Padma Jayaraman Date: Tue, 8 Apr 2025 19:41:29 +0530 Subject: [PATCH 16/35] Fixed indents --- windows/deployment/mbr-to-gpt.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/windows/deployment/mbr-to-gpt.md b/windows/deployment/mbr-to-gpt.md index 228db5bd26..2e0fd5f1de 100644 --- a/windows/deployment/mbr-to-gpt.md +++ b/windows/deployment/mbr-to-gpt.md @@ -453,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. From 1a34bcf291aef648fce34d6fffba2d4d0829ec4f Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 10:55:55 -0400 Subject: [PATCH 17/35] Refresh SetupDiag article --- windows/deployment/upgrade/setupdiag.md | 157 +++++++++++------------- 1 file changed, 72 insertions(+), 85 deletions(-) diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index 140ffb27b7..d22472f155 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/2024 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -39,14 +39,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 +58,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 +85,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 director where `setupdiag.exe` was 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:

    • Recovery instructs **SetupDiag.exe** to look for and process reset and recovery logs and ignore setup/upgrade logs.
    • Debug instructs **SetupDiag.exe** to debug memory dumps if the requisite debug binaries are installed.
    | -| **/Verbose** | This optional parameter creates a diagnostic log in the current directory, with debugging information, additional data, and details about SetupDiag. By default, SetupDiag only produces a log file entry for major errors. Using **/Verbose** causes SetupDiag to always produce another log file with debugging details. These details can be useful when reporting a problem with SetupDiag. | +| **/Verbose** | This optional parameter creates a diagnostic log in the current directory, with debugging information, additional data, and details about SetupDiag. By default, SetupDiag only produces a log file entry for major errors. Using **/Verbose** causes SetupDiag to always produce another log file with debugging details. These details can be useful when reporting a problem with SetupDiag. | | **/NoTel** | This optional parameter tells **SetupDiag.exe** not to send diagnostic telemetry to Microsoft. | -| **/RegPath** | This optional parameter Instructs **SetupDiag.exe** to add failure information to the registry under the given path. Registry paths should start with **HKEY_LOCAL_MACHINE** or **HKEY_CURRENT_USER** and be accessible at the elevation level SetupDiag is executed under. If this parameter isn't specified, the default path is **HKLM\SYSTEM\Setup\MoSetup\Volatile\SetupDiag**. | -| **/AddReg** | This optional parameter Instructs **SetupDiag.exe** to add failure information to the registry on the executing system in offline mode. SetupDiag by default adds failure information to the registry in Online mode only. Registry data goes to **HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup\Volatile\SetupDiag** unless otherwise specified. | +| **/RegPath** | This optional parameter Instructs **SetupDiag.exe** to add failure information to the registry under the given path. Registry paths should start with **HKEY_LOCAL_MACHINE** or **HKEY_CURRENT_USER** and be accessible at the elevation level SetupDiag is executed under. If this parameter isn't specified, the default path is `HKLM\SYSTEM\Setup\MoSetup\Volatile\SetupDiag`. | +| **/AddReg** | This optional parameter Instructs **SetupDiag.exe** to add failure information to the registry on the executing system in offline mode. SetupDiag by default adds failure information to the registry in Online mode only. Registry data goes to `HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup\Volatile\SetupDiag` unless otherwise specified. | > [!NOTE] > > The **/Mode** parameter is deprecated in SetupDiag. > -> In previous versions, this command was used with the LogsPath parameter to specify that SetupDiag should run in an offline manner to analyze a set of log files that were captured from a different computer. In current versions of SetupDiag, when /LogsPath is specified then SetupDiag automatically runs in offline mode, therefore the /Mode parameter isn't needed. +> In previous versions, the **/Mode** parameter was used with the **/LogsPath** parameter in offline mode and would analyze a set of log files that were captured on a different computer. In current versions of SetupDiag, when **/LogsPath** is specified, then SetupDiag automatically runs in offline mode, therefore the **/Mode** parameter isn't needed. ### Examples @@ -132,13 +138,13 @@ For instructions on how to run the tool in offline mode and with more advanced o > > **SetupDiage.exe** should be run from an elevated command prompt for it to work properly. -- In the following example, SetupDiag is run without parameters and it displays interactive help. +- In the following example, SetupDiag is run without parameters and it displays help information. ```cmd SetupDiag.exe ``` -- In the following example, SetupDiag is run in online mode (this mode is the default). It knows where to look for logs on the current (failing) system, so there's no need to gather logs ahead of time. A custom location for results is specified. +- In the following example, SetupDiag is run in online mode (this mode is the default). It knows where to look for logs on the current (failing) system, so there's no need to gather logs ahead of time. A custom location for results is specified. ```cmd SetupDiag.exe /Output:C:\SetupDiag\Results.log @@ -156,13 +162,12 @@ For instructions on how to run the tool in offline mode and with more advanced o SetupDiag.exe /Output:C:\SetupDiag\Results.log /LogsPath:D:\Temp\Logs\LogSet1 ``` -- The following example sets recovery scenario in offline mode. In the example, SetupDiag searches for reset/recovery logs in the specified LogsPath location and output the results to the directory specified by the **/Output** parameter. +- The following example is an example of Reset/Recovery Offline Mode. SetupDiag is instructed to look for reset/recovery logs in the specified LogsPath location. It then outputs the results to the directory specified by the **/Output** parameter. ```cmd SetupDiag.exe /Output:C:\SetupDiag\RecoveryResults.log /LogsPath:D:\Temp\Cabs\PBR_Log /Scenario:Recovery - ``` -- The following example sets recovery scenario in online mode. In the example, SetupDiag searches for reset/recovery logs on the current system and output results in XML format. +- The following example is an example of Reset/Recovery Online Mode. SetupDiag is instructed to look for reset/recovery logs on the current system and output its results in XML format. ```cmd SetupDiag.exe /Scenario:Recovery /Format:xml @@ -180,24 +185,6 @@ For instructions on how to run the tool in offline mode and with more advanced o SetupDiag.exe /Output:C:\SetupDiag\Results.xml /Format:xml ``` -- The following example is an example of Online Mode where no parameters are needed or used. SetupDiag is instructed to look for setup/upgrade logs on the current system and output the results to the same directory where SetupDiag is located. - - ```cmd - SetupDiag.exe - ``` - -- The following example is an example of Reset/Recovery Offline Mode. SetupDiag is instructed to look for reset/recovery logs in the specified LogsPath location. It then outputs the results to the directory specified by the **/Output** parameter. - - ```cmd - SetupDiag.exe /Output:C:\SetupDiag\RecoveryResults.log /LogsPath:D:\Temp\Cabs\PBR_Log /Scenario:Recovery - ``` - -- The following example is an example of Reset/Recovery Online Mode. SetupDiag is instructed to look for reset/recovery logs on the current system and output its results in XML format. - - ```cmd - SetupDiag.exe /Scenario:Recovery /Format:xml - ``` - ## Log files [Windows Setup Log Files and Event Logs](/windows-hardware/manufacture/desktop/windows-setup-log-files-and-event-logs) has information about where logs are created during Windows Setup. For offline processing, SetupDiag should be run against the contents of the entire folder. For example, depending on when the upgrade failed, copy one of the following folders to the offline location: @@ -225,7 +212,7 @@ To debug a setup-related bug check: - Install the [Windows Debugging Tools](/windows-hardware/drivers/debugger/debugger-download-tools) on the computer that runs SetupDiag. -In the following example, the `setupmem.dmp` file is copied to the `D:\Dump` directory and the Windows Debugging Tools are installed prior to running SetupDiag: +In the following example, the `setupmem.dmp` file is copied to the `D:\Dump` directory and the Windows Debugging Tools are installed before running SetupDiag: ```cmd SetupDiag.exe /Output:C:\SetupDiag\Dumpdebug.log /LogsPath:D:\Dump @@ -283,59 +270,59 @@ Each rule name and its associated unique rule identifier are listed with a descr | **CompatScanOnly** | FFDAFD37-DB75-498A-A893-472D49A1311D | This rule indicates that `setup.exe` was called with a specific command line parameter that indicated setup was to do a compatibility scan only, not an upgrade. | | **PlugInComplianceBlock** | D912150B-1302-4860-91B5-527907D08960 | Detects all compatibility blocks from Server compliance plug-ins. This rule is for server upgrades only. It outputs the compliance block and remediation required. | | **BitLockerHardblock** | C30152E2-938E-44B8-915B-D1181BA635AE | This block is an upgrade block when the target OS doesn't support BitLocker, yet the host OS has BitLocker enabled. | -| **VHDHardblock** | D9ED1B82-4ED8-4DFD-8EC0-BE69048978CC | This block happens when the host OS is booted to a VHD image. Upgrade isn't supported when the host OS is booted from a VHD image. | -| **PortableWorkspaceHardblock** | 5B0D3AB4-212A-4CE4-BDB9-37CA404BB280 | This block indicates that the host OS is booted from a Windows To-Go device (USB key). Upgrade isn't supported in the Windows To-Go environment. | -| **AuditModeHardblock** | A03BD71B-487B-4ACA-83A0-735B0F3F1A90 | This block indicates that the host OS is currently booted into Audit Mode, a special mode for modifying the Windows state. Upgrade isn't supported from this state. | +| **VHDHardblock** | D9ED1B82-4ED8-4DFD-8EC0-BE69048978CC | This block happens when the host OS is booted to a VHD image. Upgrade isn't supported when the host OS is booted from a VHD image. | +| **PortableWorkspaceHardblock** | 5B0D3AB4-212A-4CE4-BDB9-37CA404BB280 | This block indicates that the host OS is booted from a Windows To-Go device (USB key. Upgrade isn't supported in the Windows To-Go environment. | +| **AuditModeHardblock** | A03BD71B-487B-4ACA-83A0-735B0F3F1A90 | This block indicates that the host OS is currently booted into Audit Mode, a special mode for modifying the Windows state. Upgrade isn't supported from this state. | | **SafeModeHardblock** | 404D9523-B7A8-4203-90AF-5FBB05B6579B | This block indicates that the host OS is booted to Safe Mode, where upgrade isn't supported. | | **InsufficientSystemPartitionDiskSpaceHardblock** | 3789FBF8-E177-437D-B1E3-D38B4C4269D1 | This block is encountered when setup determines the system partition doesn't have enough space to be serviced with the newer boot files required during the upgrade process. The system partition is where the boot loader files are stored | | **CompatBlockedApplicationAutoUninstall** | BEBA5BC6-6150-413E-8ACE-5E1EC8D34DD5 | This rule indicates there's an application that needs to be uninstalled before setup can continue. | -| **CompatBlockedApplicationDismissable** | EA52620B-E6A0-4BBC-882E-0686605736D9 | When setup is run in **/quiet** mode, there are dismissible application messages that turn into blocks unless the command line also specifies **/compat ignorewarning**. This rule indicates setup was executed in **/quiet** mode but there's an application dismissible block message that prevented setup from continuing. | -| **CompatBlockedFODDismissable** | 7B693C42-793E-4E9E-A10B-ED0F33D45E2A | When setup is run in **/quiet** mode, there are dismissible Feature On Demand messages that turn into blocks unless the command line also specifies **/compat ignorewarning**. This rule indicates setup was executed in **/quiet** mode but there's a Feature On Demand dismissible block message that prevented setup from continuing, usually that the target OS image is missing a Feature On Demand that is installed in the current OS. Removal of the Feature On Demand in the current OS should also resolve the issue. -| **CompatBlockedApplicationManualUninstall** | 9E912E5F-25A5-4FC0-BEC1-CA0EA5432FF4 | This rule indicates that an application without an Add/Remove Programs entry, is present on the system and blocking setup from continuing. This block typically requires manual removal of the files associated with this application to continue. | +| **CompatBlockedApplicationDismissable** | EA52620B-E6A0-4BBC-882E-0686605736D9 | When setup is run in **/quiet** mode, there are dismissible application messages that turn into blocks unless the command line also specifies **/compat ignorewarning**. This rule indicates setup was executed in **/quiet** mode but there's an application dismissible block message that prevented setup from continuing. | +| **CompatBlockedFODDismissable** | 7B693C42-793E-4E9E-A10B-ED0F33D45E2A | When setup is run in **/quiet** mode, there are dismissible Feature On Demand messages that turn into blocks unless the command line also specifies **/compat ignorewarning**. This rule indicates setup was executed in **/quiet** mode but there's a Feature On Demand dismissible block message that prevented setup from continuing, usually that the target OS image is missing a Feature On Demand that is installed in the current OS. Removal of the Feature On Demand in the current OS should also resolve the issue. +| **CompatBlockedApplicationManualUninstall** | 9E912E5F-25A5-4FC0-BEC1-CA0EA5432FF4 | This rule indicates that an application without an Add/Remove Programs entry, is present on the system and blocking setup from continuing. This block typically requires manual removal of the files associated with this application to continue. | | **GenericCompatBlock** | 511B9D95-C945-4F9B-BD63-98F1465E1CF6 | The rule indicates that system doesn't meet a hardware requirement for running Windows. For example, the device is missing a requirement for TPM 2.0. This issue can occur even when an attempt is made to bypass the hardware requirements. | | **GatedCompatBlock** | 34A9F145-3842-4A68-987F-4622EE0FC162 | This rule indicates that the upgrade failed due to a temporary block. A temporary block is put in place when an issue is found with a specific piece of software or hardware driver and the issue has a fix pending. The block is lifted once the fix is widely available. | -| **HardblockDeviceOrDriver** | ED3AEFA1-F3E2-4F33-8A21-184ADF215B1B | This error indicates a device driver that is loaded on the host OS isn't compatible with the newer OS version. The device driver needs to be removed prior to the upgrade. | +| **HardblockDeviceOrDriver** | ED3AEFA1-F3E2-4F33-8A21-184ADF215B1B | This error indicates a device driver that is loaded on the host OS isn't compatible with the newer OS version. The device driver needs to be removed before the upgrade. | | **HardblockMismatchedLanguage** | 60BA8449-CF23-4D92-A108-D6FCEFB95B45 | This rule indicates the host OS and the target OS language editions don't match. | -| **HardblockFlightSigning** | 598F2802-3E7F-4697-BD18-7A6371C8B2F8 | This rule indicates the target OS is a pre-release, Windows Insider build, and the target machine has Secure Boot enabled. This rule blocks the pre-release signed build from booting if installed on the machine. | +| **HardblockFlightSigning** | 598F2802-3E7F-4697-BD18-7A6371C8B2F8 | This rule indicates the target OS is a pre-release, Windows Insider build, and the target machine has Secure Boot enabled. This rule blocks the pre-release signed build from booting if installed on the machine. | | **DiskSpaceBlockInDownLevel** | 6080AFAC-892E-4903-94EA-7A17E69E549E | This failure indicates the system ran out of disk space during the down-level operations of upgrade. | | **DiskSpaceFailure** | 981DCBA5-B8D0-4BA7-A8AB-4030F7A10191 | This failure indicates the system drive ran out of available disk space at some point after the first reboot into the upgrade. | | **PreReleaseWimMountDriverFound** | 31EC76CC-27EC-4ADC-9869-66AABEDB56F0 | Captures failures due to having an unrecognized `wimmount.sys` driver registered on the system. | -| **DebugSetupMemoryDump** | C7C63D8A-C5F6-4255-8031-74597773C3C6 | This offline only rule indicates a bug check occurred during setup. If the debugger tools are available on the system, SetupDiag debugs the memory dump and provide details. | -| **DebugSetupCrash** | CEEBA202-6F04-4BC3-84B8-7B99AED924B1 | This offline only rule indicates that setup itself encountered a failure that resulted in a process memory dump. If the debugger tools are installed on the system, SetupDiag debugs the memory dump and give further details. | -| **DebugMemoryDump** | 505ED489-329A-43F5-B467-FCAAF6A1264C | This offline only rule is for any memory.dmp file that resulted during the setup/upgrade operation. If the debugger tools are installed on the system, SetupDiag debugs the memory dump and give further details. | +| **DebugSetupMemoryDump** | C7C63D8A-C5F6-4255-8031-74597773C3C6 | This offline only rule indicates a bug check occurred during setup. If the debugger tools are available on the system, SetupDiag debugs the memory dump and provide details. | +| **DebugSetupCrash** | CEEBA202-6F04-4BC3-84B8-7B99AED924B1 | This offline only rule indicates that setup itself encountered a failure that resulted in a process memory dump. If the debugger tools are installed on the system, SetupDiag debugs the memory dump and give further details. | +| **DebugMemoryDump** | 505ED489-329A-43F5-B467-FCAAF6A1264C | This offline only rule is for any memory.dmp file that resulted during the setup/upgrade operation. If the debugger tools are installed on the system, SetupDiag debugs the memory dump and give further details. | | **DeviceInstallHang** | 37BB1C3A-4D79-40E8-A556-FDA126D40BC6 | This failure rule indicates the system hung or bug checked during the device installation phase of upgrade. | | **DriverPackageMissingFileFailure** | 37BB1C3A-4D79-40E8-A556-FDA126D40BC6 | This rule indicates that a driver package had a missing file during device install. Updating the driver package might help resolve the issue. | | **UnsignedDriverBootFailure** | CD270AA4-C044-4A22-886A-F34EF2E79469 | This rule indicates that an unsigned driver caused a boot failure. | -| **BootFailureDetected** | 4FB446C2-D4EC-40B4-97E2-67EB19D1CFB7 | This rule indicates a boot failure occurred during a specific phase of the update. The rule indicates the failure code and phase for diagnostic purposes. | +| **BootFailureDetected** | 4FB446C2-D4EC-40B4-97E2-67EB19D1CFB7 | This rule indicates a boot failure occurred during a specific phase of the update. The rule indicates the failure code and phase for diagnostic purposes. | | **WinSetupBootFilterFailure** | C073BFC8-5810-4E19-B53B-4280B79E096C | Detects failures in the kernel mode file operations. | | **FindDebugInfoFromRollbackLog** | 9600EB68-1120-4A87-9FE9-3A4A70ACFC37 | This rule determines and gives details when a bug check occurs during the setup/upgrade process that resulted in a memory dump. However, a debugger package isn't required on the executing machine. | -| **AdvancedInstallerFailed** | 77D36C96-32BE-42A2-BB9C-AAFFE64FCADC | Finds fatal advanced installer operations that cause setup failures. Indicates critical failure in the AdvancedInstaller while running an installer package, includes the .exe being called, the phase, mode, component and error codes. | +| **AdvancedInstallerFailed** | 77D36C96-32BE-42A2-BB9C-AAFFE64FCADC | Finds fatal advanced installer operations that cause setup failures. Indicates critical failure in the AdvancedInstaller while running an installer package, includes the .exe being called, the phase, mode, component, and error codes. | | **AdvancedInstallerPluginInstallFailed** | 2F784A0E-CEB1-47C5-8072-F1294C7CB4AE | This rule indicates some component that was being installed via an advanced installer (FeatureOnDemand, Language Packs, .NET packages, etc.) failed to install. The rule calls out what was being installed. If the failed component is a FeatureOnDemand, remove the Windows Feature, reboot, and try the upgrade again. If the failed component is a Language Pack, remove the additional language pack, reboot, and try the upgrade again. | -| **AdvancedInstallerGenericFailure** | 4019550D-4CAA-45B0-A222-349C48E86F71 | A rule to match AdvancedInstaller read/write failures in a generic sense. Triggers on advanced installer failures in a generic sense. It outputs the application called, phase, mode, component and error code. | -| **FindMigApplyUnitFailure** | A4232E11-4043-4A37-9BF4-5901C46FD781 | Detects a migration unit failure that caused the update to fail. This rule outputs the name of the migration plug-in and the error code it produced for diagnostic purposes. | -| **FindMigGatherUnitFailure** | D04C064B-CD77-4E64-96D6-D26F30B4EE29 | Detects a migration gather unit failure that caused the update to fail. This rule outputs the name of the gather unit/plug-in and the error code it produced for diagnostic purposes. | -| **FindMigGatherApplyFailure** | A9964E6C-A2A8-45FF-B6B5-25E0BD71428E | Shows errors when the migration Engine fails out on a gather or apply operation. Indicates the Migration Object (file or registry path), the Migration | -| **OptionalComponentFailedToGetOCsFromPackage** | D012E2A2-99D8-4A8C-BBB2-088B92083D78 | This rule matches a specific Optional Component failure when attempting to enumerate components in a package. Indicates the optional component (OC) migration operation failed to enumerate optional components from an OC Package. It outputs the package name and error code. This rule replaces the OptionalComponentInstallFailure rule present. | -| **OptionalComponentOpenPackageFailed** | 22952520-EC89-4FBD-94E0-B67DF88347F6 | Matches a specific Optional Component failure when attempting to open an OC package. It outputs the package name and error code. Indicates the optional component migration operation failed to open an optional component Package. Outputs the package name and error code. | -| **OptionalComponentInitCBSSessionFailed** | 63340812-9252-45F3-A0F2-B2A4CA5E9317 | Matches a specific failure where the advanced installer service or components aren't operating or started on the system. Indicates corruption in the servicing stack on the down-level system. Outputs the error code encountered while trying to initialize the servicing component on the existing OS. | -| **CriticalSafeOSDUFailure** | 73566DF2-CA26-4073-B34C-C9BC70DBF043 | This rule indicates a failure occurred while updating the SafeOS image with a critical dynamic update. It indicates the phase and error code that occurred while attempting to update the SafeOS image for diagnostic purposes. | -| **UserProfileCreationFailureDuringOnlineApply** | 678117CE-F6A9-40C5-BC9F-A22575C78B14 | Indicates there was a critical failure while creating or modifying a User Profile during the online apply phase of the update. It indicates the operation and error code associated with the failure for diagnostic purposes. | -| **UserProfileCreationFailureDuringFinalize** | C6677BA6-2E53-4A88-B528-336D15ED1A64 | Matches a specific User Profile creation error during the finalize phase of setup. It outputs the failure code. | +| **AdvancedInstallerGenericFailure** | 4019550D-4CAA-45B0-A222-349C48E86F71 | A rule to match AdvancedInstaller read/write failures in a generic sense. Triggers on advanced installer failures in a generic sense. It outputs the application called, phase, mode, component, and error code. | +| **FindMigApplyUnitFailure** | A4232E11-4043-4A37-9BF4-5901C46FD781 | Detects a migration unit failure that caused the update to fail. This rule outputs the name of the migration plug-in and the error code it produced for diagnostic purposes. | +| **FindMigGatherUnitFailure** | D04C064B-CD77-4E64-96D6-D26F30B4EE29 | Detects a migration gather unit failure that caused the update to fail. This rule outputs the name of the gather unit/plug-in and the error code it produced for diagnostic purposes. | +| **FindMigGatherApplyFailure** | A9964E6C-A2A8-45FF-B6B5-25E0BD71428E | Shows errors when the migration Engine fails out on a gather or apply operation. Indicates the Migration Object (file or registry path), the Migration | +| **OptionalComponentFailedToGetOCsFromPackage** | D012E2A2-99D8-4A8C-BBB2-088B92083D78 | This rule matches a specific Optional Component failure when attempting to enumerate components in a package. Indicates the optional component (OC) migration operation failed to enumerate optional components from an OC Package. It outputs the package name and error code. This rule replaces the OptionalComponentInstallFailure rule present. | +| **OptionalComponentOpenPackageFailed** | 22952520-EC89-4FBD-94E0-B67DF88347F6 | Matches a specific Optional Component failure when attempting to open an OC package. It outputs the package name and error code. Indicates the optional component migration operation failed to open an optional component Package. Outputs the package name and error code. | +| **OptionalComponentInitCBSSessionFailed** | 63340812-9252-45F3-A0F2-B2A4CA5E9317 | Matches a specific failure where the advanced installer service or components aren't operating or started on the system. Indicates corruption in the servicing stack on the down-level system. Outputs the error code encountered while trying to initialize the servicing component on the existing OS. | +| **CriticalSafeOSDUFailure** | 73566DF2-CA26-4073-B34C-C9BC70DBF043 | This rule indicates a failure occurred while updating the SafeOS image with a critical dynamic update. It indicates the phase and error code that occurred while attempting to update the SafeOS image for diagnostic purposes. | +| **UserProfileCreationFailureDuringOnlineApply** | 678117CE-F6A9-40C5-BC9F-A22575C78B14 | Indicates there was a critical failure while creating or modifying a User Profile during the online apply phase of the update. It indicates the operation and error code associated with the failure for diagnostic purposes. | +| **UserProfileCreationFailureDuringFinalize** | C6677BA6-2E53-4A88-B528-336D15ED1A64 | Matches a specific User Profile creation error during the finalize phase of setup. It outputs the failure code. | | **UserProfileSuffixMismatch** | B4BBCCCE-F99D-43EB-9090-078213397FD8 | Detects when a file or other object causes the migration or creation of a user profile to fail during the update. | | **DuplicateUserProfileFailure** | BD7B3109-80F1-4421-8F0A-B34CD25F4B51 | This rule indicates a fatal error while migrating user profiles, usually with multiple SIDs associated with a single user profile. This error usually occurs when software creates local user accounts that aren't ever used or signed in with. The rule indicates the SID and UserName of the account that is causing the failure. To attempt to resolve the issue, first back up all the user's files for the affected user account. After the user's files are backed up, delete the account in a supported manner. Make sure that the account isn't one that is needed or is currently used to sign into the device. After deleting the account, reboot, and try the upgrade again. | -| **WimMountFailure** | BE6DF2F1-19A6-48C6-AEF8-D3B0CE3D4549 | This rule indicates the update failed to mount a WIM file. It shows the name of the WIM file and the error message and error code associated with the failure for diagnostic purposes. | +| **WimMountFailure** | BE6DF2F1-19A6-48C6-AEF8-D3B0CE3D4549 | This rule indicates the update failed to mount a WIM file. It shows the name of the WIM file and the error message and error code associated with the failure for diagnostic purposes. | | **WimMountDriverIssue** | 565B60DD-5403-4797-AE3E-BC5CB972FBAE | Detects failures in `WimMount.sys` registration on the system. | -| **WimApplyExtractFailure** | 746879E9-C9C5-488C-8D4B-0C811FF3A9A8 | Matches a WIM apply failure during WIM extraction phases of setup. It outputs the extension, path and error code. | -| **UpdateAgentExpanderFailure** | 66E496B3-7D19-47FA-B19B-4040B9FD17E2 | Matches DPX expander failures in the down-level phase of update from Windows Update. It outputs the package name, function, expression and error code. | -| **FindFatalPluginFailure** | E48E3F1C-26F6-4AFB-859B-BF637DA49636 | Matches any plug-in failure that setupplatform decides is fatal to setup. It outputs the plugin name, operation and error code. | -| **MigrationAbortedDueToPluginFailure** | D07A24F6-5B25-474E-B516-A730085940C9 | Indicates a critical failure in a migration plugin that causes setup to abort the migration. Provides the setup operation, plug-in name, plug-in action and error code. | -| **DISMAddPackageFailed** | 6196FF5B-E69E-4117-9EC6-9C1EAB20A3B9 | Indicates a critical failure during a DISM add package operation. Specifies the Package Name, DISM error and add package error code. | +| **WimApplyExtractFailure** | 746879E9-C9C5-488C-8D4B-0C811FF3A9A8 | Matches a WIM apply failure during WIM extraction phases of setup. It outputs the extension, path, and error code. | +| **UpdateAgentExpanderFailure** | 66E496B3-7D19-47FA-B19B-4040B9FD17E2 | Matches DPX expander failures in the down-level phase of update from Windows Update. It outputs the package name, function, expression, and error code. | +| **FindFatalPluginFailure** | E48E3F1C-26F6-4AFB-859B-BF637DA49636 | Matches any plug-in failure that setupplatform decides is fatal to setup. It outputs the plugin name, operation, and error code. | +| **MigrationAbortedDueToPluginFailure** | D07A24F6-5B25-474E-B516-A730085940C9 | Indicates a critical failure in a migration plugin that causes setup to abort the migration. Provides the setup operation, plug-in name, plug-in action and error code. | +| **DISMAddPackageFailed** | 6196FF5B-E69E-4117-9EC6-9C1EAB20A3B9 | Indicates a critical failure during a DISM add package operation. Specifies the Package Name, DISM error and add package error code. | | **DISMImageSessionFailure** | 61B7886B-10CD-4C98-A299-B987CB24A11C | Captures failure information when DISM fails to start an image session successfully. | -| **DISMproviderFailure** | D76EF86F-B3F8-433F-9EBF-B4411F8141F4 | Triggers when a DISM provider (plug-in) fails in a critical operation. Outputs the file (plug-in name), function called + error code, and error message from the provider. | -| **SysPrepLaunchModuleFailure** | 7905655C-F295-45F7-8873-81D6F9149BFD | Indicates a sysPrep plug-in failed in a critical operation. Indicates the plug-in name, operation name and error code. | -| **UserProvidedDriverInjectionFailure** | 2247C48A-7EE3-4037-AFAB-95B92DE1D980 | A driver provided to setup (via command line input) failed in some way. Outputs the driver install function and error code. | +| **DISMproviderFailure** | D76EF86F-B3F8-433F-9EBF-B4411F8141F4 | Triggers when a DISM provider (plug-in) fails in a critical operation. Outputs the file (plug-in name), function called + error code, and error message from the provider. | +| **SysPrepLaunchModuleFailure** | 7905655C-F295-45F7-8873-81D6F9149BFD | Indicates a sysPrep plug-in failed in a critical operation. Indicates the plug-in name, operation name, and error code. | +| **UserProvidedDriverInjectionFailure** | 2247C48A-7EE3-4037-AFAB-95B92DE1D980 | A driver provided to setup (via command line input) failed in some way. Outputs the driver install function and error code. | | **DriverMigrationFailure** | 9378D9E2-256E-448C-B02F-137F611F5CE3 | This rule indicates a fatal failure when migrating drivers. | -| **UnknownDriverMigrationFailure** | D7541B80-5071-42CE-AD14-FBE8C0C4F7FD | This rule indicates a bad driver package resides on the system. The driver package causes the upgrade to fail when the driver package is attempted to migrate to the new OS. The rule usually indicates the driver package name that caused the issue. The remediation is to remove the bad driver package, reboot, and try the upgrade again. If an update to this driver is available from the OEM, updating the driver package is recommended. | +| **UnknownDriverMigrationFailure** | D7541B80-5071-42CE-AD14-FBE8C0C4F7FD | This rule indicates a bad driver package resides on the system. The driver package causes the upgrade to fail when the driver package is attempted to migrate to the new OS. The rule usually indicates the driver package name that caused the issue. The remediation is to remove the bad driver package, reboot, and try the upgrade again. If an update to this driver is available from the OEM, updating the driver package is recommended. | | | | | **FindSuccessfulUpgrade** | 8A0824C8-A56D-4C55-95A0-22751AB62F3E | Determines if the given setup was a success or not based off the logs. | | **FindSetupHostReportedFailure** | 6253C04F-2E4E-4F7A-B88E-95A69702F7EC | Gives information about failures surfaced early in the upgrade process by `setuphost.exe` | @@ -343,8 +330,8 @@ Each rule name and its associated unique rule identifier are listed with a descr | **FindAbruptDownlevelFailure** | 55882B1A-DA3E-408A-9076-23B22A0472BD | Gives last operation failure information when the system fails in the down-level, but the log just ends abruptly. | | **FindEarlyDownlevelError** | A4CE4FC9-5E10-4BB1-8ECE-3B29EB9D7C52 | Detects failures in down-level phase before setup platform is invoked. | | **FindSPFatalError** | A4028172-1B09-48F8-AD3B-86CDD7D55852 | Captures failure information when setup platform encounters a fatal error. | -| **FindSetupPlatformFailedOperationInfo** | 307A0133-F06B-4B75-AEA8-116C3B53C2D1 | Gives last phase and error information when SetupPlatform indicates a critical failure. This rule indicates the operation and error associated with the failure for diagnostic purposes. | -| **FindRollbackFailure** | 3A43C9B5-05B3-4F7C-A955-88F991BB5A48 | Gives last operation, failure phase and error information when a rollback occurs. | +| **FindSetupPlatformFailedOperationInfo** | 307A0133-F06B-4B75-AEA8-116C3B53C2D1 | Gives last phase and error information when SetupPlatform indicates a critical failure. This rule indicates the operation and error associated with the failure for diagnostic purposes. | +| **FindRollbackFailure** | 3A43C9B5-05B3-4F7C-A955-88F991BB5A48 | Gives last operation, failure phase, and error information when a rollback occurs. | ## Sample logs @@ -374,7 +361,7 @@ System Information: ReportId = dd4db176-4e3f-4451-aef6-22cf46de8bde Error: SetupDiag reports Optional Component installation failed to open OC Package. Package Name: Foundation, Error: 0x8007001F -Recommend you check the "Windows Modules Installer" service (Trusted Installer) is started on the system and set to automatic start, reboot and try the update again. Optionally, you can check the status of optional components on the system (search for Windows Features), uninstall any unneeded optional components, reboot and try the update again. +Recommend you check the "Windows Modules Installer" service (Trusted Installer) is started on the system and set to automatic start, reboot and try the update again. Optionally, you can check the status of optional components on the system (search for Windows Features), uninstall any unneeded optional components, reboot and try the update again. Error: SetupDiag reports down-level failure, Operation: Finalize, Error: 0x8007001F - 0x50015 Refer to https://learn.microsoft.com/windows/deployment/upgrade/upgrade-error-codes for error information. ``` From f50a0a428a4948cb90e912bfb83bc28e67e76d22 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:05:13 -0400 Subject: [PATCH 18/35] Refresh SetupDiag article 2 --- windows/deployment/upgrade/setupdiag.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index d22472f155..e8f4973df6 100644 --- a/windows/deployment/upgrade/setupdiag.md +++ b/windows/deployment/upgrade/setupdiag.md @@ -24,14 +24,16 @@ 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 shortcut: +> +> [!div class="nextstepaction"] +> [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. From 132940c0ac321bd8921c4cb1ec8909d35ca682e4 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:20:01 -0400 Subject: [PATCH 19/35] Refresh SetupDiag article 3 --- windows/deployment/upgrade/setupdiag.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index e8f4973df6..2be337ca14 100644 --- a/windows/deployment/upgrade/setupdiag.md +++ b/windows/deployment/upgrade/setupdiag.md @@ -28,9 +28,8 @@ appliesto: > [!IMPORTANT] > -> When SetupDiag is run manually, Microsoft recommends running the latest version of SetupDiag. The latest version is available via the following shortcut: +> When SetupDiag is run manually, Microsoft recommends running the latest version of SetupDiag. The latest version is available via the following link: > -> [!div class="nextstepaction"] > [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. From 022d16240d3e7274d41a67da517c893ce0dcc493 Mon Sep 17 00:00:00 2001 From: Carmen Forsmann Date: Tue, 8 Apr 2025 09:24:37 -0600 Subject: [PATCH 20/35] Re-enable Edge content in table --- windows/deployment/do/waas-delivery-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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: | | | From 80d7f9a21a84f53ce7dd653c2265933da9dad626 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:44:42 -0400 Subject: [PATCH 21/35] Refresh SetupDiag article 4 --- windows/deployment/upgrade/setupdiag.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index 2be337ca14..3bd0dc54ac 100644 --- a/windows/deployment/upgrade/setupdiag.md +++ b/windows/deployment/upgrade/setupdiag.md @@ -94,7 +94,7 @@ To use 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, 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. Once SetupDiag finishes downloading, open an elevated command prompt and navigate to the director where `setupdiag.exe` was saved to. +1. Once SetupDiag finishes downloading, open an elevated command prompt and navigate to the director where `setupdiag.exe` was downloaded and saved to. 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. From 8f0216bdf09985405a28099a4ad7b342ebff329d Mon Sep 17 00:00:00 2001 From: Ruchika Mittal Date: Tue, 8 Apr 2025 21:32:23 +0530 Subject: [PATCH 22/35] pencil edit --- windows/deployment/upgrade/setupdiag.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/upgrade/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index 3bd0dc54ac..c945c7d666 100644 --- a/windows/deployment/upgrade/setupdiag.md +++ b/windows/deployment/upgrade/setupdiag.md @@ -94,7 +94,7 @@ To use 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, 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. Once SetupDiag finishes downloading, open an elevated command prompt and navigate to the director where `setupdiag.exe` was downloaded and saved to. +1. Once SetupDiag finishes downloading, open an elevated command prompt and navigate to the directory where `setupdiag.exe` was downloaded and saved to. 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. @@ -163,7 +163,7 @@ To use SetupDiag: SetupDiag.exe /Output:C:\SetupDiag\Results.log /LogsPath:D:\Temp\Logs\LogSet1 ``` -- The following example is an example of Reset/Recovery Offline Mode. SetupDiag is instructed to look for reset/recovery logs in the specified LogsPath location. It then outputs the results to the directory specified by the **/Output** parameter. +- The following is an example of Reset/Recovery Offline Mode. SetupDiag is instructed to look for reset/recovery logs in the specified LogsPath location. It then outputs the results to the directory specified by the **/Output** parameter. ```cmd SetupDiag.exe /Output:C:\SetupDiag\RecoveryResults.log /LogsPath:D:\Temp\Cabs\PBR_Log /Scenario:Recovery From 342135a4b88960aa68d9bca8e80935bf908d318e Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 13:43:25 -0400 Subject: [PATCH 23/35] Update various Windows Upgrade articles --- windows/deployment/upgrade/log-files.md | 514 +++++++++--------- windows/deployment/upgrade/setupdiag.md | 18 +- windows/deployment/upgrade/submit-errors.md | 12 +- .../upgrade/windows-error-reporting.md | 28 +- ...ws-upgrade-and-migration-considerations.md | 7 +- 5 files changed, 290 insertions(+), 289 deletions(-) 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/setupdiag.md b/windows/deployment/upgrade/setupdiag.md index c945c7d666..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: 04/08/2024 +ms.date: 04/08/2025 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -264,7 +264,7 @@ Logs ZipFile created at: c:\setupdiag\Logs_14.zip When SetupDiag searches log files, it uses a set of rules to match known issues. These rules are contained in an xml file. The xml file might be updated with new and updated rules as new versions of SetupDiag are made available. -Each rule name and its associated unique rule identifier are listed with a description of the known upgrade-blocking issue. In the rule descriptions, the term **down-level** refers to the first phase of the upgrade process, which runs under the original OS. +Each rule name and its associated unique rule identifier are listed with a description of the known upgrade-blocking issue. In the rule descriptions, the term **downlevel** refers to the first phase of the upgrade process, which runs under the original OS. | Rule Name | GUID | Description | | --- | --- | @@ -285,7 +285,7 @@ Each rule name and its associated unique rule identifier are listed with a descr | **HardblockDeviceOrDriver** | ED3AEFA1-F3E2-4F33-8A21-184ADF215B1B | This error indicates a device driver that is loaded on the host OS isn't compatible with the newer OS version. The device driver needs to be removed before the upgrade. | | **HardblockMismatchedLanguage** | 60BA8449-CF23-4D92-A108-D6FCEFB95B45 | This rule indicates the host OS and the target OS language editions don't match. | | **HardblockFlightSigning** | 598F2802-3E7F-4697-BD18-7A6371C8B2F8 | This rule indicates the target OS is a pre-release, Windows Insider build, and the target machine has Secure Boot enabled. This rule blocks the pre-release signed build from booting if installed on the machine. | -| **DiskSpaceBlockInDownLevel** | 6080AFAC-892E-4903-94EA-7A17E69E549E | This failure indicates the system ran out of disk space during the down-level operations of upgrade. | +| **DiskSpaceBlockInDownLevel** | 6080AFAC-892E-4903-94EA-7A17E69E549E | This failure indicates the system ran out of disk space during the downlevel operations of upgrade. | | **DiskSpaceFailure** | 981DCBA5-B8D0-4BA7-A8AB-4030F7A10191 | This failure indicates the system drive ran out of available disk space at some point after the first reboot into the upgrade. | | **PreReleaseWimMountDriverFound** | 31EC76CC-27EC-4ADC-9869-66AABEDB56F0 | Captures failures due to having an unrecognized `wimmount.sys` driver registered on the system. | | **DebugSetupMemoryDump** | C7C63D8A-C5F6-4255-8031-74597773C3C6 | This offline only rule indicates a bug check occurred during setup. If the debugger tools are available on the system, SetupDiag debugs the memory dump and provide details. | @@ -305,7 +305,7 @@ Each rule name and its associated unique rule identifier are listed with a descr | **FindMigGatherApplyFailure** | A9964E6C-A2A8-45FF-B6B5-25E0BD71428E | Shows errors when the migration Engine fails out on a gather or apply operation. Indicates the Migration Object (file or registry path), the Migration | | **OptionalComponentFailedToGetOCsFromPackage** | D012E2A2-99D8-4A8C-BBB2-088B92083D78 | This rule matches a specific Optional Component failure when attempting to enumerate components in a package. Indicates the optional component (OC) migration operation failed to enumerate optional components from an OC Package. It outputs the package name and error code. This rule replaces the OptionalComponentInstallFailure rule present. | | **OptionalComponentOpenPackageFailed** | 22952520-EC89-4FBD-94E0-B67DF88347F6 | Matches a specific Optional Component failure when attempting to open an OC package. It outputs the package name and error code. Indicates the optional component migration operation failed to open an optional component Package. Outputs the package name and error code. | -| **OptionalComponentInitCBSSessionFailed** | 63340812-9252-45F3-A0F2-B2A4CA5E9317 | Matches a specific failure where the advanced installer service or components aren't operating or started on the system. Indicates corruption in the servicing stack on the down-level system. Outputs the error code encountered while trying to initialize the servicing component on the existing OS. | +| **OptionalComponentInitCBSSessionFailed** | 63340812-9252-45F3-A0F2-B2A4CA5E9317 | Matches a specific failure where the advanced installer service or components aren't operating or started on the system. Indicates corruption in the servicing stack on the downlevel system. Outputs the error code encountered while trying to initialize the servicing component on the existing OS. | | **CriticalSafeOSDUFailure** | 73566DF2-CA26-4073-B34C-C9BC70DBF043 | This rule indicates a failure occurred while updating the SafeOS image with a critical dynamic update. It indicates the phase and error code that occurred while attempting to update the SafeOS image for diagnostic purposes. | | **UserProfileCreationFailureDuringOnlineApply** | 678117CE-F6A9-40C5-BC9F-A22575C78B14 | Indicates there was a critical failure while creating or modifying a User Profile during the online apply phase of the update. It indicates the operation and error code associated with the failure for diagnostic purposes. | | **UserProfileCreationFailureDuringFinalize** | C6677BA6-2E53-4A88-B528-336D15ED1A64 | Matches a specific User Profile creation error during the finalize phase of setup. It outputs the failure code. | @@ -314,7 +314,7 @@ Each rule name and its associated unique rule identifier are listed with a descr | **WimMountFailure** | BE6DF2F1-19A6-48C6-AEF8-D3B0CE3D4549 | This rule indicates the update failed to mount a WIM file. It shows the name of the WIM file and the error message and error code associated with the failure for diagnostic purposes. | | **WimMountDriverIssue** | 565B60DD-5403-4797-AE3E-BC5CB972FBAE | Detects failures in `WimMount.sys` registration on the system. | | **WimApplyExtractFailure** | 746879E9-C9C5-488C-8D4B-0C811FF3A9A8 | Matches a WIM apply failure during WIM extraction phases of setup. It outputs the extension, path, and error code. | -| **UpdateAgentExpanderFailure** | 66E496B3-7D19-47FA-B19B-4040B9FD17E2 | Matches DPX expander failures in the down-level phase of update from Windows Update. It outputs the package name, function, expression, and error code. | +| **UpdateAgentExpanderFailure** | 66E496B3-7D19-47FA-B19B-4040B9FD17E2 | Matches DPX expander failures in the downlevel phase of update from Windows Update. It outputs the package name, function, expression, and error code. | | **FindFatalPluginFailure** | E48E3F1C-26F6-4AFB-859B-BF637DA49636 | Matches any plug-in failure that setupplatform decides is fatal to setup. It outputs the plugin name, operation, and error code. | | **MigrationAbortedDueToPluginFailure** | D07A24F6-5B25-474E-B516-A730085940C9 | Indicates a critical failure in a migration plugin that causes setup to abort the migration. Provides the setup operation, plug-in name, plug-in action and error code. | | **DISMAddPackageFailed** | 6196FF5B-E69E-4117-9EC6-9C1EAB20A3B9 | Indicates a critical failure during a DISM add package operation. Specifies the Package Name, DISM error and add package error code. | @@ -327,9 +327,9 @@ Each rule name and its associated unique rule identifier are listed with a descr | | | | **FindSuccessfulUpgrade** | 8A0824C8-A56D-4C55-95A0-22751AB62F3E | Determines if the given setup was a success or not based off the logs. | | **FindSetupHostReportedFailure** | 6253C04F-2E4E-4F7A-B88E-95A69702F7EC | Gives information about failures surfaced early in the upgrade process by `setuphost.exe` | -| **FindDownlevelFailure** | 716334B7-F46A-4BAA-94F2-3E31BC9EFA55 | Gives failure information surfaced by SetupPlatform, later in the down-level phase. | -| **FindAbruptDownlevelFailure** | 55882B1A-DA3E-408A-9076-23B22A0472BD | Gives last operation failure information when the system fails in the down-level, but the log just ends abruptly. | -| **FindEarlyDownlevelError** | A4CE4FC9-5E10-4BB1-8ECE-3B29EB9D7C52 | Detects failures in down-level phase before setup platform is invoked. | +| **FindDownlevelFailure** | 716334B7-F46A-4BAA-94F2-3E31BC9EFA55 | Gives failure information surfaced by SetupPlatform, later in the downlevel phase. | +| **FindAbruptDownlevelFailure** | 55882B1A-DA3E-408A-9076-23B22A0472BD | Gives last operation failure information when the system fails in the downlevel, but the log just ends abruptly. | +| **FindEarlyDownlevelError** | A4CE4FC9-5E10-4BB1-8ECE-3B29EB9D7C52 | Detects failures in downlevel phase before setup platform is invoked. | | **FindSPFatalError** | A4028172-1B09-48F8-AD3B-86CDD7D55852 | Captures failure information when setup platform encounters a fatal error. | | **FindSetupPlatformFailedOperationInfo** | 307A0133-F06B-4B75-AEA8-116C3B53C2D1 | Gives last phase and error information when SetupPlatform indicates a critical failure. This rule indicates the operation and error associated with the failure for diagnostic purposes. | | **FindRollbackFailure** | 3A43C9B5-05B3-4F7C-A955-88F991BB5A48 | Gives last operation, failure phase, and error information when a rollback occurs. | @@ -363,7 +363,7 @@ System Information: Error: SetupDiag reports Optional Component installation failed to open OC Package. Package Name: Foundation, Error: 0x8007001F Recommend you check the "Windows Modules Installer" service (Trusted Installer) is started on the system and set to automatic start, reboot and try the update again. Optionally, you can check the status of optional components on the system (search for Windows Features), uninstall any unneeded optional components, reboot and try the update again. -Error: SetupDiag reports down-level failure, Operation: Finalize, Error: 0x8007001F - 0x50015 +Error: SetupDiag reports downlevel failure, Operation: Finalize, Error: 0x8007001F - 0x50015 Refer to https://learn.microsoft.com/windows/deployment/upgrade/upgrade-error-codes for error information. ``` diff --git a/windows/deployment/upgrade/submit-errors.md b/windows/deployment/upgrade/submit-errors.md index fd90fdc246..f1fc97e892 100644 --- a/windows/deployment/upgrade/submit-errors.md +++ b/windows/deployment/upgrade/submit-errors.md @@ -2,13 +2,13 @@ title: Submit Windows upgrade errors using Feedback Hub manager: aaroncz ms.author: frankroj -description: Download the Feedback Hub app, and then submit Windows upgrade errors for diagnosis using feedback hub. +description: Download the Feedback Hub app, and then submit Windows upgrade errors for diagnosis using Feedback Hub. ms.service: windows-client author: frankroj ms.localizationpriority: medium ms.topic: troubleshooting-general ms.subservice: itpro-deploy -ms.date: 01/29/2025 +ms.date: 04/08/2025 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -28,17 +28,17 @@ This article describes how to submit problems with a Windows upgrade to Microsof The Feedback Hub app allows reporting to Microsoft of any problems encountered while using Windows. It also allows sending suggestions to Microsoft on how to improve the Windows experience. Previously, the Feedback Hub could only be used through the Windows Insider Program. Now anyone can use this tool. The Feedback Hub app can be downloaded from the [Microsoft Store](https://www.microsoft.com/store/p/feedback-hub/9nblggh4r32n?SilentAuth=1&wa=wsignin1.0). -The Feedback Hub requires a currently supported version of Windows. The Feedback Hub can be used to submit information to Microsoft if problems are encountered while upgrading Windows. If upgrading to a currently supported version of Windows from a previous version that's Windows 10 or newer, the Feedback Hub automatically collects log files. For operating systems prior to Windows 10 that don't support the Feedback Hub, the log files must be manually collected. The log files can then be attached to the feedback item using a device that is running a currently supported version of Windows that supports the Feedback Hub. +The Feedback Hub requires a [currently supported version of Windows](/windows/release-health/supported-versions-windows-client). The Feedback Hub can be used to submit information to Microsoft if problems are encountered while upgrading Windows. If upgrading between [currently supported version of Windows](/windows/release-health/supported-versions-windows-client), the Feedback Hub automatically collects log files. For out of support operating systems before Windows 10 that don't support the Feedback Hub, the log files must be manually collected. The log files can then be attached to the feedback item using a device that is running a [currently supported version of Windows](/windows/release-health/supported-versions-windows-client) that supports the Feedback Hub. ## Submit feedback To submit feedback about a failed Windows upgrade, open the [Feedback Hub](feedback-hub://?referrer=resolveUpgradeErrorsPage&tabid=2&contextid=81&newFeedback=true&feedbackType=2&topic=submit-errors.md). -In the Feedback Hub, fill out all four sections with as much detail as possible: +In the Feedback Hub, fill out all of the sections with as much detail as possible: 1. **Enter your feedback** 1. **Choose a category** -1. **Find similar feedback** +1. **Find similar feedback** - this section doesn't have anything to fill out, but it is important to check for similar feedback items. If a similar feedback item is found, select it and then select the **Next** button. This allows Microsoft to see how many people are affected by the same issue. 1. **Add more details** Recommended information that can be included under the **Add more details** section include: @@ -71,5 +71,3 @@ After the feedback is submitted, additional information and items can be added t 1. Copy and then use the short link that is displayed. :::image type="content" alt-text="Share example." source="../images/share.jpg"::: - -## Related articles diff --git a/windows/deployment/upgrade/windows-error-reporting.md b/windows/deployment/upgrade/windows-error-reporting.md index 958dbd15ef..d78577edfb 100644 --- a/windows/deployment/upgrade/windows-error-reporting.md +++ b/windows/deployment/upgrade/windows-error-reporting.md @@ -8,7 +8,7 @@ author: frankroj ms.localizationpriority: medium ms.topic: article ms.subservice: itpro-deploy -ms.date: 01/29/2025 +ms.date: 04/08/2025 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -22,7 +22,7 @@ appliesto: > > See [Resolve Windows upgrade errors](resolve-windows-upgrade-errors.md) for a full list of articles in this section. -When Windows Setup fails, the result and extend code are recorded as an informational event in the Application log by Windows Error Reporting as event 1001. The event name is **WinSetupDiag02**. Event Viewer or Windows PowerShell can be used to review this event. +When Windows Setup fails, 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) and [extend code](/troubleshoot/windows-client/deployment/windows-10-upgrade-error-codes?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json#extend-codes) are recorded as an informational event in the Application log by Windows Error Reporting as event 1001. The event name is **WinSetupDiag02**. Event Viewer or Windows PowerShell can be used to review this event. To use Windows PowerShell, type the following commands from an elevated Windows PowerShell prompt: @@ -48,18 +48,18 @@ To use Event Viewer: Ten parameters are listed in the event: -| Parameters | -| ------------- | -| P1: The Setup Scenario (1=Media,5=WindowsUpdate,7=Media Creation Tool) | -| P2: Setup Mode (x=default,1=Downlevel,5=Rollback) | -| P3: New OS Architecture (x=default,0=X86,9=AMD64) | -| P4: Install Result (x=default,0=Success,1=Failure,2=Cancel,3=Blocked) | -| **P5: Result Error Code** (Ex: 0xc1900101) | -| **P6: Extend Error Code** (Ex: 0x20017) | -| P7: Source OS build (Ex: 9600) | -| P8: Source OS branch (not typically available) | -| P9: New OS build (Ex: 16299) | -| P10: New OS branch (Ex: rs3_release) | +| Parameters | Description| Example | +| ------------- | --- | --- | +| P1 | The Setup Scenario | 1=Media, 5=WindowsUpdate, 7=Media Creation Tool | +| P2 | Setup Mode | x=default, 1=Downlevel, 5=Rollback | +| P3 | New OS Architecture | x=default, 0=X86, 9=AMD64 | +| P4 | Install Result | x=default, 0=Success, 1=Failure,2=Cancel, 3=Blocked | +| **P5** | Result Error Code | 0xc1900101 | +| **P6** | Extend Error Code | 0x20017 | +| P7 | Source OS build | 9600 | +| P8 | Source OS branch | Not typically available | +| P9 | New OS build | 16299 | +| P10 | New OS branch | rs3_release) | The event also contains links to log files that can be used to perform a detailed diagnosis of the error. The following example is an example of this event from a successful upgrade: diff --git a/windows/deployment/upgrade/windows-upgrade-and-migration-considerations.md b/windows/deployment/upgrade/windows-upgrade-and-migration-considerations.md index ca0f26473f..e1d51e9ebd 100644 --- a/windows/deployment/upgrade/windows-upgrade-and-migration-considerations.md +++ b/windows/deployment/upgrade/windows-upgrade-and-migration-considerations.md @@ -7,7 +7,10 @@ ms.service: windows-client author: frankroj ms.topic: upgrade-and-migration-article ms.subservice: itpro-deploy -ms.date: 08/30/2024 +ms.date: 04/08/2025 +appliesto: + - ✅ Windows 11 + - ✅ Windows 10 --- # Windows upgrade and migration considerations @@ -61,7 +64,7 @@ If a single-language Windows image that matches the system default UI language o ### Errorhandler.cmd -If using **Errorhandler.cmd** when upgrading from an earlier version of Windows, copy **Errorhandler.cmd** into the `%WINDIR%\Setup\Scripts` directory on the original installation of Windows. Copying **Errorhandler.cmd** into the `%WINDIR%\Setup\Scripts` directory on the original installation of Windows makes sure that if there are errors during the down-level phase of Windows Setup, the commands in **Errorhandler.cmd** run. For more information, see [Run a script if Windows Setup encounters a fatal error (ErrorHandler.cmd)](/windows-hardware/manufacture/desktop/add-a-custom-script-to-windows-setup#run-a-script-if-windowssetup-encounters-a-fatal-error-errorhandlercmd). +If using **Errorhandler.cmd** when upgrading from an earlier version of Windows, copy **Errorhandler.cmd** into the `%WINDIR%\Setup\Scripts` directory on the original installation of Windows. Copying **Errorhandler.cmd** into the `%WINDIR%\Setup\Scripts` directory on the original installation of Windows makes sure that if there are errors during the downlevel phase of Windows Setup, the commands in **Errorhandler.cmd** run. For more information, see [Run a script if Windows Setup encounters a fatal error (ErrorHandler.cmd)](/windows-hardware/manufacture/desktop/add-a-custom-script-to-windows-setup#run-a-script-if-windowssetup-encounters-a-fatal-error-errorhandlercmd). ## Related content From 8e6fde221700faed3a8295ea81b19abf54d35bf1 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 13:48:52 -0400 Subject: [PATCH 24/35] Update various Windows Upgrade articles 2 --- .../upgrade/resolve-windows-upgrade-errors.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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 From cbb15ff160d4c81a13c54d0a5723f57c2b56a668 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Tue, 8 Apr 2025 14:00:58 -0400 Subject: [PATCH 25/35] Update various Windows Upgrade articles 3 --- windows/deployment/upgrade/windows-error-reporting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/upgrade/windows-error-reporting.md b/windows/deployment/upgrade/windows-error-reporting.md index d78577edfb..d2da8a5c3d 100644 --- a/windows/deployment/upgrade/windows-error-reporting.md +++ b/windows/deployment/upgrade/windows-error-reporting.md @@ -59,7 +59,7 @@ Ten parameters are listed in the event: | P7 | Source OS build | 9600 | | P8 | Source OS branch | Not typically available | | P9 | New OS build | 16299 | -| P10 | New OS branch | rs3_release) | +| P10 | New OS branch | rs3_release | The event also contains links to log files that can be used to perform a detailed diagnosis of the error. The following example is an example of this event from a successful upgrade: From 972f6b60b35e22ed2c88cc21096001e72031652f Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 8 Apr 2025 13:41:56 -0700 Subject: [PATCH 26/35] edits --- windows/whats-new/deprecated-features-resources.md | 7 ++++--- windows/whats-new/deprecated-features.md | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/windows/whats-new/deprecated-features-resources.md b/windows/whats-new/deprecated-features-resources.md index 7aa2acecc7..299258715a 100644 --- a/windows/whats-new/deprecated-features-resources.md +++ b/windows/whats-new/deprecated-features-resources.md @@ -1,7 +1,7 @@ --- title: Resources for deprecated features in the Windows client description: Resources and details for deprecated features in the Windows client. -ms.date: 08/14/2024 +ms.date: 04/08/2025 ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium @@ -23,11 +23,12 @@ This article provides additional resources about [deprecated features for Window ## Windows UWP Map control and Windows Maps platform APIs -In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement before **[PLAT Date TBD]** rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: +In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). TThis means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement within one year of this deprecation notice rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: - [Migrate from Bing Maps to Azure Maps](/azure/azure-maps/migrate-bing-maps-overview) - [Use the Azure Maps map control](/azure/azure-maps/how-to-use-map-control) - [Azure Maps code samples](https://samples.azuremaps.com/) - +- [Bing Maps Blog](https://blogs.bing.com/maps) +- [Azure Maps Blog](https://techcommunity.microsoft.com/category/azure/blog/azuremapsblog) ## Paint 3D diff --git a/windows/whats-new/deprecated-features.md b/windows/whats-new/deprecated-features.md index 407195c666..227c3532f5 100644 --- a/windows/whats-new/deprecated-features.md +++ b/windows/whats-new/deprecated-features.md @@ -1,7 +1,7 @@ --- title: Deprecated features in the Windows client description: Review the list of features that Microsoft is no longer actively developing in Windows 10 and Windows 11. -ms.date: 02/19/2025 +ms.date: 04/08/2025 ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium @@ -47,7 +47,7 @@ The features in this article are no longer being actively developed, and might b | Feature | Details and mitigation | Deprecation announced | |---|---|---| -| Windows UWP Map control and Windows Maps platform APIs | [Windows UWP Map control](/uwp/api/windows.ui.xaml.controls.maps) and [Windows Maps platform APIs](/uwp/api/windows.services.maps) are deprecated. Once the Maps app for Windows is removed on **[APP Date TBD]**, the UWP Bing Maps platform support within Windows will also be removed on **[PLAT Date TBD]**. Once the UWP Bing Maps platform support is removed, it won't be available to your UWP apps that use the Map control. For more information, see [Resources for deprecated features](deprecated-features-resources.md#windows-uwp-map-control-and-windows-maps-platform-apis). | April 2025 | +| Windows UWP Map control and Windows Maps platform APIs | The [Windows UWP Map control](/uwp/api/windows.ui.xaml.controls.maps) and [Windows Maps platform APIs](/uwp/api/windows.services.maps) within Windows have been deprecated as of April 8, 2025. The Maps UWP Control and Maps platform support within Windows will continue to function but will not be updated. For more information, see [Resources for deprecated features](deprecated-features-resources.md#windows-uwp-map-control-and-windows-maps-platform-apis). | April 8, 2025 | | Line printer daemon (LPR/LPD) | Deprecation reminder: [The line printer daemon protocol (LPR/LPD) was deprecated](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831568(v=ws.11)#printing) starting in Windows Server 2012. As removal of the line printer daemon protocol nears, we'd like to remind customers to ensure their environments are prepared for removal. When these features are eventually removed, clients that print to a server using this protocol, such as UNIX clients, will not be able to connect or print. Instead, UNIX clients should use IPP. Windows clients can connect to UNIX shared printers using the [Windows Standard Port Monitor](/troubleshoot/windows-server/printing/standard-port-monitor-for-tcpip). | [Original announcement: Windows Server 2012](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831568(v=ws.11)#printing)

    Courtesy reminder: February 2025 | | Location History | We are deprecating and removing the Location History feature, an [API](/uwp/api/windows.devices.geolocation.geolocator.getgeopositionhistoryasync) that allowed Cortana to access 24 hours of device history when location was enabled. With the removal of the Location History feature, location data will no longer be saved locally and the corresponding settings will also be removed from the **Privacy & Security** > **Location** page in **Settings**. | February 2025 | | Suggested actions | Suggested actions that appear when you copy a phone number or future date in Windows 11 are deprecated and will be removed in a future Windows 11 update. | December 2024 | From dc081551db1769a0b2e33a319ba5d1efa2bcb0c3 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 8 Apr 2025 13:50:09 -0700 Subject: [PATCH 27/35] edits --- windows/whats-new/deprecated-features-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/whats-new/deprecated-features-resources.md b/windows/whats-new/deprecated-features-resources.md index 299258715a..25f3146597 100644 --- a/windows/whats-new/deprecated-features-resources.md +++ b/windows/whats-new/deprecated-features-resources.md @@ -23,7 +23,7 @@ This article provides additional resources about [deprecated features for Window ## Windows UWP Map control and Windows Maps platform APIs -In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). TThis means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement within one year of this deprecation notice rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: +In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement within one year of this deprecation notice rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: - [Migrate from Bing Maps to Azure Maps](/azure/azure-maps/migrate-bing-maps-overview) - [Use the Azure Maps map control](/azure/azure-maps/how-to-use-map-control) - [Azure Maps code samples](https://samples.azuremaps.com/) From 8e5ce4f53a94fb68a8855468d638a3c8210871ab Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 8 Apr 2025 14:28:58 -0700 Subject: [PATCH 28/35] edits --- windows/whats-new/deprecated-features-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/whats-new/deprecated-features-resources.md b/windows/whats-new/deprecated-features-resources.md index 25f3146597..e17e62955c 100644 --- a/windows/whats-new/deprecated-features-resources.md +++ b/windows/whats-new/deprecated-features-resources.md @@ -23,7 +23,7 @@ This article provides additional resources about [deprecated features for Window ## Windows UWP Map control and Windows Maps platform APIs -In May 2024, we announced the unification of [Bing Maps for Enterprise](https://www.microsoft.com/maps/bing-maps/discontinued-services) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement within one year of this deprecation notice rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: +In May 2024, we announced the unification of [Bing Maps for Enterprise](https://blogs.bing.com/maps/2024-05/Microsoft-Announces-Vision-for-Next-Generation-of-Enterprise-Maps) with [Azure Maps](https://azure.microsoft.com/products/azure-maps). This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. If your solution uses the Windows UWP Map control, look to move to an Azure Maps based replacement within one year of this deprecation notice rather than the end date for the entire Bing Maps for Enterprise platform. The following resources can help you with this transition: - [Migrate from Bing Maps to Azure Maps](/azure/azure-maps/migrate-bing-maps-overview) - [Use the Azure Maps map control](/azure/azure-maps/how-to-use-map-control) - [Azure Maps code samples](https://samples.azuremaps.com/) From d06477351cb21847a9cf8b1bc4a245553dcb1d82 Mon Sep 17 00:00:00 2001 From: chrisjlin <36452239+chrisjlin@users.noreply.github.com> Date: Wed, 9 Apr 2025 12:13:56 -0700 Subject: [PATCH 29/35] proxytlscertificatepath to lowercase in deploy to linux docs --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 8280d47b34..3da5012373 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 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. + >* 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. 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. From fa94ef90cbadd1b3a049c571f6345a6fe6ad4a2a Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:39:12 -0700 Subject: [PATCH 30/35] Update windows/deployment/do/mcc-ent-deploy-to-linux.md --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 3da5012373..99f58e510d 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 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. + >* 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. 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. From c761dffbcf05e4203c0be1419ce275ba8d6daa50 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:44:43 -0700 Subject: [PATCH 31/35] Update windows/deployment/do/mcc-ent-deploy-to-linux.md remove string, then will readd string in next commit --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 99f58e510d..4000b7ab93 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 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. + >* 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 `="/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. From d3e1687ddf8d9c9a9db1915d663cc5c709169c1e Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:45:31 -0700 Subject: [PATCH 32/35] Update windows/deployment/do/mcc-ent-deploy-to-linux.md readd --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 4000b7ab93..99f58e510d 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 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 `="/path/to/pem/file"` to the provisioning command. + >* 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. 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. From d1a45bc61fefb18a7e2bff692d9d3fb26ca0e58c Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:55:15 -0700 Subject: [PATCH 33/35] Fix note formatting in deployment guide --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 99f58e510d..94d3b8e1ca 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -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 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. From c528bc6ff72376ca9bdf9e1b2bd57e9fcf325a34 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:04:12 -0700 Subject: [PATCH 34/35] Update windows/deployment/do/mcc-ent-deploy-to-linux.md --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 94d3b8e1ca..6325dc4017 100644 --- a/windows/deployment/do/mcc-ent-deploy-to-linux.md +++ b/windows/deployment/do/mcc-ent-deploy-to-linux.md @@ -48,7 +48,7 @@ To deploy a cache node programmatically, you'll need to use Azure CLI to get the 1. Open a command line window *as administrator* on the host machine, then change directory to the extracted provisioning package. > [!Note] - >* If + >* 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. From 2d6732d8273931e99ceac835d82f10c031c4b9d0 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:14:24 -0700 Subject: [PATCH 35/35] Update proxy settings instructions in documentation --- windows/deployment/do/mcc-ent-deploy-to-linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/mcc-ent-deploy-to-linux.md b/windows/deployment/do/mcc-ent-deploy-to-linux.md index 6325dc4017..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.