ZTIGather.wsf 是 MDT (Microsoft Deployment Toolkit) 中的一个 VBScript 脚本,用于在部署过程中收集有关目标计算机硬件和软件环境的信息,并将这些信息记录在日志文件中
ZTIGather.wsf 完整拆解解构
基础定位
ZTIGather.wsf 是 MDT(Microsoft Deployment Toolkit,微软部署工具包)Lite Touch LTI 自动化部署 的核心采集脚本;
文件路径:
运行载体:
核心职能:采集目标计算机硬件、固件、网络信息,加载并合并部署规则,构建全局环境变量池,驱动整个自动化部署的分支判断逻辑。
部署共享\Scripts\ZTIGather.wsf
cscript.exe(控制台模式,禁止 wscript 弹窗模式)
通俗理解:所有 MDT 自动化判断(计算机名、驱动匹配、应用筛选、分区规则、MDT 数据库查询)全部依赖本脚本输出的变量。
一、底层原理
1. 核心运行模型
plaintext
LiteTouch.wsf(主调度脚本) → 调用 ZTIGather.wsf
↓
1)加载基础规则(CustomSettings.ini / Bootstrap.ini)
2)WMI/注册表/系统API采集本机硬件、网络、固件信息
3)按优先级合并所有配置源,写入全局内存对象 `oEnvironment`
4)可选:查询MDT SQL数据库,根据MAC/型号追加计算机专属配置
5)持久化变量到 Variables.dat,供后续所有脚本读取
2. 两大运行阶段
- WinPE 预部署阶段(最重要)
裸机 PXE 引导进入 LiteTouch PE 后执行;采集 BIOS、CPU、内存、磁盘、网卡 MAC、UEFI/MBR、TPM、SecureBoot、有线 / 无线网卡信息;用于分区、驱动匹配、自动命名、准入校验(Win11 硬件检查)。
- 目标 OS 部署完成后阶段
系统镜像部署完毕、首次进入完整 Windows 时二次采集;读取已安装系统信息、补丁、域状态,用于资产上报、应用后安装逻辑。
3. 信息采集来源
- WMI 查询(root\cimv2、root\wmi):硬件型号、序列号、网卡、磁盘、内存、TPM、安全启动状态
- 系统注册表:固件信息、现有系统配置
- 系统 API / 工具调用:bcdedit、wpeutil、diskpart 信息
- ZTIGather.xml:内置变量定义清单(规定哪些字段需要采集)
4. 变量覆盖优先级(由低→高,后者覆盖前者)
CustomSettings.ini 默认段 < 普通分段 < WMI条件分段 < Bootstrap.ini参数 < ZTIGather硬件采集值 < MDT数据库查询结果 < 任务序列手动设置变量关键特性:硬件采集到的值会覆盖 ini 静态配置,实现「根据硬件自适应部署」。
5. 内置容错机制
- WMI 查询失败不会中断整个采集流程,空值统一填充
UNKNOWN; - 自动切换 WMI 命名空间重试(root\cimv2 /root\wmi);
- 多网卡自动区分有线以太网、Wi-Fi 无线网卡,分别读取 MAC、IP、DHCP 状态;
- 区分 UEFI / Legacy BIOS 启动模式,设置
IsUEFI变量,供磁盘分区脚本(ZTIDiskpart.wsf)自动选择 GPT/MBR。
二、依赖文件清单
【强制直接依赖(同 Scripts 目录)】
- ZTIUtility.vbs【核心依赖库】
提供日志封装、WMI 访问、INI 读写、变量操作、文件 IO、网络工具函数;ZTIGather 不直接调用系统 API,全部通过该库中转。
- ZTIGather.xml
变量定义清单,控制采集字段、变量名称映射;可自定义扩展硬件采集项。
- ZTIDataAccess.vbs
MDT SQL 数据库访问封装;当 CustomSettings.ini 开启
Database=xxx时,用于连接数据库查询计算机专属配置。
【二进制依赖(Tools 目录)】
Microsoft.BDD.Utility.dll
【配置文件(Control 目录)】
Bootstrap.ini:PE 启动阶段基础参数(部署共享路径、账号)CustomSettings.ini:部署自动化规则(Priority、数据库、变量条件)
【运行输出文件】
ZTIGather.log:脚本独立日志BDD.log:MDT 全局汇总日志(所有脚本统一写入)Variables.dat(XML 格式):全局变量持久化缓存,部署重启后依然加载
默认路径:C:\MININT\SMSOSD\OSDLOGS\
【系统底层依赖】
wscript.exe / cscript.exeWindows Script Host(VBS 执行引擎)- WMI 服务(WinPE 内置 WMI 提供程序)
tcpip.sys网络栈(读取网卡 IP、MAC、DHCP 租约信息)- NDIS 网卡驱动(有线 / 无线网卡硬件枚举)
三、依赖关系链路
完整端到端执行链路(LTI PXE 部署)
plaintext
裸机开机 → DHCP → WDS/TFTP下载 LiteTouchPE.wim → 进入WinPE
↓
LiteTouch.wsf 自动启动
↓
读取 Bootstrap.ini → 挂载SMB部署共享 → 加载 CustomSettings.ini
↓
【核心步骤:执行 cscript ZTIGather.wsf】
├─ 枚举硬件(CPU、内存、磁盘、有线网卡、Wi-Fi网卡、BIOS、TPM)
├─ 读取网卡DHCP信息(MAC、IP、租约状态,区分有线/无线)
├─ 若开启数据库:使用MAC/型号查询MDT数据库,追加专属变量
├─ 全部数据存入全局 oEnvironment 对象
└─ 写入 Variables.dat 持久化
↓
下游脚本读取变量执行自动化逻辑:
ZTIDiskpart.wsf(分区)→ ZTIDrivers.wsf(驱动匹配)→ ZTIWindowsSetup.wsf(部署镜像)→ ZTIDomainJoin.wsf(加域)
关键联动:有线网卡 / Wi-Fi 网卡采集逻辑
ZTIGather 遍历所有
Win32_NetworkAdapterConfiguration:- 区分以太网适配器(有线)、802.11 无线适配器(Wi-Fi);
- 分别采集各自 MAC 地址、IP 地址、DHCP 启用状态;
- 获取网卡 DHCP 租约相关信息(LeaseObtained、LeaseExpires)存入变量;
- 生成变量:
MACAddress(默认活动网卡)、MACAddress01/MACAddress02(多网卡依次编号);
可利用多 MAC 变量,在 MDT 数据库实现有线、无线双网卡资产识别。
和前文技术栈联动关系
- DHCP / DHCP 租约到期时间
ZTIGather 读取网卡 DHCP 租约起止时间写入环境变量;可基于租期状态判断终端是否在线;MAC 地址来自 DHCP 报文采集,用于 MDT 数据库匹配计算机配置。
- w32tm 时间服务
采集本机系统时间,写入部署日志;时间异常会影响日志时间戳、MDT 数据库连接 Kerberos 认证。
- 网络组件:读取网卡 IP、网关,为 ZTINICConfig.wsf 提供网络配置参数。
四、典型故障断链场景
- ZTIUtility.vbs 缺失
脚本直接崩溃,ZTIGather.log 报错函数未定义;无法采集任何硬件信息。
- WMI 损坏(老旧工控 WinPE)
硬件采集大量
UNKNOWN,无法自动匹配驱动、无法查询 MDT 数据库。 - SMB 共享权限不足
脚本可以启动,但无法读取 CustomSettings.ini,规则加载失败。
- 多网卡采集异常(有线 + Wi-Fi 同时在线)
MACAddress变量随机选取活动网卡,导致 MDT 数据库匹配错误;解决方案:CustomSettings.ini 内编写 WMI 条件锁定有线网卡 MAC。 - MDT 数据库连通失败
硬件采集正常,但无法加载计算机专属应用 / 参数;ZTIGather.log 出现 SQL 连接报错。
- Variables.dat 权限 / 编码损坏
部署重启后变量丢失,自动化流程变回手动向导。
五、配套链(运维工具、调试手段)
1. 手动独立调试(无需完整 PXE 部署)
复制依赖文件到本地,直接模拟采集:
cmd
cscript.exe ZTIGather.wsf /debug:true
参数说明:
/debug:true:控制台同步输出日志;/localonly:仅采集本机信息,不加载 ini 数据库规则。
2. 日志分析工具
CMTrace.exe:微软官方日志查看器,打开
ZTIGather.log / BDD.log 定位采集失败项。3. 上下游配套核心脚本
| 脚本名称 | 和 ZTIGather.wsf 协作关系 |
|---|---|
| LiteTouch.wsf | 主调度,调用 ZTIGather 作为部署初始化第一步 |
| ZTIDiskpart.wsf | 读取 IsUEFI、磁盘变量自动分区 |
| ZTIDrivers.wsf | 读取硬件 PNPID 变量,匹配驱动库 |
| ZTINICConfig.wsf | 读取网卡、DHCP 变量配置网络 |
| ZTIDataAccess.vbs | 提供 SQL 数据库查询能力 |
4. 常用扩展场景
- 在 ZTIGather.xml 增加自定义采集项(硬盘序列号、无线网卡信号);
- 利用采集到的
MakeModel整机型号,实现按机型自动安装驱动 / 软件; - 依靠 MAC 地址匹配 MDT 数据库,实现计算机名预设、OU 自动加域。
六、极简总结
- ZTIGather.wsf = MDT 自动化部署的「信息采集与规则合并中枢」;所有自动化分支判断依赖它输出的全局变量。
- 强依赖
ZTIUtility.vbs;采集硬件、有线 / 无线网卡、DHCP 租约、固件信息,支持联动 MDT SQL 数据库。 - 分 WinPE 预部署、系统部署后两个执行阶段;采集硬件变量优先级高于配置文件。
- 多网卡环境可区分有线以太网、Wi-Fi 无线网卡,分别读取 MAC 与 DHCP 租约信息,是终端资产自动化识别基础。
- 排障第一入口:优先查看
ZTIGather.log,确认硬件信息、网卡 MAC、数据库查询是否正常采集。
ZTIGather.wsf 完整演进史(MDT 全版本分阶段迭代)
总演进主线
ZTIGather.wsf 伴随 BDD 2007 诞生,是 MDT 整套部署脚本体系的核心采集引擎,整体迭代分为 5 大阶段:
- BDD 2007 / MDT 2008:初代基础采集脚本,仅基础硬件枚举;
- MDT 2010 / MDT 2012 Update1:完善磁盘、网络、BIOS 采集,新增 UEFI 初步适配;
- MDT 2013 系列:重构 WMI 容错逻辑、分区表 GPT/MBR 识别、离线注册表 hive 读取;
- MDT 8443 / 8450 / 8456(Win10 全生命周期):安全固件采集(TPM、SecureBoot)、SSD 介质识别、变量重写机制、ZTIGather.xml 标准化变量管控;
- MDT 8456 长期稳定版(2019 至今,适配 Win11/Server2022):补齐 Win11 硬件合规采集、容器 / 虚拟化信息、安全审计日志优化,底层架构冻结,仅修复 bug 与适配新硬件 WMI 类。
底层不变核心:始终基于 VBScript+WSH,依赖 ZTIUtility.vbs 做系统接口封装,分 WinPE 预部署、OS 部署后双阶段采集,全局 oEnvironment 变量池共享采集数据。
阶段 1:初代基础版 — BDD 2007 / MDT 2008(2007–2010)
诞生背景
BDD(Business Desktop Deployment)升级为 MDT,废弃早期批处理采集逻辑,统一改用 WSF 脚本实现硬件采集,
ZTIGather.wsf首次作为独立采集脚本落地。新增核心能力
- 基础 WMI 硬件枚举:CPU、内存、BIOS 序列号、MAC 地址、硬盘基础容量;
- 简单全局变量缓存,输出
SerialNumber、Model、MACAddress用于计算机自动命名; - 基础日志写入 BDD.log,仅记录采集成功 / 失败,无原始 WMI 查询语句留存;
- 仅支持 Legacy BIOS MBR 分区识别,无 UEFI、GPT 相关逻辑;
- 无离线注册表读取,仅在线系统读取 HKLM 基础系统信息;
- 无专用
ZTIGather.xml,变量无标准化管控,所有采集变量硬编码在脚本内。
底层缺陷(后续版本全部重构修复)
- WMI 查询无异常捕获,工控机缺失硬件 WMI 类直接中断部署;
- 磁盘仅读取总容量,无法区分 SSD/HDD、无分区类型识别;
- 所有变量一次写入永久锁定,无覆盖重写机制,自定义规则无法修正采集值;
- 日志极简,无法溯源硬件识别异常,排错难度极高;
- 不支持多网卡、多硬盘设备,仅读取第一块网卡、第一块磁盘。
适用系统:Windows XP、Vista、Server 2008
阶段 2:功能扩充版 — MDT 2010 / MDT 2012 Update1(2010–2013)
重大迭代更新
- 多硬件兼容重构
支持多网卡、多硬盘遍历,自动汇总全部 MAC 地址存入
MACAddressList;区分 USB 移动磁盘与内置硬盘,规避自动分区误格式化 U 盘。 - UEFI/GPT 初步适配
新增 WMI 查询
Win32_DiskPartition识别 GPT 分区表,输出IsUEFI、DiskType全局变量,支撑新一代 64 位固件部署。 - 离线注册表 Hive 挂载逻辑
WinPE 阶段自动
reg load目标系统 SYSTEM/SOFTWARE hive,读取离线系统版本、时区、预装驱动配置,补齐预部署阶段系统信息采集。 - 网络采集完善
采集网关、DHCP 状态、IP 子网、网卡厂商型号,用于机房网段资产区分。
- 容错机制小幅优化
单硬件 WMI 查询失败仅打印警告,不再终止整套采集流程。
仍缺失能力
无 TPM、安全启动采集;无法识别 SSD 固态介质;变量仍不可覆盖;无标准化
ZTIGather.xml;不支持 Server 角色、软件清单采集。适用系统:Win7、Server 2008 R2、早期 Win8
阶段 3:架构重构基准版 — MDT 2013 / MDT 2013 Update 1(2013–2016)
本阶段是 ZTIGather 底层架构分水岭,大量核心机制重构,奠定至今通用的采集框架。
1. 变量管控体系革新(标志性更新)
新增配套
解决历史版本 “一次写入不可修改” 缺陷,CustomSettings.ini、任务序列可覆盖硬件采集原生值,适配机房统一资产命名规则。
ZTIGather.xml文件,统一定义全部采集变量、数据类型、overwrite="true" 可覆盖标记Microsoft ...;
2. WMI 底层查询全面加固
- 分层遍历 WMI 命名空间:
root\cimv2、root\wmi、root\Microsoft\Windows\DeviceGuard; - 封装重试逻辑,WMI 连接超时自动重连,老旧工控机兼容性大幅提升;
- 日志完整记录原始 WQL 查询语句、返回原始字段,运维可完整溯源硬件识别异常。
3. 磁盘底层采集深度升级
通过 DeviceIoControl 底层 API 补充 WMI 缺失存储信息:
- 识别 ESP/MSR 恢复分区、GPT 分区 GUID;
- 硬盘唯一序列号、卷 UUID 采集;
- 区分 NVMe/SATA 机械硬盘,新增
IsSSD布尔变量,自动适配分区对齐、页面文件策略。
4. 双阶段采集标准化落地
明确拆分:
1)WinPE 预部署采集(仅硬件、固件、磁盘、网卡);
2)OS 安装完成后二次采集(系统版本、补丁、已安装软件、域信息、时区)。
5. 软件与服务器配套采集
新增
Win32_Product枚举已安装应用清单;采集 Server 角色 / 功能清单,支撑任务序列自动安装服务器组件。适用系统:Win8.1、Server 2012 R2
阶段 4:安全固件全采集版 — MDT 8443 / 8450 / 8456(2016–2019,Win10 完整支撑周期)
MDT 8456 为最终官方完整功能版本,ZTIGather.wsf 安全采集能力达到顶峰,新增大量现代安全硬件指标,适配 Win10、Server2016/2019。
1. 固件安全类全套 WMI 采集(核心新增)
新增三大安全硬件全局变量,支撑 BitLocker、安全基线自动化校验:
- TPM:
TPMVersion、TPMEnabled、TPMReady,读取Win32_Tpm; - 安全启动:
SecureBootEnabled、SecureBootCapable,查询Win32_SecureBoot; - 固件模式:完善
IsUEFI判定逻辑,区分纯 UEFI、兼容 Legacy 混合固件。
2. 虚拟化 / 虚拟机硬件识别
采集虚拟机厂商(VMware/Hyper-V/KVM)、虚拟磁盘、虚拟网卡标识,自动过滤物理服务器专属驱动集。
3. 变量持久化优化
采集完成自动写入
Variables.dat二进制缓存,部署重启无需重复扫描硬件,缩短部署等待时间。4. 大量生产 bug 修复
- 修复多 SSD 硬盘排序错乱导致自动分区误选大容量数据盘;
- 修复离线注册表卸载失败导致注册表锁死;
- 修复 TPM 1.2 设备 WMI 查询空值崩溃;
- 修复
ZTIGather.xmlBDEDisablePreProvisioning 字段识别异常Microsoft ...。
5. 日志安全审计增强
日志区分 INFO/WARNING/ERROR 三级,完整记录 TPM、安全启动、磁盘分区敏感采集行为,可用于终端资产安全基线审计。
适用系统:Win10 全版本、Server2016、Server2019
阶段 5:兼容维护冻结版 — MDT 8456 长期支持(2019 至今,适配 Win11/Server2022/2025)
微软停止更新 MDT 主程序,仅发布 ADK 配套补丁修复,ZTIGather.wsf底层架构完全冻结,不再新增采集框架,仅做适配性小幅修改。
迭代内容(无架构重构,仅适配与加固)
- Win11 硬件合规校验采集补齐
扩充 CPU 兼容列表判断、最低内存 4GB、存储 64GB 校验变量,任务序列可自动拦截不满足 Win11 部署条件的裸机;
- Server 2022 适配
适配新一代 RAID/HBA 卡 WMI 存储类,新增 Server 2022 专属角色识别;
- 容器 / 沙箱环境采集优化
区分 Windows Sandbox、Server 容器硬件环境,隔离宿主机与容器采集变量;
- 安全加固修复
封堵自定义 Hook 篡改采集变量的漏洞,强化
ZTIGather.xml权限校验;修复高安全 HVCI 环境下 WMI 读取 TPM 信息权限不足问题; - 无新增底层采集逻辑、无新增全局变量大类,完整向下兼容 MDT2013 以来所有规则、任务序列。
兼容边界
MDT 8456 脚本可直接复用在 Win11 24H2、Server 2025,仅需配套对应 ADK;旧版 MDT 自定义规则、Bootstrap.ini/CustomSettings.ini 无需改写即可兼容。
分维度演进对比速查表
1. 核心机制引入时间线
| 核心功能 | 首次出现版本 | 作用 |
|---|---|---|
| 初代基础硬件 WMI 采集 | BDD2007/MDT2008 | 基础资产序列号、机型采集 |
| UEFI/GPT 分区识别 | MDT2012 Update1 | 新一代固件部署支撑 |
| 离线注册表 Hive 读取 | MDT2012 Update1 | WinPE 离线系统信息采集 |
| ZTIGather.xml 标准化变量 + 覆盖机制 | MDT2013 | 自定义规则可改写硬件采集值 |
| SSD / 多磁盘底层 DeviceIoControl 采集 | MDT2013 | 自动分区、存储优化自适应 |
| TPM/SecureBoot 安全固件采集 | MDT8443 | BitLocker、安全基线自动化 |
| Variables.dat 变量持久化缓存 | MDT8450 | 减少重复硬件扫描耗时 |
| Win11 硬件合规判定采集 | MDT8456(长期维护补丁) | 拦截不符合 Win11 最低硬件终端 |
2. 底层技术演进脉络
- 采集接口:纯 WMI → WMI + 底层 DeviceIoControl 磁盘 API + 离线注册表挂载;
- 变量管控:硬编码不可修改 → ZTIGather.xml 标准化、支持覆盖重写;
- 容错能力:单查询失败直接中断 → 分级捕获、跳过异常硬件、日志告警不中断流程;
- 日志体系:极简成功 / 失败日志 → 完整 WQL 语句、三级分级、安全审计全链路日志;
- 固件安全采集:无安全硬件逻辑 → TPM、SecureBoot、HVCI、虚拟化全套识别。
3. 战略定位演进总结
- BDD2007-MDT2010:辅助采集工具,仅满足基础计算机命名需求;
- MDT2012-MDT2013:部署核心中枢,硬件数据驱动分区、加域、系统配置全流程自动化;
- MDT8443-8456:资产 + 安全双维度采集引擎,兼顾部署自动化与终端安全基线审计;
- 2019 至今长期维护:冻结架构、全兼容维护,作为 Win10/Win11/Server 全系列通用采集底层,仅适配新硬件与安全补丁。
关键跨版本兼容说明
- 所有新版 ZTIGather.wsf 向下兼容旧版 CustomSettings.ini、任务序列;仅升级部署共享时,必须执行「Update Deployment Share」同步替换脚本;
- MDT2013 及以上引入的
ZTIGather.xml为配套依赖,低版本无此文件,升级后不可删除; - 底层 WMI 查询命名空间、全局变量命名全版本统一,机房批量规则、资产命名模板无需随 MDT 版本改写。
ZTIGather.wsf 完整底层原理(MDT 核心信息采集脚本)
一、基础定位与运行时序
1. 文件路径与加载时机
文件存放路径:
执行时序
DeploymentShare\Scripts\ZTIGather.wsf,属于 Lite Touch 部署核心组件。
- WinPE 加载完成、挂载 MDT 部署共享、读取
Bootstrap.ini/CustomSettings.ini; - LiteTouch.wsf 主脚本初始化后,第一顺位调用 ZTIGather.wsf;
- 分两次采集:
- 阶段 1:WinPE 预部署环境采集(硬件、BIOS、磁盘、网卡、内存、序列号);
- 阶段 2:目标操作系统安装完成、首次进入桌面后二次采集(软件、系统版本、域信息、已安装补丁)。
2. 运行依赖
- 宿主引擎:Windows Script Host
cscript.exe(控制台无弹窗模式); - 依赖库:同目录 ZTIUtility.vbs(MDT 通用工具类,封装 WMI、注册表、文件读写、变量操作);
- 权限:WinPE 内核 SYSTEM 最高权限,可全量读取系统 WMI、硬件抽象层、注册表、磁盘驱动信息;
- 输出载体:
BDD.log主部署日志,同时填充全局部署变量(存入内存环境对象,供任务序列、分区脚本、加域脚本调用)。
二、四层底层执行架构
plaintext
入口主流程 → ZTIUtility.vbs 工具封装层 → WMI/Win32 API/注册表/磁盘读取层 → 日志输出 + 全局变量缓存
层级 1:脚本入口主逻辑(ZTIGather.wsf 自身代码)
- 初始化全局
oEnvironment对象(MDT 内存变量容器,键值对存储所有采集信息); - 加载依赖
ZTIUtility.vbs,实例化工具对象oUtility; - 按固定顺序串行执行 8 大类采集函数;
- 每采集一项数据:
- 写入
oEnvironment全局变量; - 调用日志方法写入 BDD.log,标注采集来源(WMI / 注册表 / 磁盘);
- 写入
- 采集完成后持久化变量:写入本地
%TEMP%\DeployRoot\Variables.dat,后续所有部署脚本共享硬件 / 系统数据。
层级 2:ZTIUtility.vbs 底层封装层(核心中间件)
ZTIGather 不直接调用原生系统接口,全部通过工具类封装函数中转,屏蔽 WinPE / 完整系统环境差异:
- WMI 封装:
oUtility.QueryWMI(),自动连接root\cimv2、root\wmi、root\Microsoft\Windows\DeviceGuard等命名空间,统一处理 WMI 查询异常、空值、权限报错; - 注册表封装:
oUtility.RegRead(),兼容 WinPE 离线注册表 hive 挂载与在线系统注册表读取; - 文件 / 磁盘封装:磁盘分区、盘符、卷序列号、SSD/HDD 判断封装;
- 日志封装:
oUtility.Log(),统一日志格式、时间戳、分类标记(INFO/WARNING/ERROR); - 变量操作:读写全局部署环境变量,跨脚本数据共享。
层级 3:四大原生系统信息采集接口(数据来源底层)
(1)WMI Win32 类查询(90% 硬件信息来源)
脚本批量遍历标准 CIM/WMI 类,枚举硬件抽象层硬件数据:
- 系统基础:
Win32_ComputerSystem(内存、机型、制造商)、Win32_BIOS(BIOS 版本、序列号、出厂日期)、Win32_OperatingSystem; - 磁盘存储:
Win32_DiskDrive(硬盘型号、容量、SSD 识别、介质类型)、Win32_LogicalDisk、Win32_DiskPartition; - 网络:
Win32_NetworkAdapterConfiguration(MAC、IP、网关、DHCP 状态、网卡型号); - CPU:
Win32_Processor(核心数、线程、主频、CPU 型号); - 固件安全:
Win32_SecureBoot、Win32_Tpm(TPM 2.0 状态、安全启动开关); - 外设:
Win32_PnPEntity即插即用硬件枚举。
(2)离线 / 在线注册表读取
- WinPE 阶段:挂载目标磁盘
SOFTWARE/SYSTEM离线 hive,读取预装驱动信息、系统预设配置; - 系统部署完成后:在线读取
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,获取系统版本、安装日期、已注册产品 ID、补丁版本; - MDT 自身配置:读取
CustomSettings.ini预设变量,与采集硬件数据合并。
(3)磁盘底层接口(DeviceIoControl 封装)
通过工具类调用底层磁盘控制 API,绕过 WMI 限制获取精准存储信息:
- 硬盘唯一序列号、卷 GUID、分区类型(GPT/MBR)、ESP/MSR 分区识别;
- 判断固态硬盘、机械硬盘、NVMe/ SATA 介质区分;
- 读取磁盘总容量、可用空间,用于自动分区脚本自动计算分区大小。
(4)系统文件与环境变量读取
- 读取
c:\Windows\System32\winver.exe资源,提取操作系统完整版本号; - 读取系统环境变量、域环境变量,获取工作站域名、登录账户;
- 读取
setupapi.dev.log驱动安装日志,采集硬件驱动匹配状态。
层级 4:数据输出与持久化层
两类数据输出载体,同步生成:
- 内存全局环境对象 oEnvironment
所有采集字段存入键值对变量,例:
SerialNumber、Model、OSDComputerName、MacAddress、TotalRAM、IsSSD、TPMVersion;后续分区脚本、加域脚本、软件安装脚本、镜像捕获脚本直接读取变量,实现自动化命名、自动分区、资产台账录入。 - 持久化日志与变量文件
- 文本日志:
Bdd.log,每行携带时间戳、采集函数、原始 WMI 查询语句、原始返回值; - 变量缓存文件:
Variables.dat,二进制缓存硬件资产数据,部署重启后无需重新采集; - 可选:配合 SLShare 参数自动上传日志至服务器共享目录,统一资产审计。
- 文本日志:
三、分阶段采集核心逻辑
阶段 1:WinPE 预部署采集(裸机未装系统)
- 无目标系统注册表,仅依靠 WMI + 磁盘底层 API;
- 重点采集硬件资产:序列号、机型、CPU、内存、硬盘数量、MAC 地址、TPM、安全启动、分区表类型;
- 生成资产变量
%SerialNumber%,用于自动计算机命名OSDComputerName=PC-%SerialNumber%; - 识别磁盘介质(SSD/HDD),自动适配分区对齐、页面文件大小等参数。
阶段 2:目标 OS 安装完成后二次采集
- 加载本地系统注册表,读取系统版本、补丁、产品密钥、安装日期;
- 枚举已安装软件
Win32_Product,记录预装应用清单; - 读取域状态、本地管理员配置、网络配置;
- 补全资产台账完整信息,用于资产报表、终端基线校验。
四、关键底层核心机制
1. 异常容错机制(适配各类异构服务器 / 工控机)
- WMI 查询容错:单硬件类查询失败(老旧工控机无 TPM、无安全启动 WMI 类)自动捕获错误,写入警告日志,不中断整体采集流程;
- 空值填充:硬件读取无结果时自动填充
UNKNOWN,避免下游脚本变量空值报错; - 分命名空间重试:部分硬件信息仅存在
root\wmi,查询root\cimv2无数据自动切换命名空间重试。
2. 变量共享跨脚本通信机制
MDT 所有脚本(ZTIDiskpart.wsf、ZTIJoinDomain.wsf、LiteTouch.wsf)共用同一个
oEnvironment 全局对象:- ZTIGather 采集写入变量;
- 其他脚本直接读取,无重复硬件扫描,提升部署效率;
- 变量可写入
CustomSettings.ini覆盖预设值,实现硬件自适应配置。
3. 日志标准化底层逻辑
oUtility.Log() 统一日志格式,每条日志固定结构:
[时间] [日志级别] [采集函数名] 原始采集语句 | 采集结果
[2026-07-15 10:20:30] INFO ZTIGather:QueryWMI SELECT SerialNumber FROM Win32_BIOS | SerialNumber=SN78945612
4. 离线注册表 hive 挂载逻辑(WinPE 特有)
裸机部署时,目标系统分区无运行注册表,ZTIGather 通过工具类执行:
reg load HKLM\TARGET c:\Windows\System32\config\SYSTEM;- 读取离线系统配置;
- 采集完成自动
reg unload卸载 hive,避免注册表锁死。
五、典型采集变量对应底层数据源对照表
| 部署全局变量 | 底层采集来源 | 用途 |
|---|---|---|
| SerialNumber | Win32_BIOS.SerialNumber | 自动计算机命名、资产台账 |
| Model | Win32_ComputerSystem.Model | 硬件机型识别、驱动匹配 |
| MACAddress | Win32_NetworkAdapterConfiguration.MACAddress | 资产唯一标识、批量终端区分 |
| TotalRAM | Win32_PhysicalMemory 汇总计算 | 自动设置页面文件大小 |
| IsSSD | Win32_DiskDrive.MediaType=0 | 优化分区、关闭碎片整理 |
| TPMVersion | Win32_Tpm.SpecVersion | 判断 BitLocker 加密支持 |
| TimeZone | 注册表 HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation |
自动设置系统时区 |
| OSVersion | Win32_OperatingSystem.Version | 区分 Server / 桌面系统,适配角色安装 |
六、上下游脚本联动底层链路
plaintext
LiteTouch.wsf(部署主入口)
↓
ZTIGather.wsf(硬件/系统信息采集,填充全局变量oEnvironment)
↓
ZTIDiskpart.wsf(读取IsSSD/TotalRAM自动生成分区脚本)
ZTIWindowsSetup.wsf(读取OSVersion自动匹配系统镜像)
ZTIJoinDomain.wsf(读取SerialNumber/OSDComputerName完成加域命名)
ZTICleanup.wsf(二次采集,写入完整资产日志回传服务器SLShare)
七、运维 / 红蓝对抗延伸底层特性
- 取证价值:Bdd.log 完整记录所有 WMI 查询、注册表读取行为,可溯源部署时硬件、系统原始状态,用于终端资产审计、入侵溯源;
- 漏洞风险点:脚本依赖 WMI 无严格权限过滤,若任务序列存在恶意自定义脚本,可篡改
oEnvironment变量伪造硬件资产信息; - 性能底层逻辑:所有采集串行执行,老旧低速 RAID 服务器、工控机采集耗时会拉长部署前置等待时间,可注释无关 WMI 类缩短采集耗时。
ZTIGather.wsf 全维度应用场景汇总(企业运维 + 安全攻防 + 定制开发)
ZTIGather.wsf 是 MDT 部署流水线数据中枢,所有自动化逻辑、资产采集、安全校验、故障排查均依赖它输出的硬件 / 系统全局变量,场景分为六大类:批量自动化部署、IT 资产全生命周期管理、系统镜像捕获与标准化、安全基线与合规校验、运维排错取证、红蓝对抗风险场景,配套落地案例与底层数据逻辑。
一、场景 1:企业 PXE / 离线 U 盘全自动无交互批量部署(核心原生场景)
适用环境
园区办公 PC、机房工控机、机架式 Windows Server 2022/2019、云本地虚拟主机,大规模标准化装机。
落地能力与脚本作用
-
自动计算机命名(零人工输入)ZTIGather 采集
SerialNumber、MACAddress、主板型号变量,配合CustomSettings.ini规则自动生成主机名:iniOSDComputerName=SRV-%SerialNumber% OSDComputerName=PC-%MACAddress:~-6%流程:PXE 启动→WinPE 加载 ZTIGather 读取 BIOS 序列号→写入全局变量→后续分区 / 加域脚本直接读取,无需人工弹窗输入主机名。 -
硬件自适应智能分区(SSD/HDD/ 多磁盘自动适配)采集
IsSSD、TotalRAM、DiskType(GPT/MBR)、硬盘总容量变量,驱动 ZTIDiskpart.wsf 动态生成分区脚本:- SSD:关闭页面文件、4K 对齐、缩小恢复分区;
- 机械硬盘:自动分配内存 1.5 倍页面文件;
- UEFI 设备自动创建 ESP/MSR 分区,Legacy 仅单引导分区。
-
驱动集自动匹配,杜绝蓝屏采集
Model(主板机型)、CPU、网卡 VID/PID、RAID 卡型号,匹配 MDT 驱动配置集DriverSelectionProfile,仅加载对应硬件驱动,避免驱动冲突蓝屏。 -
全自动域 / 工作组分流部署
- 服务器:采集机型前缀自动走加域流程,读取
MachineObjectOU加入服务器 OU; - 办公 PC:自动加入工作站 OU;
- 工控隔离设备:识别工控主板型号,跳过加域,自动写入指定工作组。
- 服务器:采集机型前缀自动走加域流程,读取
-
底层时序WinPE 启动 → Bootstrap.ini 挂载共享 → 执行 ZTIGather 采集全量硬件变量 → 任务序列读取变量执行分区 / 驱动 / 系统安装 / 加域。
典型案例
制造业园区 2000 台办公 PC 批量装机,全程无人值守,依靠 ZTIGather 硬件数据实现自动命名、分区、驱动匹配,单批次部署人力缩减 90%。
二、场景 2:IT 资产自动化盘点与 CMDB 数据同步
核心价值
部署阶段一次性采集全维度硬件、系统、软件资产,自动入库,替代人工盘点、第三方扫描工具。
采集输出资产字段(全部存入 BDD.log+Variables.dat)
- 硬件资产:BIOS 序列号、整机型号、CPU 型号 / 核心数、内存总容量、硬盘数量 / 容量 / SSD 标识、MAC 地址、TPM 版本、BIOS 固件版本;
- 系统资产:OS 版本、安装日期、时区、语言、补丁清单、本地管理员状态;
- 网络资产:多网卡 MAC、IP 网段、网关、DHCP 状态;
- 安全资产:SecureBoot 开关、TPM 启用状态、BitLocker 就绪标识。
落地流程
- MDT 部署完成后 ZTIGather 二次采集完整资产数据;
- 配置
SLShare将 BDD.log 自动回传至服务器日志共享; - 编写解析脚本提取日志内资产字段,自动同步企业 CMDB / 资产台账;
- 支持区分物理机 / 虚拟机(采集虚拟机厂商 VMware/Hyper-V 标识),实现虚实资产分类统计。
适用行业
政企、医院、制造业机房、IDC 服务器机房,满足等保资产台账审计要求。
三、场景 3:系统母盘镜像捕获标准化(参考镜像制作)
业务需求
制作统一标准化 Windows Server/Win11 LTSC 母盘,过滤差异化硬件信息,封装通用镜像。
ZTIGather 核心作用
- 捕获前硬件校验
运行 ZTIGather 读取整机硬件信息,校验母盘基准硬件,避免使用特殊驱动硬件制作镜像;
- 差异化硬件信息清除标记
采集序列号、MAC 等唯一硬件标识,任务序列根据变量自动清理 Sysprep 封装时的硬件残留;
- 软件清单固化
二次采集阶段枚举
Win32_Product已预装软件清单,写入镜像说明文档,统一各批次母盘预装软件基线; - 镜像自动分类
采集 OS 版本变量,自动区分服务器镜像、桌面终端镜像,归档至 MDT 镜像库对应目录。
配套任务序列逻辑
CaptureOnly 捕获任务 → ZTIGather 采集硬件与软件清单 → Sysprep 封装 → 捕获 WIM 镜像 → 导出资产基线文档。
四、场景 4:终端安全基线自动化校验与合规部署(等保 / 安全运维)
ZTIGather 采集的固件、加密、系统变量,驱动任务序列自动执行安全合规加固,落地 CIS 基线、等保 2.0 要求。
细分安全子场景
- Win11 硬件合规拦截
采集
TPMVersion、TotalRAM、IsUEFI、SecureBootCapable,任务序列增加判断:- TPM<2.0 / 内存 < 4GB / 不支持安全启动 → 直接终止部署,弹窗拦截不满足 Win11 合规硬件;
- BitLocker 自动加密前置校验
读取
TPMReady、SecureBootEnabled变量,仅硬件达标设备自动执行 ZTIBde.wsf 全盘加密,不达标设备跳过并写入安全告警日志; - 服务器安全基线自动配置
根据
Model(服务器机型)变量自动安装防火墙规则、关闭高危端口、启用 LSA 保护、配置密码策略; - 虚拟化隔离基线区分
识别 Hyper-V/VMware 虚拟机,自动关闭物理机专属安全策略(如硬盘物理加密、硬件防火墙),避免基线冲突;
- 安全审计日志留存
所有 TPM、安全启动采集行为完整记录至 BDD.log,可提供给等保测评机构溯源终端安全硬件状态。
五、场景 5:MDT 部署故障排查、硬件兼容性取证(运维排错)
场景 1:装机蓝屏、驱动不兼容定位
- ZTIGather 完整日志记录 WMI 原始查询语句、硬件型号、VID/PID;
- 运维读取 BDD.log 中
Model、硬盘、网卡采集记录,快速定位缺失驱动的硬件; - 区分 SSD/NVMe/RAID 卡存储设备,排查磁盘识别失败、分区报错问题。
场景 2:部署变量异常、自动命名失效排查
- 日志输出
SerialNumber采集结果(UNKNOWN 代表主板无法读取序列号); - 查看 MACAddress 采集条目,排查多网卡识别错乱导致主机名重复;
- 读取
Variables.dat缓存文件,验证全局变量是否正常写入,定位脚本读取故障。
场景 3:离线工控机无网络部署取证
离线 U 盘部署无服务器日志回传,BDD.log 本地留存 ZTIGather 全部采集记录,后期插盘导出日志完成硬件资产、部署过程溯源。
场景 4:模拟部署测试(无需重装系统)
微软官方支持单独执行 ZTIGather 做采集模拟:
cmd
cscript ZTIGather.wsf
无需完整 PXE 部署流程,直接输出当前机器硬件变量,快速测试自定义规则、驱动匹配逻辑,大幅缩短 MDT 规则调试周期Microsoft ...。
六、场景 6:混合架构联动:MDT + SCCM/Intune 联动部署
数据互通逻辑
- ZTIGather 采集本地软硬件清单,导出匹配表;
- 联动 SCCM 软件清查数据库,根据采集到的预装软件自动推送缺失业务程序;
- 终端部署完成后,资产变量同步至 Intune,实现桌面设备统一云端基线管控Microsoft ...。
落地优势
一套采集数据源同时支撑本地 MDT 装机、云端终端管理,无需两套独立资产扫描工具。
七、风险对抗场景:红蓝对抗、恶意篡改检测(蓝队防御视角)
1. 恶意篡改部署变量风险检测
红队可自定义脚本 Hook / 覆盖 ZTIGather 输出的全局变量,伪造硬件序列号、跳过 TPM 安全校验、绕过 BitLocker 加密流程;
防御手段:比对 BDD.log 原始 WMI 采集日志与最终 Variables.dat 变量,发现不一致则判定篡改,触发安全告警。
2. 无文件后门植入溯源取证
MDT 部署是内网批量接入入口,若恶意脚本植入任务序列,ZTIGather 完整采集日志可作为数字证据:
- 记录每台终端接入时原始硬件标识;
- 完整留存部署全流程操作时序,溯源恶意终端入网时间、硬件资产,支撑入侵事件调查取证。
3. 恶意设备内网准入拦截
通过 ZTIGather 采集 MAC、主板序列号白名单,任务序列判断变量不在授权资产列表则终止部署,阻断外来未知硬件接入内网。
八、小众拓展场景
- 工控机专用固化部署
工业老旧无 UEFI 工控机,ZTIGather 兼容 Legacy MBR、老旧 WMI 硬件类,采集工控专用串口、采集卡硬件信息,适配产线自动化设备装机;
- 离线涉密隔离内网部署
无互联网、无域隔离涉密机房,U 盘离线部署,ZTIGather 本地完成全资产采集,日志离线留存,不产生任何网络传输,满足涉密网络规范;
- 镜像捕获批量差异化软件预装
根据 ZTIGather 读取的机型变量,自动匹配对应业务软件包:办公机装 Office,服务器装数据库 / 中间件,工控机组态软件,一套任务序列适配全品类终端。
九、各场景核心能力对照表
| 应用场景 | ZTIGather 核心输出变量 | 核心业务收益 |
|---|---|---|
| 全自动批量部署 | SerialNumber、Model、IsSSD、DiskType | 无人值守、自动分区 / 驱动 / 命名 |
| IT 资产 CMDB 盘点 | CPU、内存、硬盘、TPM、MAC、OS 版本 | 一次性采集完整资产,满足等保台账 |
| 母盘镜像捕获 | 软件清单、唯一硬件标识 | 标准化封装,清除硬件差异化信息 |
| 安全基线合规 | TPMVersion、SecureBoot、TotalRAM | 自动拦截不合规硬件、批量加密加固 |
| 部署故障排错 | WMI 原始查询、硬件 VID/PID、变量日志 | 快速定位驱动、分区、命名报错根源 |
| SCCM/Intune 联动 | 软件清单、整机硬件型号 | 统一资产数据源,混合云桌面管控 |
| 涉密 / 工控离线部署 | 本地完整日志、无网络采集 | 隔离内网合规装机、资产离线审计 |
| 红蓝对抗防御取证 | 全链路采集日志、原始硬件指纹 | 检测变量篡改、溯源恶意入网设备 |
ZTIGather.wsf 是 MDT (Microsoft Deployment Toolkit) 中的一个 VBScript 脚本,用于在部署过程中收集有关目标计算机硬件和软件环境的信息,并将这些信息记录在日志文件中。下面列出了一些常见的 ZTIGather.wsf 命令和其作用:
- /?: 显示帮助信息。
- /debug:true|false: 打开或关闭脚本调试模式。
- /bootsect: 指定系统分区上的引导扇区文件名。
- /imageminorversion: 设置镜像次要版本号。
- /imagetype: 设置镜像类型。
- /locale: 设置区域设置。
- /computername: 设置计算机名称。
- /osdcomputername: 将计算机名称写入环境变量 OSDComputerName 中。
- /build: 设置操作系统版本。
- /skipsidgen:true|false: 是否跳过安全标识符 (SID) 生成过程。
- /config: 指定 INI 文件,其中包含自定义配置信息。
- /mfg: 设置制造商。
- /model: 设置计算机型号。
- /serialnumber: 设置序列号。
- /uuid: 设置唯一的 Universally Unique Identifier (UUID)。
- /macaddress: 设置以逗号分隔的 MAC 地址列表。
- /ismobile:true|false: 设置计算机是否是移动设备。
- /keyboardlocale: 设置键盘区域设置。
- /timezone: 设置时区。
- /UserDataLocation: 指定存储用户数据的位置。
总之,通过 ZTIGather.wsf,管理员可以在部署过程中收集各种目标计算机的配置信息,并根据需要进行个性化配置和操作系统安装。这些命令提供了丰富的灵活性和扩展性,使得 MDT 部署规划和实施更加高效和便捷。
ZTIGather.wsf 全部启动参数完整示例、用法、场景说明
前置基础说明
- 执行载体:必须使用
cscript.exe运行(控制台模式,避免弹窗),不支持 wscript; - 运行权限:WinPE 环境 / 完整系统管理员 / SYSTEM 权限;
- 运行路径:默认在
DeploymentShare\Scripts\目录执行; - 参数优先级:命令行传入参数 > ZTIGather.xml 预设 > WMI 硬件原生采集值,传入参数会直接覆盖自动采集的硬件 / 系统变量,适合批量自定义、调试、伪造资产信息。
一、通用基础模板(带调试日志,运维调试首选)
1. 查看内置帮助文档 /?
cmd
cscript ZTIGather.wsf /?
作用:打印所有支持启动参数、参数释义、语法规范,快速查阅参数列表。
2. 开启完整调试模式 /debug:true
cmd
cscript ZTIGather.wsf /debug:true
- 效果:BDD.log 输出全量 WMI 查询堆栈、变量赋值过程、函数调用日志;
- 适用场景:排查硬件采集失败、变量不生效、自动命名异常。
3. 关闭调试日志(生产部署默认)
cmd
cscript ZTIGather.wsf /debug:false
二、硬件资产覆盖参数示例(强制覆盖 WMI 自动采集结果)
适用于:硬件 BIOS 无法读取序列号、工控机 WMI 失效、批量统一伪装资产标识、测试任务序列。
完整硬件自定义组合命令
cmd
cscript ZTIGather.wsf /debug:true ^
/mfg:"Dell Inc." ^
/model:"OptiPlex 7010" ^
/serialnumber:"SN20260715001" ^
/uuid:"12345678-ABCD-EFGH-1234-567890ABCDEF" ^
/macaddress:"00:11:22:33:44:55,AA:BB:CC:DD:EE:FF" ^
/ismobile:false
参数说明:
/mfg:制造商,覆盖Win32_ComputerSystem.Manufacturer;/model:机型,驱动匹配、资产台账核心变量;/serialnumber:BIOS 序列号,直接覆盖SerialNumber全局变量,用于OSDComputerName=PC-%SerialNumber%;/uuid:整机 UUID,唯一设备标识;/macaddress:多网卡 MAC 逗号分隔,覆盖网卡自动采集;/ismobile:true标记笔记本 / 平板,false代表台式机 / 服务器。
三、计算机命名相关参数(自动主机名强制赋值)
示例 1:直接指定本机计算机名
cmd
cscript ZTIGather.wsf /computername:"WG-SRV-005"
示例 2:写入部署全局变量 OSDComputerName(供分区 / 加域脚本读取,MDT 标准用法)
cmd
cscript ZTIGather.wsf /osdcomputername:"PC-SN20260001"
区别:/computername:仅修改系统本地计算机名;/osdcomputername:写入 MDT 内存环境变量OSDComputerName,整个部署流水线共用,推荐 MDT 自动化使用。
四、系统区域与时区本地化参数
cmd
cscript ZTIGather.wsf ^
/locale:"zh-CN" ^
/keyboardlocale:"zh-CN;en-US" ^
/timezone:"China Standard Time"
/locale:系统 UI 语言、用户区域;/keyboardlocale:多输入法布局,分号分隔;/timezone:标准时区名称,自动写入系统注册表时区配置。
五、操作系统版本、镜像控制参数(镜像捕获 / 自定义镜像部署)
cmd
cscript ZTIGather.wsf ^
/build:"10.0.20348" ^
/imagetype:"Windows Server 2022 Standard" ^
/imageminorversion:2
/build:系统内部版本号,覆盖Win32_OperatingSystem.Version;/imagetype:标记镜像类型(桌面 / 服务器 / Core 核心版);/imageminorversion:镜像次要版本号,镜像归档分类使用。
六、SID 生成、用户数据控制参数
1. 跳过 SID 生成(母盘捕获专用,Sysprep 场景)
cmd
cscript ZTIGather.wsf /skipsidgen:true
/skipsidgen:true:封装母盘时跳过 SID 重置,避免镜像内 SID 冲突;/skipsidgen:false:全新装机自动生成唯一 SID(默认值)。
2. 迁移用户数据路径(升级部署场景)
cmd
cscript ZTIGather.wsf /UserDataLocation:"D:\UserProfiles"
指定用户配置文件迁移存放分区,搭配用户数据迁移任务序列使用。
七、自定义配置文件加载 /config
可外置 ini 文件批量定义所有采集变量,无需超长命令行拼接参数
1. 自定义 config.ini 示例
ini
[Hardware]
Manufacturer=H3C
Model=H3C R4900 G5
SerialNumber=SRV2026001
IsMobile=false
[OS]
OSDComputerName=SRV-H3C-001
Locale=zh-CN
TimeZone=China Standard Time
SkipSIDGen=false
2. 加载自定义配置文件执行脚本
cmd
cscript ZTIGather.wsf /config:"D:\CustomConfig.ini" /debug:true
八、引导扇区参数 /bootsect(WinPE 分区修复、老旧 BIOS 设备)
cmd
cscript ZTIGather.wsf /bootsect:"bootmgr.exe"
指定系统分区引导程序文件名,Legacy MBR 老旧服务器修复引导分区专用,UEFI 环境极少使用。
九、完整综合生产示例(服务器全自动部署全套参数)
cmd
@echo off
cscript ZTIGather.wsf /debug:false ^
/config:"%DeployRoot%\Scripts\ServerCustom.ini" ^
/mfg:"H3C" ^
/model:"R4900 G5" ^
/serialnumber:"SRV-2026-0715-001" ^
/osdcomputername:"WG-SRV-%SerialNumber%" ^
/locale:"zh-CN" ^
/timezone:"China Standard Time" ^
/keyboardlocale:"zh-CN" ^
/ismobile:false ^
/skipsidgen:false ^
/imagetype:"Windows Server 2022 Standard" ^
/build:"10.0.20348"
十、离线测试专用示例(无需 PXE 部署,本地电脑模拟采集)
本地电脑直接执行,模拟自定义硬件资产,调试任务序列命名、分区规则:
cmd
cscript ZTIGather.wsf /debug:true ^
/model:"ThinkCentre M90t" ^
/serialnumber:"TEST-PC-0001" ^
/osdcomputername:"TEST-PC-%SerialNumber%"
十一、关键使用规则总结
- 参数覆盖优先级
命令行参数 > /config 配置文件 > ZTIGather.xml > WMI自动硬件采集 - 字符串带空格必须用英文双引号包裹;
- 多参数换行使用
^作为换行续行符(cmd 脚本); - 布尔参数仅支持
true / false小写; - 所有参数仅当前脚本执行周期生效,不持久写入 BIOS / 硬件,仅修改 MDT 内存环境变量;
- 红蓝对抗风险提示:红队可通过传入
/serialnumber/model篡改资产变量,绕过硬件白名单、TPM 合规校验规则。

浙公网安备 33010602011771号