# MDT 简介
MDT(Microsoft Deployment Toolkit)
是 Microsoft
免费提供的自动化部署框架,用于定制化操作系统部署。它基于任务序列 (Task Sequence)
,支持复杂的部署流程和配置。
核心功能:
-
任务序列:定义分阶段任务(分区、驱动注入、应用安装、更新补丁等)。
-
驱动程序管理:根据硬件型号自动匹配并安装驱动。
-
应用程序集成:静默安装 Office、企业软件等。
-
动态配置:根据 MAC 地址、型号等条件动态生成计算机名、时区等。
-
日志与监控:记录详细部署日志,支持远程存储。
# 搭建环境
操作系统 | 计算机名 | 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 服务器
勾选如果需要,自动重新启动目标服务器
点击将此服务器提升为域服务器
选择添加新林,填写你的根域名
设置 DSRM 密码
一直默认下一步,安装完后会自动重启服务器
# DHCP 配置
重启后点击通知,选择完成 DHCP 配置,都是默认
完成 DHCP 配置后,打开 DHCP 管理器,添加一个 IPv4 的作用域
填写作用域名称
配置起始 IP 地址和结束 IP 地址
配置默认网关
一直下一步直至完成
到此 AD 服务器配置完毕
# MDT 服务器
登陆 MDT 服务器,首先将该服务器加到域中,然后重启
# ADK 安装
重启后下载安装 Windows ADK
和 Windows PE附加组件
ADK 下载地址:https://learn.microsoft.com/zh-cn/windows-hardware/get-started/adk-install
双击 adksetup.exe
进行 Windows ADK
的安装
安装路径可以选择默认
安装功能我这里仅勾选部署工具,其它的我暂时用不上
后面都是默认,直至安装完成
接下来安装 Windows PE附加组件
,双击 adkwinpesetup.exe
进行安装,路径默认
最新版本的 Windows PE附加组件
不再支持 x86 平台,如果老机器不支持 UEFI 引导的话,请安装 10.1.22000.1 以下版本
后面都是默认,直至安装完成
# MDT 安装
安装完 Windows ADK
后,下载 MDT 并进行安装
MDT 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=54259
MDT 全程默认安装,安装完后在开始菜单找到 Deployment Workbench
并打开
点击 Deployment Share
,右键菜单选择 New Deployment Share
路径我这边选择 D 盘
Options
这里我把所有的选择都去掉,请根据自己的需求勾选
后面都是默认,创建完部署共享目录后,简单说一下相关目录的配置
# MDT 配置
展开 MDT 部署目录,可以看到下面还有几个配置相关的目录,由于我的小霸王性能有限,无法测试所有的目录配置,这里只测试 Applications、Operating Systems、Task Sequences 和 Monitoring, 其它只简单介绍一下目录配置的作用
- Applications: 存放需要在部署过程中自动安装的应用程序安装包,支持 exe、msi 可执行的二进制文件,也可以调用系统的 cmd 和 powershell 执行脚本程序
单击选中 Applications
,右键菜单选择 New Application
,点击 Next
选择安装包源 (该操作会将源安装包复制一份到 DeploymentShare$\Applications
共享目录)
填写安装包名称,这里我用微信测试
选择安装包所在目录 (如果不需要保留源安装包文件,可以勾选 Move the files to the deployment share instead of copying them
)
填写安装程序命令和参数
后面默认,直至完成
这样我们就添加好了一个微信的安装包
- Operation Systems: 存放操作系统镜像文件,支持 wim、esd 格式镜像,通常是将 ISO 镜像文件挂载到 CDROM 或解压到本地目录读取
这里以 Windows 11 镜像为例,将镜像挂载到本地虚拟光驱,然后在点击 Operation Systems
,右键菜单选择 Import Operating System
,然后选择 Full set of source to files
源目录选择虚拟光驱
设置目录名
后面默认,直至完成 (该操作会将虚拟光驱文件全部复制一份到 DeploymentShare\Operating Systems
目录下)
一些不需要的版本可以选中右键删除
这样操作系统的镜像就添加好了
- Out-of-Box Drivers: 存放硬件驱动程序,支持 cab、inf 格式文件,按照厂商 / 设备型号进行分类,在部署过程中自动注入
目前环境不作测试
- Packages: 存放 Windows 更新包,例如语言包和安全补丁,支持 cab 和 msu 格式文件
目前环境不作测试
- Task Sequences: 定义部署任务序列,例如自动化分区、操作系统安装、注入驱动和安装应用程序等,由一系列的 VBS 脚本和 XML 文件控制部署流程的每一步操作
选中 Task Sequences
,右键菜单新建一个任务序列
填写任务序列 ID 和名称
任务模板选择默认的 Standard Client Task Sequence
选择需要部署的系统镜像
填写完整名称和组织信息
设置部署镜像的管理员密码
后面默认,直至完成
选中创建好的任务序列名称,右键属性查看任务序列
点击 Task Sequence
可以查看模板的部署流程
- 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
- Advanced Configuration: 高级配置,Selection Profiles 可以自定义配置文件,例如驱动和应用程序匹配。Linked Deployment Shares 可以将多个独立的 Deployment Share 链接起来,实现多站点协同部署。Media 主要是生成离线部署 ISO 镜像,可以刻录到 U 盘,用于客户端离线安装。Database 可以配置数据库信息,可配合数据库实现动态配置,例如自动化命名、不同地区走不一样的部署流程等
目前环境不作测试
- Monitoring: 实时监控客户端部署进度,需要在
MDT Deployment Share
属性中启用
# 生成引导镜像文件
当所有的设置都配置好,此时我们便可以生成一个引导镜像文件
点击 MDT Deployment Share
目录,右键菜单选择 Update Deployment Share
, 默认更新即可
更新完成后,系统会自动在 DeploymentShare\Boot
目录下创建对应的引导镜像文件
到此 MDT 的配置就完成了
# WDS 安装
接下来,我们安装 WDS 服务,用于发布引导镜像
打开添加角色和功能向导,勾选 Windows部署服务
角色服务默认勾选
完成后点击关闭
在服务器管理器中打开 Windows 部署服务管理控制台
右键菜单选择配置服务器
安装选择选择与 Active Directory 集成
远程安装文件夹的位置我这个选择 D 盘
PXE 服务器初始设置选择响应所有客户端计算机
完成时请取消勾选立即向服务器中添加映像
展开服务器目录,选择启动映像,右键菜单选择添加启动映像
映像文件选择前面 MDT 生成的引导镜像
映像元数据可以更改名称和说明
后面一直下一步直至完成即可
此时,同网段中的客户端可以通过 PXE 启动引导该镜像
# 客户端测试
在同网段中找一台客户端,开机选择网络引导
如果网络正常,可以看到客户端获取到的 DHCP 信息,按回车确认
此时客户端便会从网络加载 WinPE
WinPE 加载完后,选择运行部署向导
输入访问 MDT 服务器共享的用户名和密码
选择任务序列
设置计算机名和加域信息
应用程序选择前面配置好的微信
最后点击 Begin 开始整个部署流程
部署结束后,可以看到微信已经安装,系统也已经加好域,也没有任何报错,到此整个部署流程结束
# MDT 部署优化
在进入 WinPE
环境中,有几个地方是需要和用户交互的,如果希望自动化执行,我们可以通过更改 MDT服务器
的 Bootstrap.ini
和 CustomSettings.ini
这两个配置文件实现自动化部署
这两个配置文件在 DeploymentShare\Control
目录下
Bootstrap.ini
[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
[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 控制台的启动映像中替换成最新的引导镜像
CustomSettings.ini
配置是通过网络共享加载的,更改不需要更新镜像,保存文件即可马上测试