搭建MDT部署服务(Microsoft Deployment Toolkit)

系统相关5天前更新 AaronHzy
89 0

一、部署环境

  1. 安装Windows Server系统
  2. 安装WDS:服务器管理 > 管理 > 添加角色与功能 > 安装“Windows Deployment Services”
  3. 安装“Microsoft Deployment Toolkit
  4. 安装“Windows ADK
  5. 安装“Windows ADK WinPE Addons

二、配置MDT

  1. 创建共享文件夹:
    • 打开Deployment Workbench > Deployment Shares,按照默认创建Deployment Shares
  2. 导入需要安装的软件
    • 右键“Applications” > "New Applications" > 按需求添加软件
  3. 导入系统镜像
    • 右键“Operating Systems” > “Import Operating System” > 按需求导入镜像
    • 如需要导入ios镜像,可用资源管理器打开后导入
  4. 导入驱动程序
    • 右键“Out of Box Drivers” > “Import Drivers” > 按需求导入驱动
    • 建议按计算机型号创建文件夹,分别导入,方便管理
  5. 创建捕获任务
    • 右键“Task Sequences” > “New Task Sequences” > “按需求添加任务”
    • Office激活后可能导致捕获失败,需要在捕获任务中添加跳过Office验证搭建MDT部署服务(Microsoft Deployment Toolkit)
  6. 更新WinPE文件,右键“MDT Deployment Share”点击“Update Deployment Share”,更新的文件是“C:\DeploymentShare\Boot”中的PE镜像
  7. “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=域控管理员密码
    	

三、目录详解

  1. 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 等目录。
    
  2. 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) 客户端无人值守文件。
  3. 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: 错误信息(若失败则显示代码或脚本输出)
                └─ 计算机名: 另一台被监控的计算机(结构相同)
    
  4. 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=指定要自动运行的任务序列IDTaskSequenceID=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=是否将详细日志实时写入 SLShareSLShareDynamicLogging=YES
    SkipLocaleSelection=是否跳过区域选择界面SkipLocaleSelection=YES

四、常见问题

  1. 更新PE镜像时报错“Unable to open the specified WIM file.”,需要在“MDT Deployment Share”右键打开“属性”,取消勾选“x86”,因为在Windows Server 2022中已经移除了对32位的支持,只支持64位
  2. 修改PE镜像生成选项时候报错“未能找到路径“C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs”的一部分。”,需要在该目录创建“*\x86\WinPE_OCs”文件夹即可
  3. 报错“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”
    • 从其他服务器下载即可
  4. 如果对MDT做了修改没有生效,需要重新生成后在“Windows部署服务”中执行一次替换PE文件才能生效
© 版权声明

相关文章