Windows XP | Windows Vista | Windows 7 | Windows 8 | Windows 10 | Windows 11 |

Windows_logo_horiz_blue_rgb

HOWTO: 升级 Secure Boot 证书解决2026年到期问题

        在开始我们今天的话题前应该先了解一下 Secure Boot(安全启动),它是基于 UEFI 提供的一项安全功能,确保设备加电启动后仅能够从受信任的程序执行启动。这是保护操作系统的第一步,它的工作原理十分容易理解,在设备 UEFI 中预置了受信证书,当我们的设备要执行启动的程序包含匹配的受信证书,则设备会继续执行启动,否则失败!

SecureBoot

        安全启动在 Windows 上通过其内核的受信任启动序列从 UEFI 创建安全可信的启动路径,其示意如下,这一过程首先验证固件是否已进行数字签名,从而降低固件 rootkit 的风险。然后,安全启动会检查操作系统之前运行的代码,并检查启动加载程序的数字签名。

boot_process

        Secure Boot 最初是在 Windows 8 总引入的,直至今日的 Windows 11。早前微软已公布相关的启动证书将于2026年过期,参考如下:

Microsoft Corporation KEK CA 2011,2026年6月到期,KEK,对 DB 和 DBX 进行签名更新,更新后:Microsoft Corporation KEK 2K CA 2023

Microsoft Windows Production PCA 2011,2026年10月到期,DB,用于对 Windows 引导加载程序进行签名,更新后:Windows UEFI CA 2023

Microsoft UEFI CA 2011,2026年6月到期,DB,对第三方引导加载程序和 EFI 应用程序进行签名,更新后:Microsoft UEFI CA 2023

Microsoft UEFI CA 2011,2026年6月到期,DB,签署第三方选项 ROM,更新后:Microsoft Option ROM UEFI CA 2023

        如果你或你所管理的组织设备已启用 Secure Boot,则需要重点进行设备信息的调查汇总并指定响应的更新计划并着手开始实施。因为当这些 CA 过期后,系统将停止接收 Windows 启动管理器和安全启动组件的安全修补程序,并影响 Windows 设备的整体安全性。

        首先,我们需要确认设备是否启用了 Secure Boot,可以通过 msinfo32 查看,或使用 PowerShell 命令:Confirm-SecureBootUEFI。

        然后,联系或检查设备 OEM 供应商是否提供了对应的 UEFI 更新固件,根据说明进行操作。

        更新固件后,可以通过检查以下注册表键值来进行确认是否应用了 Windows UEFI CA 2023 签名启动管理器。

“HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing”,UEFICA2023Status 值为 Updated 时表示已完成并应用更新。否则我们需要借助 OEM 的 UEFI 更新程序或微软提供的方案执行。

SecureBoot-reg-uefica2023status

        我们也可以在 PowerShell 中执行以下命令,进行 Windows UEFI CA 2023 的检查。

[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match ‘Windows UEFI CA 2023’

SecureBoot-verify

        当然,启动设备进入 UEFI 界面也是一个非常直接的方法。

Lenovo-KEK

Lenovo-DB

        是的,你没有看错前面的描述,微软也提供了更新 UEFI 固件证书的方法,但如果不适用当前设备,则需要由 OEM 提供支持。我们可以参考以下几种方案:

1. 安装 Windows Update,这是最简单有效的办法!注意:根据微软 KB5036210 的说明,从 2024年 2月 13日及之后发布的 Windows 更新包含了 Windows UEFI CA 2023 证书应用于 UEFI 安全启动允许签名数据库(DB)。

2. 对于组织用户,同理在满足基本系统版本需求的前提下,可以通过注册表、GPO 和 WinCS 的方式立刻开始更新。对于注册表,运行以下命令行。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

Start-ScheduledTask -TaskName “\Microsoft\Windows\PI\Secure-Boot-Update”

第一条命令将启动证书和启动管理器部署,第二条会立刻运行 AvailableUpdates 所对应的计划任务,否则需等待每 12小时运行一次。当重启设备后其键值变为 0x4100 后,可在执行上面的任务计划,触发启动管理器更新。整个过程 IT 人员都可以通过检查 UEFICA2023Status 和 UEFICA2023Error 注册表键值或 DB 和 DBX 事件(ID 1801,1808)进行跟踪。

SecureBoot-event-1045

SecureBoot-event-1799-succeed

3. 如果计划使用 GPO,可配置 计算机配置 - 管理模板 - Windows 组件 - Secure Boot,如下图所示。

SecureBoot-GPO

4. 我们也可以使用 WinCS API 进行更新操作,执行下面的命令行可先进行查询。

WinCsFlags.exe /query --key F33E0C8E002,如下图所示如当前配置为 F33E0C8E001,则未应用新的证书。

SecureBoot-wincs

执行下面的命令行以应用新证书。

WinCsFlags.exe /apply –-key “F33E0C8E002

SecureBoot-wincs-1

注意:通过运行 WinCS 响应的命令并不意味着安全启动证书安装过程已启动或已完成,它仅指示对应的计划任务准备运行,我们也可以手动触发该计划任务,之后重启设备两次以确认正在使用更新的证书。

        目前主要的设备 OEM 厂商(Lenovo、HP、Dell 等)都已经提供了更新支持。如果你所在的组织正面临该问题,可与 gOxiA 联系。

Windows_logo_horiz_blue_rgb

HOWTO: 设置 Windows IoT 设备以实现 Soft Real-Time

        今天 gOxiA 要分享是如何设置 Windows IoT 设备以实现 Soft Real-Time,在开始前我们需要先了解一下什么是 Real-Time!这里的 Real-Time 通常是指实时操作系统,运行在其中的程序执行结果和获得这些结果所花费的时间是确定的,而我们平常使用的操作系统在运行程序时只会给出确定性的结果,但允许有不确定的时间来完成任务。实时操作系统有硬实时和软实时两种,前者是可以确定到确切时刻的系统,如汽车发动机或飞机内的微型控制器、打印机、激光切割机等。而后者如其名会有一些操作系统的抖动,虽然程序完成的时间窗口很小但仍不是精确的时刻,其精度较低,但可以在多核上运行并对应用程序施加较少的限制。此外,实时性能不代表更快的性能,只是可预测的性能,如果我们的应用场景有实际的限制,例如必须在机器人环境改变之前执行的计算或必须在传送带移动之前激活的电机,那么软实时可能就是我们所需要的。

        从 Windows 10 IoT Enterprise 21H2 开始支持 Soft Real-Time,通过以下四个关键设置引入:

  1. CPU 隔离:将系统级干扰从隔离的 CPU 迁移出去,减少对用户实时应用程序的潜在抖动
  2. 自定义 ISR (Interrupt Service Routine - 硬件中断发生时立即执行)/DPC (Deferred Procedure Call - ISR 结束后由系统调度执行)在独立实时 CPU 上高度绑定执行:所有硬件中断都路由到系统和非实时内核,但通过编写自定义 ISR/DPC 驱动程序,可将设备特定的中断路由到实时内核。
  3. 互斥体的优先级继承:通过启用优先级继承,系统在检测到高优先级线程等待低优先级线程持有的互斥体时,会自动调整线程优先级,从而保持任务调度的实时性与确定性。
  4. 最多16个RT线程优先级别:通过提供16个可配置的实时线程优先级级别,系统允许开发者根据任务的重要性分配资源,以实现对执行顺序的精确控制。

        接下来 gOxiA 将在 Windows 11 IoT Enterprise 24H2 上配置以实现 Soft Real-Time:

  1. 禁用空闲状态
    • powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR IdleDisable 1
    • powercfg.exe /setactive SCHEME_CURRENT
  2. 禁用服务
    • sc config dps start=disabled
    • sc config audiosrv start=disabled
    • sc config sysmain start=disabled
  3. 禁用 Windows 更新
    • sc config wuauserv start=disabled
  4. 禁用线程 DPC
    • reg add "HKLM\System\CurrentControlSet\Control\Session Manager\kernel" /v ThreadDpcEnable /t REG_DWORD /f /d 0
  5. 设置 Windows IoT CSP 以实现实时性能
    • SYSTEM 权限执行以下脚本:
      • $nameSpaceName="root\cimv2\mdm\dmmap"
        $className="MDM_WindowsIoT_SoftRealTimeProperties01"
        $obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
        Add-Type -AssemblyName System.Web
        Set-CimInstance -CimInstance $obj
        $obj.SetRTCores = 3
        Set-CimInstance -CimInstance $obj

        在这个配置中,我们将在一个 4 核 CPU 上保留 3 个内核(3、2、1)用于实时任务,并将内核 0 留给系统和非实时任务。注意:系统会从编号最高的核心开始分配实时用途,然后依次向下,但是无法保证实时核心始终位于最高编号,其不会自动调整。

Soft-Real-Time

视频Demo:https://weibo.com/tv/show/1034:5223802787790893?from=old_pc_videoshow

Untitled design - 1 

微软 Foundry Local - 设备 AI 推理解决方案

        微软在其 2025 Build 大会上发布了 Foundry Local,能够在本地设备上执行 AI 推理,意味着可以利用本地的 AI 算力,如:CPU/GPU/NPU;也让用户在隐私方面得到了充足的保障,还能有改善成本效益!Foundry Local 默认除了支持 CLI外,还支持 SDK、REST API 和 Catalog API,用户可以自行基于 Foundry Local 进行开发。在未来 Foundry Local 还将内置对 Agent/MCP 的支持。

        Foundry Local 还支持跨平台,除了能够运行在Windows 11 上,还能够运行在 macOS。由于需要本地存储和运行模型,请确保有足够的算力和存储,Foundry Local 支持硬件加速:NVIDIA GPU(2000系列或更高版本)、AMD GPU(6000系列或更高)、Intel iGPU、Intel NPU(32GB或更多内存)、高通 Snapdragon X Elite(8GB或更多内存)、高通 NPU,以及 Apple 系列。

        要在本地以 Foundry Local 运行 AI 模型,首先需要安装 Foundry Local。

  • Windows:
    • winget install Microsoft.FoundryLocal
  • macOS:
    • brew tap microsoft/foundrylocal
    • brew install foundrylocal

        运行模型只需要执行:

foundry model run <model>

        在 Foundry Local 上可运行的模型有很多,可使用以下命令查看:

foundry model list

        还可以加载 --filter 参数对显示列表进行筛选。

Foundry-model-list

        其他有用的参数还有:

foundry model info <model> 显示有关特定模型的详细信息

foundry model download <model> 在不运行模型的情况下只下载模型到本地缓存

foundry model load <model> 将模型加载到服务中

foundry model unload <model> 从服务中卸载模

        要查看本地已经下载缓存的模型,可执行:

foundry cache list

Foundry-cache-ls

        要检查 Foundry Local 服务状态,可执行:

foundry service status

Foundry-service-status

        Foundry Local CLI 详细使用可参考:Foundry Local CLI reference | Microsoft Learn

        Foundry Local SDK 目前支持 JavaScript、Python、C# 和 Rust,也可以使用 REST API 去调用 Foundry Local Service。gOxiA 这几天就用官方的样例代码改了一个支持 Windows 和 macOS 跨平台运行的 AI 推理程序,可在启动后自动检测 Foundry Local 运行状态获取服务地址和端口,并列出可用 AI 模型,如果未在运行,则执行 Foundry Local 启动。也可以手动指定 Foundry Local 地址,或配置 Azure AI 接口使用基于云的模型。

FoundryLocalChatDemo

        项目地址:FoundryLocalChat | Github

        FoundryLocalChat 视频演示:http://t.cn/AXw2NWB1

分页: 1/153 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]