upload successful

# MDT 简介

MDT(Microsoft Deployment Toolkit)Microsoft 免费提供的自动化部署框架,用于定制化操作系统部署。它基于任务序列 (Task Sequence) ,支持复杂的部署流程和配置。

核心功能:

  1. 任务序列:定义分阶段任务(分区、驱动注入、应用安装、更新补丁等)。

  2. 驱动程序管理:根据硬件型号自动匹配并安装驱动。

  3. 应用程序集成:静默安装 Office、企业软件等。

  4. 动态配置:根据 MAC 地址、型号等条件动态生成计算机名、时区等。

  5. 日志与监控:记录详细部署日志,支持远程存储。

# 搭建环境

操作系统 计算机名 IP 地址 安装服务 备注
Windows Server 2025 MDT_AD 192.168.10.10 AD、DHCP、DNS 域名:MDT.cn ᅟᅠ    DHCP 作用域:192.168.10.100-200
Windows Server 2025 MDT_Server 192.168.10.11 WDS、MDT 提供 PXE 服务和镜像发布

由于这个几个服务安装部署相对简单,文中没有提及的步骤一律按照默认下一步

# AD 服务器

AD 服务器主要安装 AD、DNS、DHCP 这三个服务,可以同时安装

添加服务器角色和功能,同时勾选 Active Directory 域服务、DHCP 服务器和 DNS 服务器
upload successful

勾选如果需要,自动重新启动目标服务器
upload successful

点击将此服务器提升为域服务器
upload successful

选择添加新林,填写你的根域名
upload successful

设置 DSRM 密码
upload successful

一直默认下一步,安装完后会自动重启服务器

# DHCP 配置

重启后点击通知,选择完成 DHCP 配置,都是默认
upload successful

完成 DHCP 配置后,打开 DHCP 管理器,添加一个 IPv4 的作用域
upload successful

填写作用域名称
upload successful

配置起始 IP 地址和结束 IP 地址
upload successful

配置默认网关
upload successful

一直下一步直至完成
upload successful

到此 AD 服务器配置完毕

# MDT 服务器

登陆 MDT 服务器,首先将该服务器加到域中,然后重启
upload successful

# ADK 安装

重启后下载安装 Windows ADKWindows PE附加组件

ADK 下载地址:https://learn.microsoft.com/zh-cn/windows-hardware/get-started/adk-install

双击 adksetup.exe 进行 Windows ADK 的安装

安装路径可以选择默认
upload successful

安装功能我这里仅勾选部署工具,其它的我暂时用不上
upload successful

后面都是默认,直至安装完成
upload successful

接下来安装 Windows PE附加组件 ,双击 adkwinpesetup.exe 进行安装,路径默认

upload successful

最新版本的 Windows PE附加组件 不再支持 x86 平台,如果老机器不支持 UEFI 引导的话,请安装 10.1.22000.1 以下版本
upload successful

后面都是默认,直至安装完成

# MDT 安装

安装完 Windows ADK 后,下载 MDT 并进行安装

MDT 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=54259

upload successful

MDT 全程默认安装,安装完后在开始菜单找到 Deployment Workbench 并打开
upload successful

点击 Deployment Share ,右键菜单选择 New Deployment Share
upload successful

路径我这边选择 D 盘
upload successful

Options 这里我把所有的选择都去掉,请根据自己的需求勾选
upload successful

后面都是默认,创建完部署共享目录后,简单说一下相关目录的配置

# MDT 配置

展开 MDT 部署目录,可以看到下面还有几个配置相关的目录,由于我的小霸王性能有限,无法测试所有的目录配置,这里只测试 Applications、Operating Systems、Task Sequences 和 Monitoring, 其它只简单介绍一下目录配置的作用

  1. Applications: 存放需要在部署过程中自动安装的应用程序安装包,支持 exe、msi 可执行的二进制文件,也可以调用系统的 cmd 和 powershell 执行脚本程序

单击选中 Applications ,右键菜单选择 New Application ,点击 Next 选择安装包源 (该操作会将源安装包复制一份到 DeploymentShare$\Applications 共享目录)
upload successful

填写安装包名称,这里我用微信测试
upload successful

选择安装包所在目录 (如果不需要保留源安装包文件,可以勾选 Move the files to the deployment share instead of copying them )

upload successful

填写安装程序命令和参数
upload successful

后面默认,直至完成
upload successful

这样我们就添加好了一个微信的安装包

upload successful

  1. Operation Systems: 存放操作系统镜像文件,支持 wim、esd 格式镜像,通常是将 ISO 镜像文件挂载到 CDROM 或解压到本地目录读取

这里以 Windows 11 镜像为例,将镜像挂载到本地虚拟光驱,然后在点击 Operation Systems ,右键菜单选择 Import Operating System ,然后选择 Full set of source to files

upload successful

源目录选择虚拟光驱

upload successful

设置目录名

upload successful

后面默认,直至完成 (该操作会将虚拟光驱文件全部复制一份到 DeploymentShare\Operating Systems 目录下)

upload successful

一些不需要的版本可以选中右键删除

upload successful

这样操作系统的镜像就添加好了

  1. Out-of-Box Drivers: 存放硬件驱动程序,支持 cab、inf 格式文件,按照厂商 / 设备型号进行分类,在部署过程中自动注入

目前环境不作测试

  1. Packages: 存放 Windows 更新包,例如语言包和安全补丁,支持 cab 和 msu 格式文件

目前环境不作测试

  1. Task Sequences: 定义部署任务序列,例如自动化分区、操作系统安装、注入驱动和安装应用程序等,由一系列的 VBS 脚本和 XML 文件控制部署流程的每一步操作

选中 Task Sequences ,右键菜单新建一个任务序列

upload successful

填写任务序列 ID 和名称

upload successful

任务模板选择默认的 Standard Client Task Sequence

upload successful

选择需要部署的系统镜像

upload successful

填写完整名称和组织信息

upload successful

设置部署镜像的管理员密码

upload successful

后面默认,直至完成

upload successful

选中创建好的任务序列名称,右键属性查看任务序列

upload successful

点击 Task Sequence 可以查看模板的部署流程

upload successful

  • Initialization

初始化阶段,主要动作是在 WinPE 环境中收集本地硬件信息

  • Validation

验证阶段,主要动作是检查系统内存和处理器是否满足部署要求

  • State Capture

状态捕获阶段,主要动作是捕获系统用户的配置文件、我的文档、桌面文件、浏览器书签和应用程序等个性化配置数据,需要搭配 USMT 工具使用

  • Preinstall

预安装阶段,主要动作有磁盘分区,复制脚本和驱动文件到 WinPE 环境中

  • Install

安装阶段,主要动作是安装操作系统

  • Postinstall

安装后阶段,主要动作有复制脚本到本地,更新应答文件,复制驱动文件到目标系统 Drivers 目录

  • State Restore

状态恢复阶段,主要动作是在新系统中还原之前捕获的用户配置和文档数据


当前测试环境仅使用默认模板配置,不更改任何选项

Task Sequences 配置是整个部署环节中最复杂的一环,无法通过一篇简单的文章对其详细说明,如果想深入了解,还请自行查看官方文档

微软官方文档:https://learn.microsoft.com/en-us/mem/configmgr/mdt/task-sequence-steps

  1. Advanced Configuration: 高级配置,Selection Profiles 可以自定义配置文件,例如驱动和应用程序匹配。Linked Deployment Shares 可以将多个独立的 Deployment Share 链接起来,实现多站点协同部署。Media 主要是生成离线部署 ISO 镜像,可以刻录到 U 盘,用于客户端离线安装。Database 可以配置数据库信息,可配合数据库实现动态配置,例如自动化命名、不同地区走不一样的部署流程等

目前环境不作测试

  1. Monitoring: 实时监控客户端部署进度,需要在 MDT Deployment Share 属性中启用

upload successful

# 生成引导镜像文件

当所有的设置都配置好,此时我们便可以生成一个引导镜像文件

点击 MDT Deployment Share 目录,右键菜单选择 Update Deployment Share , 默认更新即可

upload successful

更新完成后,系统会自动在 DeploymentShare\Boot 目录下创建对应的引导镜像文件

upload successful

到此 MDT 的配置就完成了

# WDS 安装

接下来,我们安装 WDS 服务,用于发布引导镜像

打开添加角色和功能向导,勾选 Windows部署服务

upload successful

角色服务默认勾选

upload successful

完成后点击关闭

upload successful

服务器管理器中打开 Windows 部署服务管理控制台

upload successful

右键菜单选择配置服务器

upload successful

安装选择选择与 Active Directory 集成

upload successful

远程安装文件夹的位置我这个选择 D 盘

upload successful

PXE 服务器初始设置选择响应所有客户端计算机

upload successful

完成时请取消勾选立即向服务器中添加映像

upload successful

展开服务器目录,选择启动映像,右键菜单选择添加启动映像

upload successful

映像文件选择前面 MDT 生成的引导镜像

upload successful

映像元数据可以更改名称和说明

upload successful

后面一直下一步直至完成即可

upload successful

此时,同网段中的客户端可以通过 PXE 启动引导该镜像

# 客户端测试

在同网段中找一台客户端,开机选择网络引导

upload successful

如果网络正常,可以看到客户端获取到的 DHCP 信息,按回车确认

upload successful

此时客户端便会从网络加载 WinPE

upload successful

WinPE 加载完后,选择运行部署向导

upload successful

输入访问 MDT 服务器共享的用户名和密码

upload successful

选择任务序列

upload successful

设置计算机名和加域信息

upload successful

应用程序选择前面配置好的微信

upload successful

最后点击 Begin 开始整个部署流程

upload successful

upload successful

upload successful

upload successful

upload successful

upload successful

部署结束后,可以看到微信已经安装,系统也已经加好域,也没有任何报错,到此整个部署流程结束

# MDT 部署优化

在进入 WinPE 环境中,有几个地方是需要和用户交互的,如果希望自动化执行,我们可以通过更改 MDT服务器Bootstrap.iniCustomSettings.ini 这两个配置文件实现自动化部署

这两个配置文件在 DeploymentShare\Control 目录下

upload successful

  • Bootstrap.ini
i
[Settings]
Priority=Default
[Default]
DeployRoot=\\MDT_SERVER\DeploymentShare$
; 配置连接共享的用户名、密码、域信息
UserID=mdt_user
UserPassword=Password
UserDomain=mdt.cn
; 配置部署日志的远程存储路径
SLShare=\\192.168.10.11\Logs
SLshareDynamicLogging=\\192.168.10.11\Logs\%ComputerName%
  • CustomSettings.ini
i
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
EventService=http://MDT_Server:9800
; 跳过任务序列选择,并指定默认选择的任务序列 ID
SkipTaskSequence=YES
TaskSequenceID=1
; 跳过计算机名设置,配置固定前缀和 MAC 地址开头 2 位以及主板序列号后 2 位生成计算机名
SkipComputerName=YES
OSDComputerName=MDT#Left("%MACAddress%",2)##Right("%SerialNumber%",2)#
; 跳过加域设置
SkipDomainMembership=YES
JoinDomain=MDT.cn
DomainAdmin=mdt_user
DomainAdminPassword=Password
DomainAdminDomain=MDT
; 跳过用户数据迁移和恢复
SkipCapture=YES
SkipUserData=YES
UserDataLocation=NONE
; 跳过语言和时区设置
SkipLocaleSelection=YES
UserLocale=en-US
UILanguage=zh-CN
SkipTimeZone=YES
TimeZoneName=China Standard Time
; 跳过安装应用程序选择,指定需要安装的程序包 GUID,安装多个则指定多个,例如 Applications1,Applications2,Applications3
SkipApplications=YES
Applications1={d586e387-032b-4af3-ae4e-9bbaecbc7b5d}
; 跳过部署向导最后一步
SkipSummary=YES

下面简单介绍一下这两个文件的作用:

配置文件名 作用 加载时机 常用配置
Bootstrap.ini 用于初始化部署环境 WinPE 启动阶段加载 访问 MDT 网络共享和认证,部署日志远程存储,静态 IP 地址等
CustomSettings.ini 用于定义部署规则 在 Bootstrap.ini 之后,通过网络共享加载 自动选择任务序列,动态生成计算机名,设置时区等

需要注意的是, Bootstrap.ini 配置文件是保存在镜像根目录 Deploy\Scripts 下,每次更改 Bootstrap.ini 配置后,我们需要在 MTD 控制台中更新 MDT Deployment Share 配置,更新完后还需要在 WDS 控制台启动映像中替换成最新的引导镜像

upload successful

upload successful

CustomSettings.ini 配置是通过网络共享加载的,更改不需要更新镜像,保存文件即可马上测试