一、部署环境
- 安装Windows Server系统
- 安装WDS:服务器管理 > 管理 > 添加角色与功能 > 安装“Windows Deployment Services”
- 安装“Microsoft Deployment Toolkit”
- 安装“Windows ADK”
- 安装“Windows ADK WinPE Addons”
二、配置MDT
- 创建共享文件夹:
- 打开Deployment Workbench > Deployment Shares,按照默认创建Deployment Shares
- 导入需要安装的软件
- 右键“Applications” > "New Applications" > 按需求添加软件
- 导入系统镜像
- 右键“Operating Systems” > “Import Operating System” > 按需求导入镜像
- 如需要导入ios镜像,可用资源管理器打开后导入
- 导入驱动程序
- 右键“Out of Box Drivers” > “Import Drivers” > 按需求导入驱动
- 建议按计算机型号创建文件夹,分别导入,方便管理
- 创建捕获任务
- 更新WinPE文件,右键“MDT Deployment Share”点击“Update Deployment Share”,更新的文件是“C:\DeploymentShare\Boot”中的PE镜像
- “MDT Deployment Share”中“Rule”填入以下内容
[Settings] Priority=HardwareInfo,Default Properties=MakeAlias,ModelAlias,MyCustomProperty [HardwareInfo] UserExit=ModelAliasExit.vbs MakeAlias=#SetMakeAlias()# ModelAlias=#SetModelAlias()# [Default] OSInstall=YES SkipBDDWelcome=YES SkipCapture=NO SkipComputerName=NO SkipProductKey=YES ;是否跳过加域或工作组 SkipDomainMembership=NO SkipComputerBackup=YES SkipBitLocker=YES SKipTaskSequence=NO SkipFinalSummary= NO SkipTimeZone= NO TimeZoneName=China Standard Time KeyboardLocale=zh-cn UserLocale=zh-cn UILanguage=zh-cn SkipAdminPassword=YES ======== Edit Bootstrap.ini ======== [Settings] Priority=Default [Default] DeployRoot=\\服务器IP地址\DeploymentShare$ ;是否跳过欢迎界面 SkipBDDWelcome=YES KeyBoardLocale=zh-cn UserDomain=域控地址 UserID=域控管理员账号 UserPassword=域控管理员密码
三、目录详解
- DeploymentShare目录结构
C:\DeploymentShare ├─ Applications: 存放应用程序安装包,MDT 会将应用源文件复制到此处。 ├─ Backup: 存放 MDT 的备份文件(包括任务序列和配置文件的备份)。 │ └─ Automatic: 自动备份文件夹(MDT 每日自动备份的驱动等 XML 配置文件)。 ├─ Boot: 存放生成的启动映像和 WinPE 引导文件。 │ ├─ x64: 64 位架构的启动文件。 │ │ ├─ Boot: 启动文件夹(包含 BCD、Boot.wim 等)。 │ │ └─ EFI: UEFI 引导文件夹。 │ │ ├─ Boot: UEFI 启动文件。 │ │ └─ Microsoft: Microsoft 引导目录。 │ │ └─ Boot: 微软启动文件。 │ └─ x86: 32 位架构的启动文件。 │ └─ Boot: 启动文件夹(包含 BCD、Boot.wim 等)。 ├─ Captures: 存放捕获到的系统镜像(WIM 格式)。 ├─ Control: 存放部署控制文件和任务序列定义。包含 Bootstrap.ini、CustomSettings.ini 等规则文件;每个任务序列有一个子文件夹(如 001、101、102、103),其中保存该任务序列的 ts.xml(定义文件)和 unattend.xml 文件。 │ │ ApplicationGroups.xml: 应用分组定义(逻辑分组,用于组织 Applications 中的应用供选择/部署)。 │ │ Applications.xml: 应用库元数据(记录每个应用的 ID、显示名、源路径、安装命令、依赖关系)。 │ │ Bootstrap.ini: 引导配置(LiteTouch 引导阶段读取的最小配置:服务器地址、凭据、初始规则)。 │ │ CustomSettings.ini: 自定义设置(MDT 规则引擎的主要配置,定义变量与优先级,用于无人值守/自动化)。 │ │ DriverGroups.xml: 驱动分组定义(将驱动按硬件/类别分组以便选择)。 │ │ Drivers.xml: 驱动库元数据(记录导入的驱动包、GUID、匹配信息和标签)。 │ │ LinkedDeploymentShareGroups.xml: 关联部署共享分组(管理多个部署共享时的分组信息)。 │ │ LinkedDeploymentShares.xml: 关联部署共享列表(记录其他被链接的 Deployment Share 的连接/路径信息)。 │ │ MediaGroups.xml: 媒体分组(组织生成的离线媒体项,例如按用途或版本分组)。 │ │ Medias.xml: 媒体元数据(包含已生成或配置的离线媒体条目及参数)。 │ │ OperatingSystemGroups.xml: 操作系统分组(按用途/系列对导入的 OS 进行分组)。 │ │ OperatingSystems.xml: 操作系统元数据(记录导入的 WIM/ISO 源、版本号、GUID、映像索引)。 │ │ PackageGroups.xml: 包分组(组织 CAB/MSU 等包的逻辑分组)。 │ │ Packages.xml: 包元数据(记录每个更新包/功能包的来源和标识,用于集成/部署)。 │ │ SelectionProfileGroups.xml: 选择配置文件分组(组织 Selection Profiles 的分组信息)。 │ │ SelectionProfiles.xml: 选择配置文件(定义要包含/排除的应用/驱动/OS,用于生成媒体或任务序列筛选)。 │ │ Settings.xml: MDT 管理控制台设置(控制台界面和导入/导出行为的配置项)。 │ │ TaskSequenceGroups.xml: 任务序列分组(按部门/用途把 Task Sequences 分组,便于管理)。 │ │ TaskSequences.xml: 任务序列索引(列出所有任务序列的元数据,供控制台显示和引用)。 │ │ treeoutput.txt: 目录/树快照(通常由脚本导出,供审计或报告使用,非配置文件)。 │ │ Version.xml: 部署共享版本信息(记录 MDT/DeploymentShare 的元数据或导出版本)。 │ │ │ ├─001 │ │ ts.xml: 任务序列定义(此序列的详细步骤、条件与引用)。 │ │ Unattend.xml: 无人值守应答文件(Windows 安装/通用化时使用的 sysprep 回答文件)。 │ │ │ ├─101 │ │ ts.xml │ │ Unattend.xml │ │ │ ├─102 │ │ ts.xml │ │ Unattend.xml │ │ │ └─103 │ ts.xml │ Unattend.xml ├─ Operating Systems: 存放导入的操作系统源文件(安装映像或完整源文件)。 ├─ Out-of-Box Drivers: 存放设备驱动库,MDT 将导入的驱动程序存放在此目录。 ├─ Packages: 存放操作系统更新包(CAB 或 MSU 文件),如安全补丁、服务包和语言包。 ├─ Scripts: 存放 MDT 的内置和自定义脚本(如 LiteTouch 的脚本文件);任务序列可以调用此处的脚本。 ├─ Servicing: 存放离线部署工具,可找到诸如 DISM 等工具(在 \Servicing\X64 和 \Servicing\X86 子目录中)。 ├─ Templates: 存放 MDT 的模板文件,包括任务序列模板和无人值守应答文件模板(如 Unattend_PE_x64.xml)。 └─ Tools: 存放其他部署工具和资源。 ├─ Modules: MDT 模块(如 Microsoft.BDD.TaskSequenceModule、ZTIUtility 等)。 ├─ OSDResults: 保存操作系统部署结果(如生成的任务序列预览图像)。 ├─ x64: 64 位架构的辅助文件,包括语言资源、预检查脚本、USMT 工具等。 │ ├─ 00000409: 语言标识符目录。 │ ├─ en-us: 英语资源文件。 │ ├─ Images: 部署过程需要的映像文件。 │ ├─ Preflight: 预检查脚本和工具。 │ └─ USMT5: 用户状态迁移工具文件(包含各种迁移清单文件)。 └─ x86: 32 位架构的辅助文件,结构类似 x64,包括语言资源、Images、Preflight 等目录。
- MDTFile目录结构
C:\MDTFILE └─ image: 离线部署存储根目录。 ├─ Boot: 存放各架构的启动映像。 │ ├─ arm: 32 位 ARM 架构启动映像。 │ │ └─ Images: ARM 启动映像文件。 │ ├─ arm64: 64 位 ARM 架构启动映像。 │ │ └─ Images: ARM64 启动映像文件。 │ ├─ Fonts: 存放启动映像中使用的字体文件。 │ ├─ x64: 64 位 PC 架构启动映像。 │ │ └─ Images: x64 启动映像文件。 │ ├─ x64uefi: 64 位 UEFI 架构启动项文件。 │ ├─ x86: 32 位 PC 架构启动映像。 │ │ └─ Images: x86 启动映像文件。 │ ├─ x86uefi: 32 位 UEFI 架构启动项文件。 │ └─ x86x64: 兼容启动映像文件夹(支持交叉架构启动)。 ├─ Images: 存放操作系统安装映像(WIM 文件等)。 ├─ Mgmt: WDS 管理目录(存储多播和管理数据)。 ├─ Stores: WDS 存储区,包括驱动和元数据。 │ ├─ Drivers: 存放导入到 WDS 的驱动文件和元数据。 │ │ └─ Metadata: 驱动元数据存放区。 │ │ └─ Backup: 驱动元数据备份。 │ ├─ Metadata: 存放图像和驱动相关的元数据。 │ └─ Staging: 临时存储区,用于 WDS 导入过程中缓存映像。 ├─ Templates: 存放 WDS 无人值守脚本模板。 ├─ Tmp: WDS 临时文件目录,用于缓存创建过程中的临时数据。 └─ WdsClientUnattend: 存放 Windows 部署服务 (WDS) 客户端无人值守文件。
- Deployment Workbench结构
Deployment Workbench └─ Deployment Shares: 部署共享管理的根节点 └─ 共享文件夹名: 部署共享实例(如 C:\DeploymentShare) ├─ Applications: 管理要部署的应用程序(如 Office、浏览器等) ├─ Operating Systems: 存放导入的操作系统源文件或 WIM 映像 ├─ Out-of-Box Drivers: 存放硬件驱动库,按型号或类别分类 ├─ Packages: 存放系统更新、补丁、语言包等 ├─ Task Sequences: 定义部署步骤顺序(系统、驱动、应用等) ├─ Advanced Configuration: 高级配置 │ ├─ Selection Profiles: 用于筛选/分组应用、驱动、映像,控制部署范围 │ ├─ Linked Deployment Shares: 建立与其他共享的链接,用于复制/同步内容 │ ├─ Media: 生成 ISO/USB 脱机介质,用于无网络部署 │ └─ Database: 存放预配置的部署信息(计算机名、角色、应用等) └─ Monitoring: 实时监控正在/已部署的计算机 ├─ 计算机名: 每台处于监控中的目标计算机 │ ├─ Name: 计算机名(由 TS 或数据库定义) │ ├─ MAC Address: 网卡物理地址 │ ├─ UUID: 硬件唯一标识(BIOS/UEFI 提供) │ ├─ Step: 当前执行的任务步骤(如 "Install Operating System") │ ├─ Percent Complete: 部署进度百分比 │ ├─ Start Time: 部署启动时间 │ ├─ End Time: 部署完成/失败时间(未完成时为空) │ ├─ Elapsed Time: 已用时间 │ ├─ Status: 部署状态(Running、Success、Failed 等) │ └─ Errors: 错误信息(若失败则显示代码或脚本输出) └─ 计算机名: 另一台被监控的计算机(结构相同)
- CustomSettings.ini参数
类别 变量名 说明 示例值/备注 核心部署控制设置 [Settings] 必需节,标识此文件是配置文档 [Settings] Priority= 最重要的变量之一。定义了处理其他章节和规则的顺序 Priority=Default, ByModel, ByLocation Properties= 定义在部署过程中要使用的自定义属性列表 Properties=MyCustomProperty, Department OSInstall= 是否执行操作系统安装。必须设为 Y 才能进行全新安装 OSInstall=Y SkipCapture= 在刷新计算机场景中,是否跳过 Sysprep 和捕获步骤 SkipCapture=YES SkipAdminPassword= 是否跳过本地管理员密码设置界面 SkipAdminPassword=YES SkipProductKey= 是否跳过产品密钥输入界面 SkipProductKey=YES SkipComputerBackup= 是否跳过计算机备份(用户状态迁移)界面 SkipComputerBackup=YES SkipBitLocker= 是否跳过 BitLocker 配置界面 SkipBitLocker=YES SkipSummary= 是否跳过部署前的摘要界面 SkipSummary=YES EventService= 指定 MDT 状态点(Status Point)的 URI,用于发送状态信息 EventService=http://MDTServer:9800 计算机身份识别设置 OSDComputerName= 为目标计算机设置名称 OSDComputerName=PC-%SerialNumber% 或 OSDComputerName=MyDesktop123 MachineObjectOU= 指定在域中创建计算机账户的组织单位 (OU) MachineObjectOU=OU=Workstations, DC=contoso, DC=com JoinDomain= 指定要加入的域 JoinDomain=CONTOSO DomainAdmin= 拥有加域权限的域账户 DomainAdmin=MDTJoinAccount DomainAdminDomain= 上述账户的域名 DomainAdminDomain=CONTOSO DomainAdminPassword= 上述账户的密码。强烈建议将其放在 Bootstrap.ini 中并加密 DomainAdminPassword=PlainTextPassword 位置和区域设置 TimeZoneName= 设置目标计算机的时区 TimeZoneName=China Standard Time KeyboardLocale= 设置键盘布局 KeyboardLocale=zh-CN UILanguage= 设置安装界面的显示语言 UILanguage=zh-CN UserLocale= 设置用户的区域格式(如日期、时间、货币) UserLocale=zh-CN 应用程序、角色和包设置 Applications= 定义一个要安装的应用程序列表,用逗号分隔 Applications=Install - Chrome, Install - Office 365 MandatoryApplications= 定义必须安装的应用程序列表,即使用户在向导中取消选择也会安装 MandatoryApplications=Install - Company Security Agent SkipApplications= 是否跳过应用程序选择界面 SkipApplications=YES WSUSServer= 指定内部的 WSUS 服务器地址,用于获取更新 WSUSServer=http://wsus.contoso.com:8530 驱动管理设置 SkipDriverInjection= 是否跳过驱动程序注入 SkipDriverInjection=NO DriverSelectionProfile= 指定要使用的驱动程序选择配置文件(在 MDT 控制台中配置) DriverSelectionProfile=Windows 10 x64 - All Drivers DriverInjectionMode= 指定驱动注入模式(所有驱动、匹配的驱动等) DriverInjectionMode=All Platform= 用于在驱动程序库中筛选驱动程序 Platform=x64 磁盘分区设置 SkipBDDWelcome= 是否跳过"选择要安装的任务序列"欢迎界面 SkipBDDWelcome=YES SkipTaskSequence= 是否跳过任务序列选择界面 SkipTaskSequence=YES TaskSequenceID= 指定要自动运行的任务序列ID TaskSequenceID=WIN10_X64 用户状态迁移 (USMT) 设置 UDShare= 用户状态迁移数据(USMT 数据)的存储网络路径 UDShare=\\MDTServer\MigrationStorage$ UDProfiles= 指定要捕获的用户配置文件(如"Public"、"All") UDProfiles=Public UDDir= 在 UDShare 下存储数据的文件夹名称 UDDir=%OSDComputerName% UserID= 在刷新场景中,指定要还原其数据的用户 UserID=CONTOSO\John.Doe UserDomain= 上述用户的域 UserDomain=CONTOSO UserPassword= 上述用户的密码 UserPassword=PlainTextPassword 日志和调试设置 SLShare= 存储部署日志的网络路径 SLShare=\\MDTServer\Logs$ SLShareDynamicLogging= 是否将详细日志实时写入 SLShare SLShareDynamicLogging=YES SkipLocaleSelection= 是否跳过区域选择界面 SkipLocaleSelection=YES
四、常见问题
- 更新PE镜像时报错“Unable to open the specified WIM file.”,需要在“MDT Deployment Share”右键打开“属性”,取消勾选“x86”,因为在Windows Server 2022中已经移除了对32位的支持,只支持64位
- 修改PE镜像生成选项时候报错“未能找到路径“C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs”的一部分。”,需要在该目录创建“*\x86\WinPE_OCs”文件夹即可
- 报错“NBP filename is boot \x64\ wdsmgfw.efi NBP filesize is 0 Bytes PKE-E 23: Client received TFIP error from server .”
- “C:\MDTFile\image\Boot\x64” 或 “C:\Windows\System32\RemInst\boot\x64” 下缺少引导文件“wdsmgfw.efi”
- 从其他服务器下载即可
- 如果对MDT做了修改没有生效,需要重新生成后在“Windows部署服务”中执行一次替换PE文件才能生效
© 版权声明
文章版权归作者所有,未经允许请勿转载。