With Windows 10 support ending October 14, 2025, organizations face a critical choice: upgrade to Windows 11 or purchase Extended Security Updates (ESU) to maintain protection for a limited time.
If you’re still planning your Windows 11 transition, check out our detailed breakdown of SCCM/Intune upgrade paths before diving into ESU activation.
This post will guide you through the installation of the Windows 10 Extended Security Update using Intune and SCCM.
Before deploying Windows 10 Extended Security Updates (ESU) keys via Intune or SCCM, ensure the following requirements are met:
activation.sls.microsoft.com
validation.sls.microsoft.com
Windows 10 devices accessing Windows 365 Cloud PCs, VMs hosted in Azure, or Windows 365 Cloud PC are automatically included in Windows 10 Extended Security updates.
See Microsoft Learn for more details about Prerequisites
The Windows 10 Extended Security Updates program provides critical security patches for up to three years beyond the official end of support date. It’s intended for systems that cannot be upgraded immediately due to hardware, software compatibility, or organizational constraints.
To change our Windows 10 licensing method, we’ll use a PowerShell script.
# Replace with your actual ESU product key
$ESU_MAK = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
$ESU_Year = 3 # Set to 1, 2, or 3
# ESU Activation IDs
$ActivationIDs = @{
1 = "f520e45e-7413-4a34-a497-d2765967d094"
2 = "1043add5-23b1-4afb-9a0f-64343c8f3f8d"
3 = "83d49986-add3-41d7-ba33-87c7bfb5c0fb"
}
$ActivationID = $ActivationIDs[$ESU_Year]
Write-Output "Installing ESU MAK key..."
cscript.exe /b %windir%\system32\slmgr.vbs /ipk $ESU_MAK
Write-Output "Activating ESU MAK key for Year $ESU_Year..."
cscript.exe /b %windir%\system32\slmgr.vbs /ato $ActivationID
For more details about PowerShell script in Intune, see Microsoft Learn.
In SCCM, there are multiple options. Package, Application, Task sequence, or even Configuration Baseline. For this post, we’ll cover a simple Package.
One simple way to do this is to check the update reporting status once we reach November for the monthly release of the Cumulative Update for Windows 10 22H2. This isn’t perfect, but it will help figure out which devices didn’t work.
It can be validated manually with this simple command line.
This simple script can be used as a Configuration baseline or Remediation script to evaluate whether the device is well-configured or not.
<#
.SYNOPSIS
Validates if Windows 10 ESU key is installed and licensed.
Returns exit code 0 if compliant, 1 if not.
#>
# Known ESU Activation IDs (Windows 10)
$ActivationIDs = @(
"f520e45e-7413-4a34-a497-d2765967d094", # Year 1
"1043add5-23b1-4afb-9a0f-64343c8f3f8d", # Year 2
"83d49986-add3-41d7-ba33-87c7bfb5c0fb" # Year 3
)
# Retrieve license details
$LicenseInfo = cscript.exe /nologo "$env:SystemRoot\system32\slmgr.vbs" /dlv 2>&1
# Check for Licensed status
$IsLicensed = $LicenseInfo | Select-String "License Status:.*Licensed"
# Check for ESU Activation ID
$HasESU = $LicenseInfo | Select-String ($ActivationIDs -join "|")
if ($IsLicensed -and $HasESU) {
# Compliant
exit 0
} else {
# Non-compliant
exit 1
}
Here are a few collection queries to track the activation status.
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client
from SMS_R_System
inner join SMS_G_System_SOFTWARE_LICENSING_PRODUCT on SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ResourceID = SMS_R_System.ResourceId
where SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ID = "f520e45e-7413-4a34-a497-d2765967d094"
AND SMS_G_System_SOFTWARE_LICENSING_PRODUCT.LicenseStatus = 1
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client
from SMS_R_System
inner join SMS_G_System_SOFTWARE_LICENSING_PRODUCT on SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ResourceID = SMS_R_System.ResourceId
where SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ID = "1043add5-23b1-4afb-9a0f-64343c8f3f8d"
AND SMS_G_System_SOFTWARE_LICENSING_PRODUCT.LicenseStatus = 1
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client
from SMS_R_System
inner join SMS_G_System_SOFTWARE_LICENSING_PRODUCT on SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ResourceID = SMS_R_System.ResourceId
where SMS_G_System_SOFTWARE_LICENSING_PRODUCT.ID = "83d49986-add3-41d7-ba33-87c7bfb5c0fb"
AND SMS_G_System_SOFTWARE_LICENSING_PRODUCT.LicenseStatus = 1
Note that the following Hardware inventory, Software Licensing Product, class is needed for these collections to work.
While not ideal to pay extra money to continue supporting Windows 10, this is still the best solution to stay secure until Windows 11 can be implemented in your environment.
Hope this helped!
Please fill out the form, and one of our representatives will contact you in Less Than 24 Hours. We are open from Monday to Friday.
Thank you for subscribing to our newsletter or requesting a quote. You will receive our next month's newsletter. If you have requested a quote, we will get in touch with you as soon as possible.
Something went wrong!
Thank for your reply!