Microsoft 部署工具包 (Microsoft Deployment Toolkit, MDT) 支持多种映像格式,你知道哪些?

Microsoft 部署工具包 (Microsoft Deployment Toolkit, MDT) 支持映像格式完整汇总(Microsoft Learn 官方标准)

MDT 依托 ADK DISM/Wimgapi 底层引擎,完整兼容 Windows 全系官方部署映像,分为源介质格式、系统部署映像、虚拟磁盘映像、闪存整盘映像、启动 / 离线介质五大类,同时区分「可导入工作台」「可捕获生成」「可部署落地」三种能力边界。

一、核心原生系统部署映像(MDT 最核心,全生命周期读写)

1. WIM (.wim) — Windows 标准文件型分区映像(全程支持)

官方定位:MDT 主力映像格式,唯一支持多索引分层、增量维护、挂载修改的格式Microsoft ...
  1. 导入场景:
    • 原版系统介质 install.wim、自定义捕获母盘 Capture.wim、LiteTouchPE_x64 boot.wim(WinPE 引导);
    • PowerShell 命令:Import-MDTOperatingSystem -SourceFile "xxx.wim"Microsoft ...
  2. 捕获能力:Sysprep&Capture 任务序列可直接将参考计算机分区捕获为 .wim
  3. 部署能力:标准客户端 / 服务器任务序列原生写入磁盘分区;
  4. 特性:单文件存储多版本系统、支持 LZMS 高压缩、可单独增删驱动 / 更新包、兼容 BIOS/UEFI 双固件。

2. ESD (.esd) — 高压缩分块 WIM(只读导入,不可捕获)

  1. 来源:Windows 更新、在线升级介质压缩映像,本质是加密分块 WIM;
  2. MDT 能力:仅支持导入部署,无法用于捕获参考机;不支持挂载离线修改;
  3. 限制:仅 Win10 1709+、Win11 配套 ADK 版本完整兼容,老旧 MDT 2013 不识别。

二、虚拟磁盘映像 VHD/VHDX(虚拟机 / 本机 VHD 启动专用)

.vhd/.vhdx 扇区级虚拟硬盘

  1. 导入:可将现成 VHD/VHDX 导入 MDT 操作系统库;
  2. 专属任务序列模板:Deploy to VHD Client / Deploy to VHD Server,直接把系统部署写入虚拟磁盘文件Microsoft ...;
  3. 应用场景:Hyper-V 虚拟机批量部署、本机 VHD 双系统启动;
  4. 底层特性:扇区快照存储,无内置压缩,完整保留全分区结构(ESP/MSR/ 数据分区一体)Microsoft ...。

三、整盘闪存映像 FFU (.ffu)(Win10 1903+ 工业批量出厂)

  1. 底层:基于磁盘扇区,一次性捕获整块硬盘所有分区(ESP、恢复分区、系统盘全部打包)Microsoft ...;
  2. MDT 支持边界:
    • 部署阶段可应用 FFU 映像到目标磁盘;
    • MDT 原生任务序列不支持直接捕获 FFU,需配合 DISM 手动生成后导入;
  3. 适用:工厂批量装机、工控机标准化整盘复刻;
  4. 限制:未优化 FFU 要求目标磁盘容量≥源盘,优化版 FFU 支持自动收缩扩展分区。

四、ISO 镜像(源介质 / 离线启动介质,分两类用途)

1. Windows 原版安装 ISO(导入操作系统源)

MDT 导入操作系统向导第一项「Full set of source files」,直接挂载 ISO 提取内部 sources/install.wim 完整源文件,用于制作参考母盘CSDN博...;
 
支持 Win7~Win11、Server2008R2~2022 全系原版 ISO。

2. MDT 离线部署介质 ISO(生成输出,不可导入)

两类 ISO 由 MDT 生成,用于无网络离线部署:
  1. LiteTouchPE 启动 ISO:更新部署共享时生成,U 盘 / DVD 离线引导进入部署向导;
  2. Discover ISO(发现映像):用于无法 PXE 联网的裸机,内置网络驱动自动连接 MDT 部署共享;
  3. 完整离线介质 ISO:打包整套部署共享、驱动、任务序列,离线全流程装机。

五、WinPE 引导映像(Boot.wim,MDT 自动生成维护)

后缀 .wim 特殊分类(启动映像,非系统安装映像)
  1. 自动生成:执行 Update Deployment Share 自动编译 LiteTouchPE_x86.wim / LiteTouchPE_x64.wim
  2. 联动 WDS:通过 wdsutil 导入作为 PXE 网络引导镜像;
  3. 自定义:可注入网卡 / 存储驱动、DaRT 恢复工具包、脚本扩展。

六、配套辅助介质 / 归档格式(MDT 配套链路使用)

  1. .cab/.msu:系统更新包、语言包,MDT Packages 库批量导入,离线注入 WIM 映像;
  2. .xml:Unattend 无人应答文件,绑定镜像 / 任务序列实现零交互部署;
  3. 磁盘原始 img:仅底层 DISM 兼容,MDT 工作台无原生导入向导,极少企业使用。

七、各格式能力对比速查表(Microsoft Learn 官方口径)

映像格式 导入 MDT 工作台 MDT 任务序列捕获 任务序列部署落地 核心适用场景
WIM (.wim) ✅ 完全支持 ✅ 原生捕获 ✅ 标准部署 企业批量桌面 / 服务器、母盘标准化
ESD (.esd) ✅ 只读导入 ❌ 不可捕获 ✅ 部署 Windows 在线升级介质
VHD/VHDX ✅ 导入现有 ❌ 不原生捕获 ✅ VHD 专属模板 Hyper-V 虚拟机、本机 VHD 启动
FFU (.ffu) ✅ 导入部署 ❌ 需 DISM 外部捕获 ✅ 整盘写入 工厂 / 工控整机批量复刻
ISO(原版系统) ✅ 提取源文件 ❌ 仅源介质 ❌ 不能直接部署 导入原始系统安装源
ISO(LiteTouch 启动) ❌ 仅输出生成 ✅ 离线引导 U 盘离线无网络部署

八、版本演进补充(MDT 各版本格式支持新增节点)

  1. MDT 2013 及更早:仅支持 WIM、原版 ISO、VHD 初代;无 FFU、VHDX 完整支持;
  2. MDT 8443(Win10 配套):新增 FFU 部署支持、VHDX 完整适配、ESD 导入兼容;
  3. MDT 8456(现行稳定版,适配 Win11/Server2022):完善优化型 FFU 自动分区扩展逻辑,加固 WIM 哈希校验防篡改,封堵恶意映像导入攻击面。

九、红蓝对抗 / 运维关键边界说明

  1. MDT 仅作为映像调度 / 部署载体,底层解析完全依赖系统 DISM/Wimgapi;恶意后门 WIM、篡改 Boot.wim 可通过任务序列批量下发内网裸机;
  2. 蓝队防御要点:监控 MDT 导入自定义.wim/.ffu 行为,校验映像 SHA256 哈希,限制低权限账号导入外部映像;
  3. 无文件持久化关联:捕获自定义 WIM 可内嵌 ZTIGather、恶意脚本,开机部署自动植入后门。

Microsoft 部署工具包 (Microsoft Deployment Toolkit, MDT) 支持多种映像格式,包括但不限于以下几种:

  1. Windows 映像 (.wim) 格式:Windows 映像 (.wim) 格式是用于部署和安装 Windows 操作系统的标准映像格式。 MDT 能够捕获、验证和部署 Windows 映像。

  2. Virtual Hard Disk (.vhd/.vhdx) 格式:Virtual Hard Disk (.vhd/.vhdx) 格式是一种虚拟机硬盘格式,可与 Microsoft Hyper-V 和其他虚拟化软件一起使用。在 MDT 中,您可以捕获和部署 .vhd 或 .vhdx 映像,并创建适合 Hyper-V 的启动映像文件。

  3. Discover Image (.iso) 格式: Discover Image(.iso) 是 MDT 用于部署无法通过 PXE 访问网络介质计算机时使用的自引导 ISO 映像。部署工具包允许你将驱动程序添加到发现映像以支持广泛的硬件配置,从而实现更全面的特性匹配能力。

  4. 加压缩映像 (.cab, .zip, .7z, .rar) 格式: 使用 MDT,你可以解压缩常规的压缩映像文件,并将其转换为 Windows 映像格式进行后续部署。

  5. Raw Image (.img) 格式:Raw Image (.img) 格式是一种基本存储映像格式,其用途广泛且易于转换为其他格式。MDT 支持使用此格式的映像文件。

  6. Sysprep Image (.inf/.sys/.dll) 格式:Sysprep Image (.inf / .sys / .dll) 格式是 Windows 操作系统自带的映像格式。MDT 可以将此格式的操作系统映像部署到目标计算机中。

  7. Capture Image (.wim/.esd) 格 式:Capture Image (.wim / .esd) 格式是可以捕获和保存 WinPE 和 Windows 操作系统所在卷的映像格式,您可以将其复制到服务器或其他位置以进行部署。


MDT Rules 规则完整详解(CustomSettings.ini 规则体系)

MDT 中俗称的 Rules(规则文件),物理文件就是 DeploymentShare\Control\CustomSettings.ini,是整套部署自动化的核心决策引擎;规则依靠优先级分段、内置属性、条件覆盖、全局变量传递实现无人值守、差异化装机,所有脚本(ZTIGather、ZTIDiskpart、ZTIJoinDomain 等)都会读取规则内变量执行逻辑。

一、Rules 文件核心头部固定语法([Settings] 全局控制块)

文件最顶部 [Settings] 是规则调度中枢,两个核心关键字:
  1. Priority:规则分段执行顺序,从前到后依次加载,靠后分段变量覆盖前面同名变量
  2. Properties:自定义扩展变量声明,可被任务序列、WMI 筛选、脚本读取
示例标准头部:
ini
[Settings]
# 执行顺序:默认全局 → 工作组设备 → 服务器机型 → BitLocker加密规则
Priority=Default,WorkGroup,ServerHardware,BitLockerRule
# 自定义扩展变量,全部署流程可用
Properties=IsSSD,DeviceType,LocalAdminPwd,SkipBitlockerCheck

执行逻辑

  1. 先加载 [Default] 所有键值;
  2. 再加载 [WorkGroup],相同参数直接覆盖 Default;
  3. 依次向下叠加,最后一段优先级最高。

二、规则分段三大分类

1. 基础通用分段(固定业务场景)

  • [Default]:兜底全局规则,所有设备默认基线
  • [DomainJoin]:域环境自动加域规则
  • [WorkGroup]:无域工作组规则
  • [BitLocker]:磁盘加密合规规则
  • [WSUS]:系统补丁更新规则

2. 硬件差异化分段(ZTIGather 硬件采集匹配)

依靠 ZTIGather 采集的硬件变量做区分,实现同一套部署共享区分台式机 / 笔记本 / 服务器 / 虚拟机:
 
匹配依据:ModelManufacturerIsMobileIsVMTotalRAMIsSSD
 
示例分段 [DellOpti][H3CServer][VMware]

3. 自定义条件分段(WMI 动态规则)

通过 [WMI] 子段、WQL 查询动态匹配设备,满足条件则加载本段规则,实现精细化过滤。

三、核心规则功能模块 + 完整示例

模块 1:界面弹窗跳过规则(全自动无交互核心)

控制部署向导所有弹窗是否弹出,全部设 YES 实现零人工干预
ini
[Default]
SkipBDDWelcome=YES
SkipTaskSequence=YES
SkipCapture=YES
SkipAdminPassword=NO
SkipProductKey=YES
SkipComputerName=YES
SkipDomainMembership=YES
SkipLocaleSelection=YES
SkipTimeZone=YES
SkipBitLocker=YES
SkipSummary=YES
SkipUserData=YES

模块 2:计算机自动命名规则(联动 ZTIGather 采集变量)

利用 ZTIGather 采集的 SerialNumber / MACAddress 自动生成主机名
ini
[Default]
# 台式机:PC-序列号
OSDComputerName=PC-%SerialNumber%
# 截取MAC后6位做主机名
;OSDComputerName=PC-%MACAddress:~-6%

模块 3:工作组 / 域双分支规则(优先级覆盖演示)

ini
[Settings]
Priority=Default,WorkGroup,DomainJoin

[Default]
SkipDomainMembership=YES

# 无域设备覆盖:切换工作组模式
[WorkGroup]
SkipDomainMembership=YES
JoinWorkgroup=OFFICE_WORKGROUP

# 服务器设备覆盖:自动加入AD域
[DomainJoin]
SkipDomainMembership=NO
JoinDomain=corp.company.com
DomainAdmin=DeployJoin
DomainAdminPassword=EncryptPwd123
MachineObjectOU=OU=Servers,DC=corp,DC=company,DC=com

模块 4:磁盘分区自适应规则(SSD / 机械盘、GPT/MBR)

ini
[Default]
DiskType=GPT
DoNotCreateExtraPartition=YES

# SSD设备差异化规则
[SSD_Disk]
Priority=Default,SSD_Disk
IsSSD=TRUE
# SSD关闭页面文件、关闭休眠
DisableHibernation=YES
PageFileSize=0

模块 5:硬件差异化规则(服务器 vs 办公 PC)

ini
[Settings]
Priority=Default,ServerHardware

[Default]
# 办公机默认规则
Roles=
RemoveWindowsStore=YES

# 匹配服务器机型,自动安装服务器角色
[ServerHardware]
Model=*R4900*
RemoveWindowsStore=NO
Roles=File-Services,Print-Server
OSDComputerName=SRV-%SerialNumber%

模块 6:BitLocker 安全加密规则(安全基线规则)

ini
[BitLockerRule]
SkipBitLocker=NO
BDEInstallSuppress=NO
BDEBackupToActiveDirectory=YES
BDEEncryptionMethod=XTS_AES_256

模块 7:WMI 动态条件规则(高级过滤)

语法:[WMI_自定义名],配合 WMIQuery 匹配硬件,匹配成功则加载本段
ini
# 仅内存大于8G设备启用大页面文件
[WMI_HighRAM]
WMIQuery=Select TotalPhysicalMemory from Win32_ComputerSystem where TotalPhysicalMemory > 8388608000
PageFileSize=8192

四、Rules 变量传递底层原理

  1. WinPE 启动读取 Bootstrap.ini 连接部署共享;
  2. 加载 CustomSettings.ini,按 Priority 顺序合并所有分段变量存入全局 oEnvironment 对象;
  3. 执行 ZTIGather.wsf 采集硬件信息,硬件采集变量优先级高于 Rules 静态配置,会覆盖 Rules 内同名值;
  4. 后续所有脚本、任务序列步骤读取 oEnvironment 变量执行逻辑;
  5. 变量会写入 Variables.dat 持久缓存,部署重启不丢失。

变量覆盖优先级(从低到高)

Rules[Default] < 普通分段 < WMI 条件分段 < Bootstrap.ini 参数 < ZTIGather 硬件采集值 < 任务序列手动设置变量

五、Rules 两种生效修改方式

  1. 即时生效:直接编辑 CustomSettings.ini 保存,无需更新部署共享,下一次部署直接加载新规则;
  2. 配套 Bootstrap 修改:若修改 Bootstrap.ini,必须执行「Update Deployment Share」重新生成 LiteTouchPE 镜像。

六、Rules 与 Bootstrap.ini 规则边界区分

  1. Bootstrap.ini:仅 PE 网络连通、共享账号、预加载任务序列,无分层规则、无硬件差异化逻辑
  2. CustomSettings.ini (Rules):完整分层优先级、硬件匹配、系统配置、加域、加密、分区、命名全套自动化规则。

七、红蓝对抗安全风险(Rules 安全加固要点)

  1. 风险 1:明文存储域管理员、本地管理员密码
     
    加固:使用 MDT 工具加密字符串,限制 Control 目录 NTFS 只读权限;
  2. 风险 2:恶意新增分段跳转恶意任务序列
     
    防御:监控 CustomSettings.ini 文件变更告警,定期基线对比;
  3. 风险 3:修改 SkipBitLocker=YES 绕过终端加密基线;
  4. 风险 4:篡改 DomainJoin/WorkGroup 分段,将设备加入攻击者恶意域。

八、常用运维调试规则参数

ini
# 开启完整调试日志
Debug=TRUE
DebugPassword=Debug@2026
# 输出详细WMI、变量采集日志
SLShareDynamicLogging=YES
SLShare=\\MDT-SRV\Logs$
# 允许F8调出PE命令行排错
SkipF8=NO

MDT Rules规则是Microsoft Deployment Toolkit(MDT)中使用的一种配置文件,用于自定义和控制部署过程中的行为和任务。通过编写规则,可以实现自动化的部署操作和根据需求进行定制化配置。

MDT Rules规则使用INI格式的文本文件来定义,其主要作用是在部署过程中根据条件执行特定的操作。规则文件包含了各种配置选项和设置,如计算机名称、应用程序安装选项、驱动程序选择等。

规则文件由多个sections组成,每个section中包含多个properties和settings。其中,properties定义了规则的名称和值,而settings则决定了规则的执行流程和条件。

通过编写规则,可以实现以下功能:

  • 自定义计算机名称:根据预设条件自动生成计算机名称。
  • 应用程序选择:根据规则定义,自动选择要安装的应用程序。
  • 驱动程序管理:根据硬件信息,自动选择适配的驱动程序进行安装。
  • 设置组织信息:自动填充组织信息,如公司名称、部门等。
  • 配置网络设置:根据网络环境自动配置IP地址、网关等网络参数。

编写规则需要具备一定的脚本编写和逻辑思维能力。同时,MDT还提供了日志记录和调试工具,方便用户调试和验证规则的正确性和可靠性。

MDT Rules规则是一种强大的工具,能够实现部署过程的自动化和定制化,提高部署效率和准确性。

MDT 两大核心配置文件:Bootstrap.ini + CustomSettings.ini 完整体系详解

一、文件基础定位与运行时序区分

1. Bootstrap.ini

生效环境:仅 WinPE 预部署阶段(PXE/U 盘启动进入 LiteTouch PE 时加载)
 
存放路径:DeploymentShare\Boot\x64\x86,更新部署共享时打包进 LiteTouchPE.wim
 
核心作用:
 
WinPE 无本地系统、无注册表、无全局部署变量,此文件只负责打通网络、连接 MDT 部署共享,提供认证信息、基础 PE 行为控制;
 
系统安装进入本地硬盘后,该文件不再生效。

2. CustomSettings.ini

生效环境:WinPE + 目标操作系统双阶段全程加载
 
存放路径:DeploymentShare\Control\CustomSettings.ini,全局永久配置
 
核心作用:
 
部署全流程自动化控制,定义资产采集、分区规则、计算机命名、加域 / 工作组、时区、软件安装、BitLocker、跳过弹窗、WSUS、日志上传等全部业务逻辑,ZTIGather.wsf、ZTIDiskpart.wsf、ZTIJoinDomain.wsf 所有脚本均读取此文件变量。

执行时序

  1. PXE/U 盘启动 → 加载 LiteTouchPE.wim → 读取 Bootstrap.ini
     
    → 挂载 \\MDT-SRV\DeploymentShare$、完成账号认证
  2. 共享挂载成功 → 加载共享内 Control\CustomSettings.ini
     
    → ZTIGather.wsf 采集硬件、读取自定义变量
  3. 执行分区、系统安装、软件、加域等全流程

二、Bootstrap.ini 核心组成与关键字段(仅 PE 网络连通层)

固定顶层节点 [Settings],无多优先级分段

  1. 共享与认证(最核心,工作组 / 域区分)
ini
DeployRoot=\\192.168.1.100\DeploymentShare$
; 域环境 UserDomain=域名
; 工作组 UserDomain=MDT服务器本机计算机名
UserID=MDT_Deploy
UserDomain=MDT01-SRV
UserPassword=xxx/AES加密串
  1. 网络容错(老旧网卡、DHCP 故障适配)
ini
DHCPTimeout=90
NetworkRetryCount=15
NetworkRetryDelay=2
  1. 界面与调试控制
ini
SkipBDDWelcome=YES       ; 跳过PE欢迎界面
SkipTaskSequence=YES     ; 自动执行指定任务序列,无需手动选
TaskSequenceID=TS_Win11_WG_AUTO
SkipF8=NO                ; 是否屏蔽F8调试命令行
DebugPassword=Debug@2026
  1. 日志、驱动、本地化
ini
SLShare=\\192.168.1.100\MDT_Logs$
SLShareDynamicLogging=YES
UILanguage=zh-CN
KeyboardLocale=zh-CN
DriverSelectionProfile=Universal_Driver
DoNotCreateExtraPartition=YES
  1. 离线 U 盘特殊修改
     
    离线介质需注释 UserID/UserDomain/UserPassword,DeployRoot 修改为本地 U 盘盘符。

Bootstrap.ini 能力边界

  1. 不能定义分区、计算机名、加域、时区、软件安装;
  2. 无法控制系统安装后的行为;
  3. 仅在内存 PE 环境生效,不写入目标系统。

三、CustomSettings.ini 完整分层架构(多优先级 + 全业务控制)

文件采用 [Settings] 定义优先级,多段配置分层匹配设备,格式:
ini
[Settings]
Priority=Default,WorkGroup,BitLocker,WSUS
Properties=OSDType,IsWorkGroup,BDEBackupAD
  • Priority:从上至下依次读取配置,靠后段覆盖前段同名参数;
  • Properties:声明自定义扩展变量,供任务序列、脚本调用。

主流分段模块说明

  1. [Default] 全局基础段(所有设备通用基线)
     
    全流程弹窗跳过、硬件命名、时区、磁盘分区模板、管理员密码、基础系统优化。
     
    核心字段:
    ini
    SkipCapture=YES
    SkipAdminPassword=NO
    SkipProductKey=YES
    SkipComputerName=NO
    OSDComputerName=PC-%SerialNumber%
    TimeZone=China Standard Time
    DiskType=GPT
    SkipLocaleSelection=YES
    SkipTimeZone=YES
    SkipSummary=YES
    AdminPassword=Local@2026
  2. [WorkGroup] 无域工作组专属分段
     
    覆盖加域逻辑,强制走工作组模式:
    ini
    SkipDomainMembership=YES
    JoinWorkgroup=OFFICE_WG
  3. [DomainJoin] 域环境分段
     
    自动加域、指定 OU、域管理员账号:
    ini
    SkipDomainMembership=NO
    JoinDomain=corp.local
    DomainAdmin=JoinSvc
    DomainAdminPassword=Join@2026
    MachineObjectOU=OU=Workstations,DC=corp,DC=local
  4. [BitLocker] 加密合规分段
     
    控制全盘自动加密、密钥备份 AD、加密算法:
    ini
    SkipBitLocker=NO
    BDEInstallSuppress=NO
    BDEBackupToActiveDirectory=YES
    BDEEncryptionMethod=XTS_AES_256
  5. [WSUS] 系统更新分段
     
    对接内网 WSUS 服务器,离线部署可置空关闭:
    ini
    WSUSServer=http://192.168.1.101:8530
    WSUSOfflineEnable=YES
  6. 扩展自定义分段
     
    可按机型、CPU 架构、虚拟机 / 物理机新增分段,如 [VMware][ServerR4900],实现硬件差异化部署规则。

CustomSettings.ini 独有核心能力(Bootstrap 完全不具备)

  1. 磁盘分区自动规则(GPT/MBR、ESP/MSR、分区大小、SSD 适配);
  2. 计算机自动命名(读取 ZTIGather 采集 SerialNumber/MACAddress);
  3. 域 / 工作组两套分支逻辑自动切换;
  4. BitLocker、系统时区、输入法、本地管理员密码统一管控;
  5. 系统角色、预装软件、页面文件、休眠、商店卸载等系统优化;
  6. WSUS 补丁、日志、资产采集、镜像捕获全套控制;
  7. 多优先级分层,不同设备差异化部署策略。

四、两份配置文件核心差异对照表

维度 Bootstrap.ini CustomSettings.ini
生效阶段 仅 WinPE 启动阶段 WinPE + 系统安装全程
核心职责 打通网络、认证 MDT 共享、PE 基础行为 全自动化部署业务逻辑、硬件适配、系统配置
网络账号 存放 MDT 共享访问账号密码 存放域加入账号密码,不控制共享连接
分区 / 命名 / 加域 不支持定义 完整支持
分层多配置段 仅单一 [Settings],无多优先级 支持多分段 + 优先级覆盖,差异化部署
持久化 仅在 PE 内存临时生效 变量写入部署缓存,全程所有脚本读取
修改生效条件 修改后必须更新部署共享,重制 PE 镜像 保存立即生效,无需重建 PE
适用场景 PXE / 离线 U 盘网络连通控制 企业标准化装机、资产、安全基线统一管控

五、联动配合完整工作流程

  1. 设备 PXE 启动,加载 LiteTouchPE.wim,读取 Bootstrap.ini;
  2. 使用账号挂载 MDT 部署共享,网络连通成功;
  3. 加载共享内 CustomSettings.ini,初始化全局变量;
  4. 执行 ZTIGather.wsf 采集硬件信息,覆盖配置内预设变量;
  5. 读取分区、计算机名、工作组 / 域、BitLocker 等规则,全自动完成系统部署。

六、红蓝对抗安全视角补充

  1. Bootstrap.ini 存储共享访问账号,建议使用 AES 加密字符串,禁止明文密码;
  2. CustomSettings.ini 存储域管理员明文,生产环境严格限制 NTFS 读取权限,防止窃取加域权限;
  3. 恶意修改两份配置可实现后门植入:
    • 修改 Bootstrap.ini 指向攻击者恶意部署共享;
    • 修改 CustomSettings.ini 注入恶意任务序列、后门脚本、绕过 BitLocker / 硬件白名单校验。

MDT配置文件包括了更多的部分,其中两个重要的部分是CustomSettings.iniBootstrap.ini。这两个文件在MDT中扮演了不同的角色和功能。

  1. CustomSettings.ini:

    • CustomSettings.ini是MDT中最常用和最重要的配置文件之一。
    • 它用于定义和配置部署过程中的各种设置和选项。
    • 可以在CustomSettings.ini中指定诸如计算机名称、应用程序安装选项、驱动程序选择、网络设置等信息。
    • 通过编辑CustomSettings.ini,可以根据自己的需求对部署过程进行高度定制和灵活配置。
  2. Bootstrap.ini:

    • Bootstrap.ini是MDT中的另一个重要配置文件,用于启动和初始化部署环境。
    • 它主要用于配置引导(bootstrap)阶段的设置,包括网络设置、认证信息、部署服务器地址等。
    • Bootstrap.ini通常用于配置部署服务器的连接信息和身份验证,以便在部署过程中正确连接和访问部署服务器。

除了CustomSettings.ini和Bootstrap.ini之外,还有其他配置文件和资源文件,如Task Sequence配置文件(.xml)、驱动程序文件夹、应用程序安装脚本等,这些文件也对部署过程起到重要的作用。


MDT中的任务序列(Task Sequence)配置文件通常采用XML格式,用于定义部署过程中的各个阶段和任务。任务序列是MDT中用于指导和控制部署过程的核心概念之一,它包含了一系列操作和步骤,以确保系统能够按照预期进行部署和配置。

任务序列配置文件(.xml)包含了以下信息:

  1. 任务序列的基本信息:包括任务序列的名称、描述、唯一标识符等元数据信息。

  2. 部署阶段(Deployment Phases):定义了部署过程中的不同阶段,如安装操作系统、应用程序、驱动程序、设置用户账户等。

  3. 任务(Tasks):每个部署阶段都包含了多个任务,这些任务定义了具体要执行的操作,如运行脚本、安装应用程序、设置网络连接等。

  4. 任务之间的关系和依赖:任务序列中的任务通常是有序执行的,因此需要定义它们之间的依赖关系和执行顺序。

  5. 条件和规则:可以根据条件和规则来控制任务序列中任务的执行,以实现定制化的部署流程。

通过编辑任务序列配置文件,可以实现以下功能:

  • 自定义部署流程:根据需求定义不同的部署阶段和任务,以满足特定的部署需求。
  • 应用程序和驱动程序管理:指定要安装的应用程序和驱动程序,以及它们的安装顺序和条件。
  • 用户设置和配置:设置用户账户、网络连接、时间和区域设置等系统配置信息。
  • 脚本和自定义操作:执行自定义脚本和操作,以实现特定的部署逻辑和功能。

需要注意的是,任务序列配置文件通常是由MDT自动生成和管理的,用户可以通过MDT的图形界面或命令行工具进行编辑和配置。


MDT 任务序列(Task Sequence)完整配置文件底层详解

一、基础定位、存储路径与文件格式

1. 物理文件位置

MDT 部署共享路径:
 
DeploymentShare\Control\<任务序列ID>\ts.xml
  • 每个任务序列独立文件夹,文件夹名称为任务序列唯一 TSID
  • 配套附属文件:unattend.xml(本任务序列专属无人应答文件)、script 自定义脚本目录、变量覆盖 ini。

2. 文件本质

ts.xmlWMI/MDT 专属结构化 XML,由 MDT 工作台图形编辑器生成 / 修改,底层由 LiteTouch.wsf 解析执行,全程不依赖批处理,全部节点映射为部署动作步骤。

3. 核心依赖组件

  1. 解析引擎:ZTIUtility.vbs 内置 XML 读取函数;
  2. 变量联动:读取 CustomSettings.ini(Rules)Bootstrap.iniZTIGather.wsf 硬件采集变量;
  3. 执行载体:WinPE / 目标系统双环境分段执行。

二、ts.xml 顶层 XML 分层架构

xml
<tasksequence>
  <!-- 1. 全局元数据:任务序列ID、名称、类型、注释、默认变量 -->
  <metadata>
  </metadata>

  <!-- 2. 前置全局变量:覆盖Rules规则,优先级最高 -->
  <variables>
    <variable name="OSDComputerName" value="PC-DEFAULT"/>
  </variables>

  <!-- 3. 执行分组(分阶段容器,可折叠、启用/禁用) -->
  <group name="预部署硬件采集" disable="false">
    <step>单一步骤动作(分区、安装系统、驱动、软件、加域等)</step>
    <condition>步骤执行条件,WMI/变量判断</condition>
  </group>

  <!-- 4. 后置操作、清理、日志回传分组 -->
  <group name="部署收尾">
  </group>
</tasksequence>

四大核心顶层节点说明

  1. <metadata>
     
    存储任务序列基础属性:ID、名称、描述、镜像关联路径、任务序列类型(标准部署 / 捕获镜像 / VHD 部署 / 发现镜像)、创建修改时间。
  2. <variables>
     
    任务序列私有变量,优先级高于 CustomSettings.ini 全局 Rules,可覆盖计算机名、工作组、管理员密码、WSUS 地址等所有规则参数。
  3. <group> 步骤分组
     
    逻辑容器,支持统一启用 / 禁用、设置分组执行条件,用于区分「WinPE 阶段操作」「系统内安装操作」。
  4. <step> 最小执行单元
     
    对应图形界面每一条操作(格式化磁盘、应用操作系统、注入驱动、运行脚本、安装软件、加入域等);
     
    每个 step 可独立配置 <condition> 条件判断,满足才执行。
  5. <condition> 条件判断分支
     
    支持两类判断:变量值判断、WQL 硬件查询判断,实现差异化执行逻辑(服务器装角色、虚拟机跳过硬件加密等)。

三、任务序列三大类型(XML 元数据区分)

1. Standard Client Task Sequence 标准客户端部署(最常用)

用于全新安装 Win10/Win11 桌面系统,分两大执行阶段:
  1. WinPE 阶段(磁盘分区、应用镜像、注入驱动)
  2. 目标系统离线阶段(应答文件、系统配置、软件安装、加域、BitLocker)

2. Capture Image Task Sequence 镜像捕获任务序列

用于母盘封装 Sysprep 并捕获 WIM 镜像,内置 Sysprep 通用化、重启捕获步骤,不会执行加域、软件安装等终端配置动作。

3. Deploy to VHD Task Sequence 虚拟磁盘部署

所有系统写入本地 VHD/VHDX 虚拟磁盘文件,适配 Hyper-V 物理机双启动场景,分区步骤固定虚拟磁盘逻辑。

四、标准客户端任务序列内置默认分组与对应 XML 步骤

分组 1:Initialization 初始化(WinPE 最先执行)

  1. Gather local only(本地采集)
     
    对应调用 ZTIGather.wsf,采集当前 PE 硬件基础信息,填充全局变量;
  2. Validate(硬件校验)
     
    读取 ZTIGather 变量,判断内存、TPM、安全启动,不满足 Win11 硬件条件则终止部署;
  3. Copy Scripts(复制全套 ZTI 部署脚本到本地内存)

分组 2: Disk Configuration 磁盘分区(ZTIDiskpart 底层驱动)

  • Step:Format and Partition Disk
     
    读取 Rules / 任务序列变量 DiskType、OSDPartitions、IsSSD,自动生成 diskpart 脚本执行分区;
     
    条件判断:UEFI/GPT 自动创建 ESP/MSR 分区,Legacy MBR 仅单引导分区。

分组 3: Install Operating System 应用系统镜像

  1. Restore User State(可选,USMT 用户数据迁移)
  2. Apply Operating System Image
     
    读取关联 WIM 镜像索引,DISM 底层解压系统到 C 盘;
  3. Apply Windows PE Unattend
     
    PE 阶段临时应答文件;
  4. Apply Drivers(驱动注入)
     
    根据 Model 机型变量匹配驱动集,离线注入系统分区。

分组 4: Post OS Installation 系统离线配置(第一次重启后)

  1. Apply Local Unattend.xml
     
    加载本任务序列专属 unattend.xml,设置时区、内置管理员、区域语言;
  2. Gather(二次完整采集,系统内执行 ZTIGather.wsf,采集软件、补丁、域信息)
  3. Install Features / Roles(服务器专属,条件判断 Model = 服务器才执行)
  4. Install Applications 批量软件静默安装(按分组启用 / 禁用)
  5. Windows Update (Offline) 离线导入 MSU 补丁
  6. Windows Update (Online) 对接 WSUS 在线打补丁

分组 5: State Restore 状态恢复 / 安全配置收尾

  1. Join Domain or Workgroup(读取 Rules 变量自动分支)
    • SkipDomainMembership=TRUE → 加入工作组
    • FALSE → 执行 ZTIJoinDomain.wsf 自动 AD 加域
  2. Configure BitLocker(条件判断 TPMVersion>=2.0 才执行)
  3. Restore User State(迁移用户文档桌面)
  4. Cleanup 清理临时文件、日志回传 SLShare 共享

五、关键高级能力:Condition 条件分支(XML 条件节点)

1. 变量条件判断(匹配 Rules/ZTIGather 输出)

示例:仅服务器机型执行 Windows 角色安装
xml
<condition>
<variable name="Model" contains="R4900"/>
</condition>
示例:SSD 硬盘跳过页面文件创建
xml
<condition>
<variable name="IsSSD" equals="TRUE" invert="false"/>

2. WMI 硬件查询条件

示例:仅内存大于 8G 启用大页面文件
xml
<condition>
<wmi query="Select TotalPhysicalMemory from Win32_ComputerSystem where TotalPhysicalMemory &gt; 8388608000"/>
</condition>

3. 取反 invert="true"

条件不满足时执行本步骤,多用于虚拟机跳过 BitLocker 加密。

六、变量优先级完整链路(任务序列 > Rules > Bootstrap > 硬件采集)

从高到低覆盖顺序:
  1. 任务序列 <variables> 内置私有变量(ts.xml)
  2. 步骤内自定义变量覆盖
  3. CustomSettings.ini(Rules)各分段参数
  4. Bootstrap.ini 启动参数
  5. ZTIGather.wsf WMI 硬件采集值(仅硬件相关变量可反向覆盖上层)
重点:任务序列内定义的 OSDComputerName、AdminPassword、JoinWorkgroup 会直接覆盖 CustomSettings.ini 全局规则,实现单任务序列差异化配置。

七、任务序列配套 unattend.xml 作用

每个 TS 目录下自带独立无人应答文件,优先级高于系统默认应答:
  1. 控制 OOBE 开箱界面跳过、内置管理员启用、自动登录;
  2. 设置系统时区、输入法、区域语言;
  3. 屏蔽 Windows 内置应用、禁用隐私弹窗;
  4. 可嵌入产品密钥,单独本任务序列生效,不影响其他部署流程。

八、修改生效逻辑

  1. 图形界面修改任务序列:保存后 ts.xml 即时写入,无需更新部署共享,下次 PXE/U 盘部署直接生效;
  2. 仅修改 Bootstrap.ini 才需要执行 Update Deployment Share 重制 LiteTouchPE;
  3. 手动直接编辑 ts.xml:关闭 MDT 工作台再修改,避免图形工具覆盖修改。

九、任务序列 vs CustomSettings.ini (Rules) 边界区分

项目 Task Sequence ts.xml CustomSettings.ini Rules
作用范围 仅当前单个任务序列 全局所有任务序列通用基线
条件粒度 分组、单步骤独立条件,精细控制每一步执行 全局统一参数,无单步骤分支能力
执行动作 定义分区、装系统、驱动、软件、加域完整动作流 仅定义全局变量、控制弹窗、基础参数
优先级 更高,覆盖 Rules 全局参数 全局兜底基线
存储位置 Control\TSID\ts.xml Control\CustomSettings.ini

十、红蓝对抗安全风险点

  1. ts.xml <variables> 可写入明文本地管理员、域账号密码,NTFS 权限泄露会造成权限窃取;
  2. 恶意新增运行脚本步骤:插入后门 vbs/powershell,部署时内存执行无文件落地;
  3. 篡改条件分支:强制跳过 TPM、BitLocker 校验,绕过终端安全基线;
  4. 修改应用镜像步骤,替换为后门 WIM 镜像,批量内网投毒;
  5. 监控告警要点:监控 Control\*\ts.xml 文件新增、修改事件,基线对比 XML 哈希。

十一、运维调试常用配置

  1. 任务序列开启全程调试日志:
     
    在 ts.xml 顶层 variables 添加
xml
<variable name="Debug" value="TRUE"/>
<variable name="SkipF8" value="NO"/>
  1. 单独禁用某一分组:修改 group 节点 disable="true"
  2. 临时关闭 WSUS 补丁:新增变量 WSUSServer="" 覆盖 Rules 地址。

 

posted @ 2023-05-21 01:32  suv789  阅读(426)  评论(0)    收藏  举报