ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Windows批量装机平台搭建:WDS+MDT环境部署全攻略

Windows批量装机平台搭建:WDS+MDT环境部署全攻略 人员、设备、系统版本这三件事是每个IT运维都绕不开的日常。如果你所在的公司刚好有一批新设备要交付或者老设备需要统一切换系统版本一台台拿U盘去装Windows装完还要手动改计算机名、加域、装驱动、装软件这套流程重复几十遍之后你大概率会开始想一件事能不能让机器自己完成安装这篇文章要聊的就是Windows批量装机平台搭建的第一部分环境部署。整套方案基于微软官方的部署工具链也就是WDS配合MDT再加上DHCP、DNS、AD这些基础环境。它解决的核心问题是让一台裸机通过网卡启动自动完成系统安装、驱动注入、软件安装、加域等一系列操作真正做到无人值守交付。适合网络管理员、桌面运维、IT基础设施工程师以及所有被重复装系统折磨过的人参考。我先把结论放在前面只要环境部署这一步做完、做对后面的镜像定制和任务序列反而是水到渠成的事。1. 先想清楚批量装机平台到底需要哪些组件1.1 这套平台的核心逻辑很多人第一次接触批量装机容易把它想象成一个神秘的黑盒子其实拆开看核心逻辑非常简单让客户端从网卡启动通过网络从一个服务器拉取引导文件引导文件启动一个微型Windows环境然后这个环境再根据预设的规则把完整的Windows镜像写入本地硬盘。这里有三个关键角色DHCP服务器负责告诉客户端你的IP是什么启动文件在哪台服务器上。WDS服务器Windows部署服务负责提供PXE引导文件、存放和分发系统镜像。MDT服务器Microsoft Deployment Toolkit负责定义装完系统之后还要干什么比如装驱动、装软件、加域、改计算机名。在实际部署中WDS和MDT可以装在同一台服务器上AD、DHCP、DNS也可以复用现有的基础架构。我第一次搭的时候就把WDS和MDT都放在一台Windows Server 2019的虚拟机上内存给到4GB磁盘单独挂了一块200GB的虚拟盘存镜像跑起来完全没压力。1.2 为什么选择WDS加MDT选型这件事我踩过不少坑。早期尝试过直接手动配置PXE Linux引导再用WinPE挂载镜像的方式灵活性太差驱动和软件安装全靠手写脚本维护版本一多就乱了。也有人用Ghost网络克隆但那东西对驱动兼容性的处理太粗暴批量交付的机器型号一杂蓝屏概率直线上升。WDS加MDT的优势在于完全基于微软官方工具生命周期有保障不会出现第三方工具突然不维护的情况。MDT的部署共享机制非常灵活同一个镜像配合不同的任务序列就能实现开发机装一套软件、办公机装另一套软件。驱动注入通过DriverGroup自动匹配不同机型装不同驱动不需要维护多个镜像文件。如果你的公司有KMS或AD域控这套方案还能顺便完成自动激活和自动加域交付效率直接翻倍。对于中小规模环境比如一次交付几十台上百台设备WDS加MDT是最稳妥、成本最低的解决方案。2. 环境部署前的规划与准备2.1 服务器选型和网络规划环境部署的第一步不是装系统而是想清楚拓扑。我见过不少人在这一步图省事结果后面返工。服务器的基本要求Windows Server 2016/2019/2022均可标准版就够用。磁盘至少预留200GB空间存放镜像建议单独一块数据盘。内存8GB起步如果同时并发部署的客户端数量较多建议16GB以上。服务器网卡需要设置静态IP不能是DHCP获取。网络规划上最关键的是IP地址和DHCP的配合。我的建议是单独划一个VLAN用于部署环境DHCP地址池规划好排除掉服务器自身和网关地址。为什么强调这一点因为PXE启动时DHCP服务器要从地址池里分配一个临时IP给客户端如果地址池和办公网冲突很容易出现装系统把别人的IP抢了这种事故。我当时的规划很简单部署网段用192.168.10.0/24WDS服务器固定192.168.10.10DHCP地址池是192.168.10.100到192.168.10.200。这样一个网段足够应付日常交付。2.2 准备Windows Server环境这一步看起来基础但直接影响后续的稳定性。建议在干净的Server系统上做不要在那台服务器上装乱七八糟的软件。系统装好后有几个必做的调整关闭IE增强的安全配置。在服务器管理器中把此服务器的IE ESC、防火墙规则按需调整WDS和DHCP的通信端口要放行。设置好计算机名比如命名成WDS-SVR方便后续管理。强烈建议打好最新的补丁再开工Windows Server的累积更新经常修复一些奇怪的问题。如果服务器要加入现有域提前确认好DNS。如果不是域环境可以先把服务器独立在工作组里后续需要加域时再调整。我个人建议WDS服务器本身最好加入域因为在MDT定制加域步骤时域账号认证更方便。2.3 安装AD域控、DHCP和DNS这部分很多人问我就想批量装个系统能不能不装域控答案是可以但强烈不建议。域控的作用不仅仅是统一管理账号更重要的是它提供了DNS解析。PXE启动流程中客户端需要解析WDS服务器的机器名DNS解析不稳定PXE就会各种超时。你当然可以在DHCP里直接给客户端指定WDS服务器的IP不依赖机器名解析但后续MDT加域操作还是离不开AD域环境。安装顺序建议先装AD域服务把服务器升级为域控。再装DHCP服务创建作用域时需要授权否则DHCP服务不工作。DNS一般随AD一起装好不用单独配置。这里有一步非常容易被忽略DHCP服务装好之后必须在DHCP管理控制台中授权这个服务器。如果忘了授权客户端请求DHCP时会一直拿不到地址而且这个故障隐藏得很深服务器上各服务看着都正常就是客户端获取不到IP。3. 一步步搭起WDS部署服务3.1 添加WDS角色WDS的安装很简单在服务器管理器里添加角色和功能勾选Windows部署服务。这里有一个细节角色安装时有部署服务器和传输服务器两个子组件传输服务器是精简版只负责多播传输完整的部署服务器才包含我们需要的全部功能。一定要两个都勾上或者直接选默认。安装完成后在工具菜单里打开Windows部署服务这时会看到服务器处于未配置状态。右键点击服务器选择配置服务器启动配置向导。配置向导中有几个关键选项与Active Directory集成如果WDS加入了域选择此项让WDS自动在AD中注册和管理客户端。回答客户端计算机的方式这里建议先选仅响应已知的客户端计算机搭建初期测试用。等全流程跑通了再改成响应所有客户端计算机避免测试阶段出现意外机器自动开始装系统。PXE服务器初始设置选响应所有客户端计算机或者按需选择。配置完成后需要为WDS添加启动镜像和安装镜像。启动镜像通常是boot.wim安装镜像是install.wim这两个文件都来自Windows ISO文件在Sources目录下可以找到。我的做法是先把Windows 10/11的ISO挂载到服务器上或者拷到本地然后在WDS控制台中右键启动映像选择添加启动映像指向ISO里的boot.wim再右键安装映像选择添加安装映像指向install.wim。这里要注意install.wim可能包含多个版本家庭版、专业版、企业版等添加的时候可以全选后续在MDT中再按需选择要使用的版本。3.2 配置PXE响应策略PXE响应算是WDS配置里的一个关键点。默认情况下WDS会对所有PXE请求进行应答并且会等待用户在按F12确认后才从网络启动。这个F12确认机制在生产环境中是个麻烦你不可能一台台跑到客户端前面去按F12。解决办法是修改WDS的PXE响应策略。在WDS控制台中右键服务器进入属性 - 启动选项卡把在客户端尝试从网络启动时显示提示按F12键继续这个选项取消勾选。这样客户端一旦从网卡启动就会直接进入部署流程。另外一个容易被忽视的点在DHCP选项卡中勾选不侦听DHCP端口和将DHCP选项标记配置为无DHCP选项避免WDS自带的DHCP服务和真正的DHCP服务器冲突。这个操作非常关键如果不取消WDS服务会监听UDP 67端口和DHCP服务打架表现为客户端时不时能获取IP、时不时不行且过程非常随机排查起来极其痛苦。在DHCP服务器那一侧还要设置两个选项选项066启动服务器主机名填写WDS服务器的IP或主机名。选项067启动文件名填写boot\x64\wdsnbp.com。这样配置好之后客户端从网卡启动时DHCP服务器会告知去找192.168.10.10引导文件是boot\x64\wdsnbp.comWDS才能正确接应。3.3 验证PXE启动链路基础配置完成后先用一台测试机验证PXE链路是否通畅。虚拟机测试最方便在VMware或Hyper-V中新建一台虚拟机不挂载任何系统安装盘直接把网卡启动设为第一启动项。启动后看到Press F12 for network service boot并且能顺利进入Windows部署向导说明WDS和DHCP的链路基本通了。如果卡在获取IP或者报错找不到启动文件优先检查DHCP选项066、067和WDS的DHCP端口设置。4. MDT集成让批量装机自动化起来4.1 安装MDT和Windows ADKWDS解决了系统从网络启动的问题但默认流程还需要手动选择镜像、填产品密钥、设置本地账户离无人值守还差得远。MDT就是来补齐这一块的。MDT的安装非常简单下载最新版Microsoft Deployment Toolkit一路下一步即可。但注意MDT依赖Windows ADK组件必须提前安装对应版本的Windows ADK。MDT版本和ADK版本、Windows系统版本的兼容性是有对应关系的建议去微软官网查一下版本对应表不要为了图新装一个和现有镜像不兼容的版本。从Windows 10 1809开始ADK分为两个部分Windows ADK包含部署工具和WinPE工具。Windows PE加载项用于生成WinPE启动镜像。这两个都要装。只装主ADK不装PE加载项后面生成启动镜像时会报错提示找不到winpeshl.exe之类的文件。4.2 创建部署共享并导入系统镜像打开MDT后首先在Deployment Shares节点右键选择New Deployment Shares创建一个新的部署共享。这里要指定一个共享路径建议放在WDS服务器上例如D:\DeploymentShare$这样WDS可以直接访问MDT生成的启动镜像。创建部署共享时有一个细节需要填写一个共享名称和一个隐藏共享名称。共享名用于Windows访问隐藏共享名用于网络共享访问。我一般把隐藏共享名保留默认的DeploymentShare$然后在WDS中把启动镜像指向这个路径。部署共享创建好后在Operating Systems节点右键选择Import Operating System导入方式选择Full set of source files指向Windows ISO的挂载目录或解压目录。MDT会把install.wim导入为可用的操作系统镜像。导入完成后在Operating Systems节点下就能看到对应的Windows版本。有一点注意导入过程会读取ISO里的文件并拷贝到部署共享耗时较长磁盘空间也需要预留足够一个完整的Windows镜像大约4-6GB。4.3 定制任务序列从手动到无人值守任务序列是MDT的精髓。它定义了一台新机器从启动到交付的全部动作。在Task Sequences节点右键选择New Task Sequence填写名称后选择模板。对批量装机来说最常用的是Standard Client Task Sequence模板。任务序列创建后右键打开属性可以配置Task Sequence选项卡看到完整的步骤树可以增删步骤比如添加安装软件步骤、添加执行PowerShell脚本步骤。Rules选项卡编辑customsettings.ini在这里配置无人值守参数。customsettings.ini是最核心的配置文件。以下是我常用的配置片段[Settings] PriorityDefault PropertiesMyCustomProperty [Default] OSDComputerNamePC-%SerialNumber% JoinDomaincorp.local DomainAdmincorp\admin DomainAdminPasswordYourPassword UserExit1 TimeZoneNameChina Standard Time KeyboardLocalezh-CN UserLocalezh-CN SkipCaptureYES SkipAdminPasswordYES SkipProductKeyYES SkipComputerNameYES SkipDomainMembershipYES SkipUserDataYES SkipLocaleSelectionYES SkipTaskSequenceNO SkipFinalSummaryYES这段配置的含义OSDComputerNamePC-%SerialNumber%用机器的序列号自动命名计算机名避免每台机器手动改名字。JoinDomain和DomainAdmin部署完成后自动加域不需要人工介入。Skip*系列跳过部署向导中的各种交互界面实现真正意义上的无人值守。我每次调整完customsettings.ini都会在Deployment Shares节点右键选择Update Deployment Shares重新生成启动镜像和引导文件。这步非常关键很多人改了规则后发现不生效就是忘了更新部署共享。4.4 仔细配置引导镜像并在WDS中登记MDT会生成一个LiteTouchPE的启动镜像文件位于部署共享的Boot目录下例如LiteTouchPE_x64.wim。在WDS中把它作为新的启动镜像添加进去并在PXE启动时优先选择这个启动镜像。在MDT更新部署共享时可以选择生成x86、x64或两者的启动镜像。现在基本都是64位环境生成x64即可。启动镜像是支持刻录成ISO做U盘启动的MDT也支持输出ISO方便在没有网络的环境下使用但既然搭了网络部署平台就走PXE链路更高效。WDS中添加MDT启动镜像后PXE引导就变成了两段式网卡启动进入WDS的引导文件wdsnbp.com。选择启动镜像加载MDT的LiteTouchPE环境。LiteTouchPE环境启动后会读取部署共享的customsettings.ini按照规则自动执行任务序列。一切顺利的话你只需把机器开机剩下全部自动完成。5. 常见问题与排查技巧实录这个环节分享几个我实际部署过程中踩过的坑很多问题是文档里不会写清楚的遇到了真的很折磨人。5.1 DHCP获取不到IP或PXE超时这是最常见的故障。现象是网卡启动后停在那里或者一直显示获取IP。排查思路按照这个顺序走客户端和DHCP服务器是否在同一广播域。如果跨了VLAN需要配置DHCP中继。DHCP服务是否已授权。在DHCP管理控制台中服务器图标上如果有红色箭头说明未授权。WDS设置中是否勾选了不侦听DHCP端口。如果没有WDS的69端口和DHCP抢活会导致随机性获取不到IP。这个步骤最好记成检查单每次环境变更后按照顺序核对一遍能省很多时间。5.2 PXE-E53错误PXE-E53是典型的找不到引导文件错误。出现这个报错时优先检查DHCP的选项066和067。066要填WDS服务器的IP067要填boot\x64\wdsnbp.com。有一个值得注意的点066选项中的服务器地址建议直接用IP而不是主机名。如果用了主机名客户端在启动阶段依赖于DNS解析而DNS解析不通时就会直接报错。用IP可以绕开这个依赖最省事。5.3 部署过程中提示找不到驱动程序有些较新的机型在WinPE环境加载时会出现硬盘不可见的故障因为WinPE默认不带新硬件的存储控制器驱动。解决办法是把磁盘控制器驱动添加到MDT的Out-of-Box Drivers中并在任务序列中启用Inject Drivers步骤。实际操作中可以先把驱动包下载好在MDT中右键Out-of-Box Drivers节点选择Import Drivers导入后为驱动创建Selection Profile在任务序列的注入驱动程序步骤中指定这个Profile。这样部署时MDT会自动判断当前硬件是否匹配驱动匹配则注入不匹配则跳过。5.4 更新规则后不生效改完customsettings.ini后如果部署行为没有任何变化大概率是忘了更新部署共享。记住一个习惯任何规则、驱动、操作系统镜像的变更最后都要执行一次Update Deployment Shares让MDT重新生成启动镜像。修改任务序列的结构比如增加步骤则不需要重新更新部署共享但为了稳妥我每次调整完都会统一更新一次确保后续客户端加载到的是最新版本。另外补充一点如果只是修改了任务序列的步骤而启动镜像已经通过WDS加进去了是不需要重新往WDS里加启动镜像的但如果是更新了WinPE的组件或驱动就需要重新添加或替换WDS里的启动镜像文件。6. 部署共享优化与后续扩展准备环境部署搭好只是第一步我建议在正式批量交付之前花点时间把部署共享再打磨一下。6.1 驱动管理策略驱动管理是批量装机里最繁琐的一块。同一批机器如果型号一致还好说如果型号杂就必须使用MDT的驱动管理机制。原则很简单厂商提供的最新驱动包尽量下载完整包不要用Windows Update提供的精简版。导入MDT后按机型建立Selection Profile在任务序列中使用Inject Drivers并指定该Profile。不要把所有驱动一股脑全部导入否则注入时会有冲突风险部署速度也会变慢。6.2 应用软件安装的三种方式任务序列中安装应用有几种常见做法各有优劣直接使用Install Multiple Applications步骤选择部署共享中的应用包。这种方式适合MSI格式的静默安装包。使用Run Command Line步骤执行安装命令适合exe安装包配合静默参数。使用PowerShell脚本统一管理灵活度最高适合有特殊配置需求的软件。我个人更推荐第三种把软件安装逻辑封装成PowerShell脚本放在脚本目录下任务序列直接调用脚本。这样后续软件清单变化时只需维护脚本不需要频繁改动任务序列结构。6.3 备份与恢复部署共享部署共享一旦配置完成基本就是一个比较稳定的资产。建议定期把部署共享文件夹、MDT的配置文件备份出来。MDT的Settings.xml和CustomSettings.ini都在部署共享中直接复制整个部署共享目录即可。恢复时在新服务器上安装MDT右键Deployment Shares选择Add a Deployment Shares指向原来的共享路径MDT会自动识别。WDS那边再配置一次PXE响应和引导镜像即可。这套备份恢复流程我非常推荐提前演练一遍因为部署平台本身平时不显眼一旦服务器故障需要重建你会格外庆幸当年做了备份。最后再分享一个心得批量装机平台的价值短期看是省了人工装系统的时间长期看是把装系统这件事从体力活变成了标准化的流程。环境部署阶段多花点心思把网络、DHCP、WDS、MDT这些基础组件的关系理清楚后面无论镜像维护、驱动更新、软件定制都只是在这个平台上添加内容而已。如果你准备搭建这套平台建议先在一个隔离的测试网段里把全流程跑通再逐步迁移到生产环境。
返回列表