为访问云和虚拟机的客户端启用Windows 10扩展安全性汇报 (ESU)

重要提示

查找使用者信息? 对于个人或Windows 10 家庭版客户,以下资源中提供了有关适用于Windows 10的扩展安全汇报的详细信息:

Windows 10扩展安全汇报 (ESU) 计划允许组织接收在付费订阅服务中注册的电脑的关键和重要安全更新。 ESU 将Windows 10设备的使用扩展到 2025 年 10 月 14 日终止支持日期之后。 本文介绍如何在商业环境中启用 ESU 密钥。

必备条件

若要为Windows 10启用 ESU,必须满足以下先决条件:

设备要求:

  • Windows 10、版本 22H2(安装了KB5066791或更高版本的更新)
  • 必须在KB5066791安装适用于Windows 10 KB5072653的扩展安全汇报 (ESU ) 许可准备包
  • 设备上的管理权限

Windows 10长期服务版本 (LTSB/LTSC) 有自己的生命周期,Windows 10 ESU 计划不涵盖这些版本。 有关详细信息,请参阅 Microsoft生命周期

Windows 10设备访问Windows 365云电脑所需的终结点

  • https://dls.microsoft.com
  • https://login.windows.net

云和虚拟化方案注意事项

某些云和虚拟化方案具有启用 ESU 的具体注意事项。 在某些情况下,已为你启用了 ESU,而在某些情况下,可能需要执行其他步骤。 以下列表总结了这些方案:

  • 以下Microsoft托管或Azure集成环境中的Windows 10虚拟机免费提供扩展安全汇报 (ESU) 。 以下环境中不需要其他配置或密钥:

  • 在 Azure (上运行的其他虚拟化平台(如 Azure VMware 解决方案) 上的 Nutanix、Citrix 或 Omnissa Horizon)可能需要手动激活 ESU 密钥。

    请联系Microsoft帐户团队以获取 5x5 密钥。 可以使用批量激活管理工具或脚本管理激活。

配置非持久性 VDI

在非持久性 VDI 配置中配置Windows 10 ESU 时,请务必遵循以下步骤,否则你将对Windows 10 ESU 密钥使用激活:

  1. 安装 Windows 10 版本 22H2。

  2. 使用安装和激活 ESU 密钥说明安装并激活Windows 10 ESU 密钥

  3. 安装最新更新并重启。

  4. 使用以下命令删除Windows 10 ESU 产品密钥,其中 <Activation ID> 是表中的激活 ID:

    ESU 计划 激活 ID
    Win10 ESU Year1 f520e45e-7413-4a34-a497-d2765967d094
    Win10 ESU Year2 1043add5-23b1-4afb-9a0f-64343c8f3f8d
    Win10 ESU Year3 83d49986-add3-41d7-ba33-87c7bfb5c0fb
    cscript.exe %windir%\system32\slmgr.vbs /upk <Activation ID>
    
  5. 运行 sysprep 以准备 VDI 映像以供复制。

  6. 创建黄金映像。

遵循相同的步骤,在发布新更新时更新用于 VDI 设备部署的黄金映像。

访问Windows 365的本地设备的扩展安全更新

如果用户分配有活动Windows 365 企业版许可证,则Windows 10在专用模式下访问Windows 365企业云电脑和Windows 365一线云电脑的设备在 ESU 产品/服务期间自动获得 Windows 365 ESU 权限在满足以下条件的情况下,预配了专用模式下的一线云电脑:

  • 本地Windows 10设备已加入Microsoft Entra或Microsoft Entra混合联接。
    • 仅Microsoft Entra注册或本地 Active Directory加入的设备不符合使用 Windows 365 进行商业 ESU 访问的条件。 Windows 自动修补注册不是必需的。
    • 非组织管理且仅Microsoft Entra注册的个人或 BYOD 设备不符合此权利的条件。 应通过 使用者 ESU 计划注册这些设备。 符合条件的用户最多可以激活 10 台设备。
  • 用户必须至少每 22 天使用一次用于Windows 365云电脑的 Microsoft Entra ID 帐户登录到其物理Windows 10设备,以保持该设备 ESU 更新的资格。
  • IT 管理员必须使用 Microsoft Intune 或其他 MDM 提供程序来部署启用 EnableESUSubscriptionCheck 标志的自定义策略。 此策略可帮助验证设备是否已在 Windows 10 ESU 订阅计划中注册。

使用 Intune 配置 EnableESUSubscriptionCheck 标志

如果想要在不使用 MDM 提供程序的情况下配置此设置,为了方便起见,我们提供了 示例脚本

  1. 登录到Microsoft Intune管理中心
  2. 转到 “设备>管理设备>配置”。
  3. 依次选择 “创建 ”和“ 新建策略”。
  4. 为策略配置文件选择以下属性:
    1. 平台:Windows 10及更高版本
    2. 配置文件类型:自定义或模板 > 自定义
  5. 选择创建
  6. “基本信息”下提供以下属性,完成后选择“ 下一步 ”。
    1. 名称:EnableESUSubscriptionCheck
    2. 说明:启用Windows 10 ESU 订阅检查
  7. “配置设置”下,选择“ 添加 ”以使用以下属性添加新的 OMA-URI 设置,完成后选择“ 下一步 ”:
    1. 名称:EnableESUSubscriptionCheck
    2. 说明:启用Windows 10 ESU 订阅检查
    3. OMA-URI./Device/Vendor/MSFT/Policy/Config/Licensing/EnableESUSubscriptionCheck
    4. 数据类型:整数
    5. :1 (值为 0 将禁用 检查.)
  8. “分配”下,选择要向其分配策略的组,然后选择“ 下一步”。
  9. 在“适用性规则”下选择“下一步”。
  10. 在“ 查看 + 创建”下,查看设置。
  11. 选择“ 创建 ”以完成策略的创建。

注意

ESU 许可证将自动回填到Windows 365订阅,并显示在Microsoft 365 管理中心中。

验证Windows 365用户和设备的 ESU 注册

Windows 365 企业版

若要确认Windows 365 企业版用户的 ESU 注册,请执行以下作:

  1. 登录到 Microsoft 365 管理中心
  2. 选择“ 计费>许可证”。
  3. 选择Windows 365 企业版订阅。
  4. 选择要验证的用户,然后选择 “管理应用 & 服务”。
  5. 在浮出控件中,确认用户已列出并为其启用了 Windows 10 ESU 商业版。

Windows 365一线 (专用)

若要确认Windows 365一线用户的 ESU 注册,请执行以下作:

  1. Microsoft 365 管理中心转到“对产品>计费>Windows 365一线”。

  2. Microsoft Intune管理中心,转到“设备>Windows 365>所有云电脑”。 按 前线类型 = “专用”筛选云电脑。

验证设备上的 ESU 注册

若要验证设备是否已在 ESU 计划中注册,检查将连接到Windows 365 云电脑Windows 10物理终结点上的以下注册表项:

  • HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU
  • 名称:EnableESUSubscriptionCheck
  • 类型:REG_DWORD
  • :1

验证 ESU 资格和更新就绪情况

若要确认设备已完成注册并有资格接收 ESU 更新,检查将连接到Windows 365 云电脑Windows 10物理终结点上的以下内容:

  • 注册表项:

    • HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU
    • 名称:Win10CommercialW365ESUEligible
    • 类型:REG_DWORD
    • :1
  • 事件查看器>应用程序和服务日志>Microsoft>Windows>ClipESU 中,事件 ID 113 检查。 此事件指示已成功安装Windows 365 ESU 许可证。

    注意

    此事件日志特定于Windows 365用户和设备 ESU 解决方案。 它不适用于 ESU MAK 5x5 产品密钥 ESU 解决方案。

示例脚本

以下脚本是有关如何使用 PowerShell 在Windows 10设备上启用或禁用EnableESUSubscriptionCheck标志的示例:

使用 PowerShell 启用 ESUSubscriptionCheck

以下 PowerShell 脚本示例在Windows 10设备上启用 EnableESUSubscriptionCheck 标志:

<#
.SYNOPSIS
  Ensures the ESU registry key exists and sets EnableESUSubscriptionCheck (DWORD).

.DESCRIPTION
  - Checks for HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU
  - Creates the key if missing
  - Creates/updates DWORD value "EnableESUSubscriptionCheck" to $DesiredValue
  - Requires elevation (Administrator)

.NOTES
  Run in an elevated PowerShell session.
#>

# ---- Configuration ----
$RegPath      = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU'
$ValueName    = 'EnableESUSubscriptionCheck'
$DesiredValue = 1

try {
    # Ensure the key exists
    if (-not (Test-Path -Path $RegPath)) {
        Write-Verbose "Registry path not found. Creating: $RegPath" -Verbose
        New-Item -Path $RegPath -Force | Out-Null
    }

    # Create or update the DWORD value
    $existing = Get-ItemProperty -Path $RegPath -Name $ValueName -ErrorAction SilentlyContinue

    if ($null -eq $existing) {
        # Value does not exist, create it
        New-ItemProperty -Path $RegPath -Name $ValueName -Value $DesiredValue -PropertyType DWord -Force | Out-Null
        Write-Output "Created '$ValueName' (DWORD) at '$RegPath' with value $DesiredValue."
    } else {
        # Value exists, ensure it matches desired value
        if ([int]$existing.$ValueName -ne [int]$DesiredValue) {
            Set-ItemProperty -Path $RegPath -Name $ValueName -Value $DesiredValue
            Write-Output "Updated '$ValueName' (DWORD) at '$RegPath' to value $DesiredValue."
        } else {
            Write-Output "'$ValueName' (DWORD) at '$RegPath' already set to $DesiredValue. No changes made."
        }
    }

    # Return 0 (success) exit code
    exit 0
}
catch {
    Write-Error "Failed to set registry value. $($_.Exception.Message)"
    exit 2
}

使用 PowerShell 禁用 ESUSubscriptionCheck

以下 PowerShell 脚本示例在Windows 10设备上禁用 EnableESUSubscriptionCheck 标志:

<#
.SYNOPSIS
  Ensures the ESU registry key exists and sets EnableESUSubscriptionCheck (DWORD).

.DESCRIPTION
  - Checks for HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU
  - Creates the key if missing
  - Creates/updates DWORD value "EnableESUSubscriptionCheck" to $DesiredValue
  - Requires elevation (Administrator)

.NOTES
  Run in an elevated PowerShell session.
#>

# ---- Configuration ----
$RegPath      = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ESU'
$ValueName    = 'EnableESUSubscriptionCheck'
$DesiredValue = 0

try {
    # Ensure the key exists
    if (-not (Test-Path -Path $RegPath)) {
        Write-Verbose "Registry path not found. Creating: $RegPath" -Verbose
        New-Item -Path $RegPath -Force | Out-Null
    }

    # Create or update the DWORD value
    $existing = Get-ItemProperty -Path $RegPath -Name $ValueName -ErrorAction SilentlyContinue

    if ($null -eq $existing) {
        # Value does not exist, create it
        New-ItemProperty -Path $RegPath -Name $ValueName -Value $DesiredValue -PropertyType DWord -Force | Out-Null
        Write-Output "Created '$ValueName' (DWORD) at '$RegPath' with value $DesiredValue."
    } else {
        # Value exists, ensure it matches desired value
        if ([int]$existing.$ValueName -ne [int]$DesiredValue) {
            Set-ItemProperty -Path $RegPath -Name $ValueName -Value $DesiredValue
            Write-Output "Updated '$ValueName' (DWORD) at '$RegPath' to value $DesiredValue."
        } else {
            Write-Output "'$ValueName' (DWORD) at '$RegPath' already set to $DesiredValue. No changes made."
        }
    }

    # Return 0 (success) exit code
    exit 0
}
catch {
    Write-Error "Failed to set registry value. $($_.Exception.Message)"
    exit 2
}