Windows HLK(Windows Hardware Lab Kit,硬件实验室工具包)是微软用于驱动和硬件兼容性认证(WHQL / WHCP)的官方工具。要把一个内核驱动提交到微软签名,就必须在 HLK 环境里跑完对应的测试、生成 .hlkx 提交包。
这套流程第一次接触会有点绕。本系列分两篇:
- 环境准备(本篇)——搭好 Controller 和测试机。
- 开始测试——建池、建项目、跑测试、打包提交。(见 第二篇:开始测试)
拿到认证之后,如果只需要改 INF 等非 PE 文件做 OEM 客制化,可以走 DUA 流程跳过重测,见 Driver DUA 操作指南。
本文以 Windows Server 2025 认证为目标环境,用一台装了 Hyper-V 的物理机跑 Controller 虚拟机,另一台物理机作测试机。其他 OS 版本流程基本一致,仅版本号和 playlist 不同。
一、理解 HLK 的架构
正式动手前,先搞清楚谁是谁,这能让后面每一步都不迷糊。HLK 环境由三个角色组成:
| 角色 | 说明 | 本文对应 |
|---|---|---|
| Controller(控制器) | 安装 HLK Controller + Studio,负责下发任务、收集结果、打包。是整个测试的“大脑”。 | Server 机上的 WS2025 虚拟机 |
| Test Client(测试机) | 装了待测驱动/硬件的机器,实际执行测试。 | 一台纯净系统的物理机 |
| 网络 | Controller 和测试机必须在同一子网、能互相访问。 | 一台路由器组建局域网 |
工作方式:Controller 通过网络把测试任务推送到测试机执行,测试机把结果回传给 Controller,最后由 Controller 打成 .hlkx 包提交微软。
几条容易踩坑的硬性约束:
- Controller 不能装在域控制器上,也不能装在 Server Core 上,且只支持 Server 的 Standard / Datacenter 版。
- 一台测试机只能归属一个 Controller;反过来,一个 Controller 最多可管理 150 台测试机。
- Controller 与测试机之间除了 TCP 1771,还要走 SMB 文件共享——客户端安装包和测试内容都是从
\\<Controller>\HLKInstall这类共享目录拉取的,所以名称解析(能按计算机名访问)也必须正常。
工作组还是域?
官方支持两种部署方式,本文用的是更简单的工作组方式:
| 域环境 | 工作组环境(本文) | |
|---|---|---|
| 最少机器 | 3 台(域控 + Controller + 测试机,域控不能与 Controller 同机) | 2 台(Controller + 测试机,加入同一工作组) |
| 账户要求 | 各机加入同一域 | 不要使用内置 Administrator 账户;需在每台机器上新建一个管理员账户,用它登录,并启用 Guest 账户 |
工作组环境下"启用 Guest 账户 + 不用内置 Administrator"是官方明确要求,漏掉这一步经常表现为客户端连不上 Controller、或者共享目录访问被拒。
二、物理准备
需要准备的硬件:
- Server 机:一台物理机,安装 Windows 专业版(Pro),用来开 Hyper-V 承载 Controller 虚拟机。
- 测试机:一台纯净系统的物理机(待测驱动就装在这台上)。
- 必须是物理机——官方不支持在 Virtual PC 或任何第三方 Hypervisor 里跑测试机。
- 建议预留 300 GB 以上磁盘空间——测试会产生海量日志。
- 应为专用测试机,不要拿日常办公机来测。
- 装好客户端后不要更换硬盘:HLK 用机器标识绑定客户端,换盘会破坏绑定关系。
- 路由器:把 Server 机和测试机接入同一个局域网 / 同一子网。
为什么测试机要“纯净系统”? HLK 会对系统做大量改动、频繁重启,多余的软件容易干扰测试结果甚至导致失败。用干净安装的系统最稳妥。官方还特别提醒:测试机上不要存放(也不要曾经存放过)敏感信息。
Controller 侧的资源要求也别按最低配给——它要装 SQL Server 存所有结果和日志:
| 最低 | 建议 | |
|---|---|---|
| 内存 | 2 GB | 4 GB 以上 |
| 磁盘 | 300 GB | 越大越好,日志增长很快 |
| 网络 | 100 Mbps | 1 Gbps |
三、软件准备
- Windows Server 2025 ISO(en-us 英文镜像)——用来装 Controller 虚拟机。
- 可从微软评估中心下载:Download Windows Server 2025(提供 180 天评估版 ISO,注意选 en-us 语言)。
- 必须用英文版(英文语言 + 英文区域设置),这是官方要求,不只是"建议"。测试机上的被测系统同样要装英文版。
- 安装时选 Datacenter 版、且带桌面体验(Server with Desktop Experience,即“完整服务器/带 GUI”),不要选 Server Core。后面的 Static Tools Logo Test 在 Core 上会报错。
- HLK 安装包——从微软官网下载,版本要与你认证目标 OS 匹配(WS2025 用对应的最新 HLK)。
- 记住:HLK 版本、playlist 版本、被测 OS 版本三者要对应一致。
从微软 HLK 下载页获取对应版本的安装包。
关于版本,还有两件事必须先知道:
- HLK 版本反过来限制 Controller 能装在哪个 Server 上。 例如 Windows Server 2025 只有从「HLK 24H2(updated Jan 2025)」这一版起才被支持作为 Controller 宿主系统;更早的 HLK 装在 WS2025 上不受支持。所以选 ISO 之前先确认你要用的 HLK 版本支持哪些 Server 版本。
- 一套环境同时只能存在一个 HLK 版本。 要升级 HLK,必须先把 Controller 和所有测试机上的旧版 HCK / HLK 卸载干净,不能并存。这也是为什么"同一个驱动认证多个 OS 版本"的正规做法是准备多套环境分别测试、最后合并(见第二篇的 Merge Package)。
下载与安装前的检查清单:
- 在服务器上直接下载时,需要先关闭 IE 增强安全配置(IE ESC),否则下载页打不开。
- 下载器弹出时选择 Run(运行),不要选 Save——Save 只会存下一个引导安装程序,拿不到完整套件。
- 安装 HLK 前必须卸载 32 位 SQL Server(不支持),以及 SQL Server 2014 / 2015 / 2016 / 2017。
- 若机器上没有 .NET Framework 4.5,安装程序会先装它并要求重启,重启后需从头再跑一遍安装流程。
四、Server 准备(搭建 Controller)
1. 开启 Hyper-V
在 Server 机(Windows Pro)上启用 Hyper-V。可用 PowerShell(管理员):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
或走「控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选 Hyper-V」。按提示重启。
2. 创建 Windows Server 2025 虚拟机
在 Hyper-V 管理器中新建虚拟机:
- 使用 第二代(Generation 2) 虚拟机。
- 分配足够资源:建议 4 vCPU / 8 GB+ 内存 / 300 GB+ 磁盘。
- 挂载 WS2025 的 en-us ISO,安装 Datacenter(带桌面体验)。
- 装好后完成初始化(设置管理员密码、打补丁)。
3. 配置网络(关键)
必须让 Server 机、Controller 虚拟机、测试机三者处于同一子网、能互通:
- 在 Hyper-V 管理器 →「虚拟交换机管理器」新建一个 外部(External)虚拟交换机,桥接到 Server 机的物理网卡。
- 把 Controller 虚拟机的网络适配器连接到这个外部交换机。
- 确认三台机器都从路由器拿到同一网段的 IP(例如都是
192.168.1.x),并能互相ping通。 - 给 Controller 虚拟机配静态 IP 或 DHCP 保留,避免重启后地址漂移导致客户端失联。
防火墙:HLK 客户端与 Controller 通过 TCP 1771 端口通信。若有第三方防火墙,需手动放行 1771,否则客户端安装或通信会失败。此外客户端安装与测试内容分发走 SMB(TCP 445),同样需要放行,并保证测试机能按计算机名访问 Controller。
先把计算机名定下来。 安装 HLK 之前就把 Controller 虚拟机的计算机名改成你想要的(简短、纯 ASCII),装完之后 Controller 和测试机都不支持改名。
4. 在虚拟机中安装 HLK Controller + Studio
在 WS2025 虚拟机里运行 HLK 安装包:
- 运行
HLKSetup.exe。 - 选择 Install the Windows Hardware Lab Kit to this computer。
- 组件选择 Windows Hardware Lab Kit — Controller + Studio。
- 允许开放端口、接受许可协议。
- 安装约需 45 分钟。装完后 Controller 会自动共享出客户端安装目录
\\<ControllerName>\HLKInstall\。
至此 Controller 就绪。记下这台虚拟机的计算机名(下文用 <HLKController> 表示),测试机安装客户端时要用。
趁现在打一个快照。 这正是把 Controller 放在虚拟机里的最大好处:在 Hyper-V 管理器中给这台干净装好的 Controller 建一个检查点(Checkpoint)。以后测试环境被搞乱、或者需要换 HLK 版本重来,直接回滚即可,省掉 45 分钟重装。
五、测试机准备
1. 安装纯净系统
在测试机上干净安装目标 OS(与你要认证的 OS 一致),注意:
- 必须是英文语言 + 英文区域设置的版本。
- 若被测系统是 Windows Server,安装时同样选 Datacenter 并选 Full Server / Server with a GUI。
- 若被测系统是 Windows 的 “N” 版,需要手动装上 Media Feature Pack,否则部分测试无法运行。
2. 禁用安全启动、开启测试模式
进 BIOS/UEFI:
- 禁用 Secure Boot(安全启动)。开着安全启动会导致 HLK 客户端安装失败,且不少测试项要求关闭它(完整清单见官方System testing with Secure Boot)。
- 顺便把启动项设为从硬盘的常规引导扇区启动,不要保留 U 盘 / 光盘优先引导——测试过程中机器会反复重启,一次引导到别的设备上整轮测试就废了。
顺序很重要:必须先关掉 Secure Boot,再开测试签名。 Secure Boot 开启时 bcdedit 会因为安全启动策略保护而拒绝写入。进系统后,以管理员命令提示符执行并重启:
bcdedit /set testsigning on
为什么必须开测试模式? 测试用的驱动通常只做了测试签名而非正式签名。不开测试模式系统会拒绝加载,而且 Static Tools Logo Test 只有在驱动被测试签名时才会正确出现和告警(详见第二篇)。开启后桌面右下角会出现“测试模式”水印,属正常现象。
3. 电源设置
建议测试机接通电源,并把「电源选项 → 使计算机进入睡眠状态」设为从不,避免测试中途休眠。
4. 工作组账户(工作组环境必做)
如果 Controller 和测试机没有加入域(本文即是),在每一台机器上都要:
- 新建一个用户账户并加入 Administrators 组;
- 用这个新账户登录(不要用内置的 Administrator 账户);
- 启用 Guest 账户。
这三步是官方对工作组部署的明确要求,跳过它们后面很容易出现客户端连不上 Controller、共享目录访问被拒之类的问题。
5. 安装 HLK Client
从网络路径运行 Controller 共享出来的客户端安装脚本。以管理员命令提示符(不要用 PowerShell)执行:
\\<HLKController>\HLKInstall\Client\Setup.cmd /qn ICFAGREE=Yes
<HLKController>换成 Controller 虚拟机的计算机名。/qn为静默安装,ICFAGREE=Yes表示同意开放防火墙端口。- 也可以不加
/qn走图形向导:向导里在“Internet Connection Firewall Agreement”页选择允许开放端口。 - 安装过程会自动装上 .NET Framework 4、Application Verifier、WDTF、Windows Performance Toolkit 等依赖。
注意
- 脚本必须从网络路径(
\\...)运行,不能从映射的盘符运行。- 若通信端口被挡,手动放行 TCP 1771。
- 客户端装好后不会出现在“添加/删除程序”里,但任务管理器中应能看到
HLKSvc.exe进程在运行——以此确认安装成功。- 客户端装好后不要再改测试机的计算机名,否则不受支持。
6. 准备并安装待测驱动
- 准备好已测试签名的待测驱动程序。
- 在测试机上安装该驱动,然后重启。
- 重启后确认设备管理器中驱动已正常加载。
7. 确认测试机已被 Controller 认到
回到 Controller 上打开 HLK Studio → Configuration 页,测试机应当自动出现在 Default Pool 里(可能需要等几分钟)。看到它就说明客户端与 Controller 通信正常,可以进入第二篇了。
小结
到这里,一个完整的 HLK 测试环境就搭好了:
- ✅ Server 机开启 Hyper-V,承载一台 WS2025 Controller 虚拟机(已装 Controller + Studio),并打好了检查点。
- ✅ Controller、测试机、Server 机同处一个子网,互通,放行了 TCP 1771 与 SMB。
- ✅ 工作组环境下三台机器都建了专用管理员账户并启用了 Guest。
- ✅ 测试机为物理机、纯净英文系统、关安全启动、开测试模式,装好 HLK Client,并装好待测驱动。
- ✅ HLK 套件版本 / 被测 OS / playlist 三者版本对齐。
环境就绪后,就可以进入正式测试:新建机器池、创建项目、加载 playlist 跑测试、打包提交。下一篇继续 → Windows HLK 驱动认证(二):开始测试