WU
wu 是一个命令行工具,用于通过 Microsoft Hardware Dev Center API 为驱动提交创建 Windows Update Shipping Label。
在 Hardware Dev Center 网页上完成一次发布标签创建,需要依次进入产品与提交页、展开硬件 ID 列表逐条勾选、填写 CHID 以及一组业务字段。其中业务字段在多数情况下取值固定,硬件 ID 选择则每次都需重新进行。
本工具将固定部分下沉至配置文件,将选择部分实现为终端内的多选列表。

安装
npm install -g @platformtools/wu
或不安装直接执行:
npx @platformtools/wu
要求 Node.js 18 及以上。
命令结构
wu 按子命令组织。不带参数运行时打开交互菜单:

| 命令 | 说明 |
|---|---|
submit | 为一次驱动提交创建 Windows Update 发布标签 |
全局选项为 -h, --help 与 -v, --version。子命令自身的参数通过 wu <命令> --help 查看。
在管道或 CI 等不具备交互终端的环境中不带命令运行时,工具不会抛出 TTY 相关错误,而是打印帮助并以退出码 2 结束。
凭据存储
首次运行 wu submit 时依次请求 tenant_id、client_id、client_secret、ms_contact。

四项值经 AES-256-GCM 加密后写入 ~/.wu/credential.enc。加密密钥不落盘,每次由 scrypt 从「主机名 + 用户名 + 平台」构成的机器指纹派生,salt 随机生成并以明文存于同一文件。
由此,该文件在其他机器上无法解密。解密失败时代码将其视为「无凭据」,重新发起提问,不产生错误。
已存储的 tenantId / clientId / clientSecret 优先级高于命令行同名参数,即 --tenant-id 无法覆盖已存储的值。更换凭据需删除 ~/.wu/credential.enc 后重新运行。
--ms-contact 是例外,该参数会覆盖并更新存储值。
业务默认值
取值固定的字段存于 ~/.wu/config.json,首次运行时自动生成:
| 键 |
|---|