当前位置:   article > 正文

MDT+WDS实现LTI自动化Windows部署

MDT+WDS实现LTI自动化Windows部署

MDT+WDS实现LTI自动化Windows部署

适用环境、交付效果

 企业网适用环境:

  - 有AD域控(每个用户都有入域的需要并且每个用户都有自己的账号)
  - 有DHCP(无论使用交换机/路由器/Windows Server/Linux)
  - 有本域Administrator管理员密码
  - 有空闲的服务器(无论虚拟机还是物理机)与磁盘空间
  - 域用户不属于本地administrator组(域用户无法安装软件)
  - 可调控的网络策略及足够的网络带宽

 最终实现效果:
  - 用主机MAC地址自动为主机命名
  - 使计算机自动入域
  - 自动登陆到域环境(只能通过预设的域账号登录,无法随用户的改变而改变)
  - 自动安装 exe / msi / office 套件
  - 自动安装驱动


部署过程难度说明:

  部署过程非常复杂,没有任何一步是可以跳过的(除非该步骤不适用于您的企业网络环境),建议逐行阅读,一摸一样地跟着做一遍,等成功实现后留存快照再进行自定义变量实验

  整套部署流程中,由于涉及到的软件包只有英文版本,所以在说"汉语术语"的时候也会同时标注其"英文术语",所有的"英文术语"均来自软件内

  部署的整套流程所需要的工具及文献,都会打包网盘提供出来 (见文末)


配置框架

  • Win10ADK(Windows评估和部署工具包)
    • 部署工具
    • Windows预安装环境(Windows PE)
    • 用户状态迁移工具(USMT)
  • 安装MDT(MicrosoftDeploymentToolkit)
  • DeploymentShares配置
    • 新建DeploymentShares
    • 编辑 General 设置
    • 编辑 Rules 设置
    • 编辑 BootStrap.ini 设置
    • 编辑 WinPE 设置
    • 编辑 Monitoring 设置
    • 生成引导启动文件
  • DHCP部署
    • Option 66 / 67配置
  • WDS部署
    • 域集成方式部署
    • 导入启动映像
  • 操作系统(Operating Systems)
    • 挂载操作系统镜像
    • 导入操作系统镜像
  • 软件(Applications)
    • 使用 ussf.exe 辨别 .exe 安装类型及参数
    • 添加软件包
    • 使用 Office Customization 安装 Office
  • 驱动(Out-of-Box Drivers)
    • 使用 CMD 或 PowerShell 获取计算机类型名称
    • 导出计算机已安装的全部驱动程序
    • 创建 Out-of-Box 目录结构
    • 导入驱动程序
  • 任务序列(Task Sequence)
    • 创建任务序列
    • 添加自动登录域用户任务组
    • 添加自动安装应用程序任务组
  • 排错指南
  • 软件安装番外篇

Win10ADK(Windows评估和部署工具包)

安装这三个功能就可以了


安装MDT(MicrosoftDeploymentToolkit)

不停下一步然后点安装就完事儿了

在这里插入图片描述


在DeploymentWorkbench中新建DeploymentShares

没说到的一律默认选项

新建DeploymentShares

一、右键Deployment Shares,点击New Deployment Share

在这里插入图片描述

二、这个路径将保存MDT的一切,随你放哪,建议留50G以上

在这里插入图片描述
三、共享名称,这里决定客户端用什么目录名称来访问你的共享

在这里插入图片描述
四、把1、4、5的勾去了(但我看有些文章说不去也是可以的,我没试过)

在这里插入图片描述
五、一直下一步直到完成即可


编辑 General 设置

一、右键新建出来的MDT Deplloyment Share 点击属性

在这里插入图片描述

二、如图

Description:描述,没啥作用
Network Path:写MDT的IP地址,客户端最终通过这里填写的内容去找共享服务器
Local Path:共享目录位于本地存储的位置
Platforms Suppported:支持32位和64位的影响,勾选哪个就会生成对应的WinPE启动引导文件,在后续的<生成引导启动文件>会说
在这里插入图片描述


编辑 Rules/CustomSetting 设置

可能会用到的文献:

[Settings]   
Priority=AppInstallAsDifferentUser,Default   
Properties=APPINSTALLDOMAIN, APPINSTALLACCOUNT, APPINSTALLPASSWORD   

[Default]   
OSInstall=YES   
;是否安装系统,这个一般都是YES    
SkipTaskSequence=NO   
;是否跳过任务序列的选择   
;如果跳过,则使用TaskSequenceID=xxx指定   
SkipCapture=NO   
;是否捕获镜像(不知道啥意思,没关心过)   
SkipProductKey=YES
;是否跳过输入产品密钥   
;如果跳过,则使用ProductKey=xxxx指定   
SkipUserData=YES    
SkipComputerBackup=YES   
SkipBitLocker=YES   
SkipTimeZone=YES   
;是否跳过时区设置   
;如果跳过,则使用TimeZoneName=xxx来指定,可以通过这篇 [文章](https://olavtvedt.blogspot.com/2011/11/mdt-timezonename-and-index-number-list.html)查询你所在的时区    
TimeZoneName=W. Central Africa Standard Time  
;up主在西非,所以写的是西非时区,如果你在国内的话就是China Standard Time   
SkipApplications=YES   
;是否跳过应用程序安装
;如果跳过则需要使用Applications1={id_number}、Applications2={id_number},或者在Task Sequence中指定安装   
;如果不跳过,则会在WinPE阶段让你选择安装哪些软件
SkipLocaleSelection=YES    
;选择你所在的地区,安装语言、键盘布局信息
;如果跳过则需要用UILanguage,KeyboardLocale,UserLocale来指定,可以通过这篇[文章](https://www.andiamo.co.uk/resources/iso-language-codes/)找到Language-ID   
UILanguage=zh-cn   
KeyboardLocale=zh-cn    
UserLocale=zh-cn   
SkipAdminPassword=YES        
;是否跳过Administrator密码设置
;如果跳过则适用AdminPassword=来指定,否则会在WinPE阶段让你输入Administrator密码   
AdminPassword=Passw0rd      
SkipDomainMembership=YES      
;这里的跳过指的是是否跳过加域信息的填写,而不是“加域”这个动作的跳过   
;如果跳过,则需要DomainAdminDomain\JoinDomain\DomainAdmin\DomainAdminPassword参数   
DomainAdminDomain=test.com     
;这里就是你最终要加入的域,这个参数与'JoinDomain'的区别我没有测试,猜测是子域的关系   
JoinDomain=test.com   
;要加入的域,如果你的域不存在子域,例如最终加入的是 .test.com,那么这里的值应该与DomainAdminDomain保持一致   
DomainAdmin=sysinstall   
;这个变量名虽然叫DomainAdmin,但这里不需要填写域管理员的信息,并且sysinstall用户也不需要位于域的管理员组中   
DomainAdminPassword=Passw0rd      
;这里填写DomainAdmin那个账号的密码
SkipComputerName=YES   
;是否跳过计算机名称的命名
;如果跳过,则使用OSDComputerName=xxx指定   
OSDComputerName=#Right(Replace("%MACAddress001%",":",""),12)#   
;将每台电脑的MAC当作计算机名使用,以避免计算机名冲突   
;OSDComputerName=PC-#Left("%SerialNumber%",12)#   
;可以使用上面这行语句使序列号成为计算机名
EventService=http://10.162.130.53:9800   
Administrators001=%APPINSTALLDOMAIN%\%APPINSTALLACCOUNT%   

[AppInstallAsDifferentUser]   
APPINSTALLACCOUNT=sysinstall   
APPINSTALLPASSWORD=Passw0rd   
APPINSTALLDOMAIN=test.com   
;这里一段参考[文章](https://www.deploymentresearch.com/running-the-mdt-2013-update-2-task-sequence-as-a-different-user/)```

---


### 编辑 BootStrap.ini 设置

> 这段内容最终会写入到生成的 .wim 引导文件中,因为客户端拉去启动映像后,需要知道访问哪个共享目录,而Rules则是在启动映像后拉去的,也就是说,如果你修改了BootStrap.ini的配置,那么你就必须重新生成一个新的 .wim 启动文件,而Rules则可以随时修改,无需升级
> BootStrap.inii配置很简单,就这么几行,直接复制过去就可以使用


```bash
[Settings]   
Priority=Default  

[Default]  
DeployRoot=\\10.162.130.53\DeploymentShare$  
;这里是共享目录的网络位置,一定不可以写错,同时这个目录的物理位置C:\DeploymentShares必须给下面那个UserID账号开启共享和文件系统权限   
UserID=sysinstall  
;用于连接共享目录的用户名,可以使用域账户,也可以使用MDT服务器本地账户   
UserDomain=cnpcic  
;如果使用域账户的话,这里就写域前缀,例如test.com,那这里就写test,最终会自动拼接成test\sysinstall   
UserPassword=Passw0rd  
;该账户的密码
KeyboardLocale=zh-cn  
SkipBDDWelcome=YES
;跳过欢迎界面
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89

编辑 Monitoring 设置

在Monitoring选项卡中,勾选 Enable monitoring for this delpoyment share,Monitoring host配置为MDT服务器的地址

在这里插入图片描述


生成引导启动文件

没啥好说的,点开之后一只下一步下一步就可以了

在这里插入图片描述

结束后会在C:\DeploymentShare\Boot\下创建一个LiteTouchPE_x64.win文件,这个就是引导启动文件

如果你在<编辑 General 设置>这里勾选了x86,那么这里Update Deployment Share之后,会同时生成x86和x64两个引导启动文件


DHCP部署

打开DHCP服务器,IPv4->右键Server Options->Configure Options

Option 66 写 MDT 服务器的为止
在这里插入图片描述

Option 67 取决于你使用哪一种引导方式,如果BIOS引导就写Boot\x64\wdsnbp.com,如果UEFI引导就写Boot\x64\wdsmgfw.efi,这个文件位置一般来说是固定的,它位于WDS服务器C:\RemoteInstall\Boot\x64\下

在这里插入图片描述


WDS部署

没说的就是默认选项,直接下一步就可以了

Windows键->管理工具->Windows部署服务->右键服务器->配置服务器

在这里插入图片描述

如果你的环境是DHCP/WDS分离部署的话,这里默认就可以了,如果是集成环境,就把两个勾去掉
在这里插入图片描述

这里建议读一下,根据自己企业的需求来选择
在这里插入图片描述

启动WDS服务
在这里插入图片描述
右键启动映像->添加启动映像
在这里插入图片描述
选择C:\DeploymentShare\Boot\LiteTouchPE_x64.wim如果你是x86的话就选x86,一直下一步完成即可
在这里插入图片描述


##添加操作系统

可能会用到的资源

挂载操作系统镜像

右键你的镜像->打开方式->资源管理器

在这里插入图片描述

可以看到自动挂载到驱动器上了

在这里插入图片描述

导入操作系统镜像

DeploymentWorkbench->Deployment Shares->MDT Deployment Share-> Operating Systems->Import Operating System
在这里插入图片描述
路径选择刚刚挂在上来的盘符,我这里是G盘,你自己看看清楚盘符再挂,然后一直默认就可以了
在这里插入图片描述


添加软件(Applications)

可能会用到的文献:
常用软件的静默安装参数
使用USSF自动判断安装包类型
常用软件的静默安装参数
Office系列自动安装指导

使用 ussf.exe 辨别 .exe 安装类型及参数

使用ussf.exe检测安装包的类型
在这里插入图片描述

添加软件包

MDT Deployment Share->右键Applications->New Application
在这里插入图片描述

选第一个(默认就是第一个)
在这里插入图片描述

给应用程序添加一个名字
在这里插入图片描述

这里建议一个安装包一个文件夹,因为添加程序会自动将你选择的目录下的所有文件添加到.\Applications\FILE_NAME
在这里插入图片描述

这里的Command line就写使用ussf检测出来的参数,腾讯系软件一般都是/S,winrar是/s,Chrome是/install,360极速浏览器是–silent-install,参数取决于安装包的封包方式
在这里插入图片描述

使用 Office Customization 安装 Office

一、将Office光盘像<挂载操作系统镜像>时一样,挂载到系统

二、将Office包添加到Applications里

在这里插入图片描述

这里就写你挂在上去之后系统给的盘符
在这里插入图片描述

参数只写setup.exe就可以了(我的是 .exe 安装方式,如果你是 .msi 的话,就用 .msi 的方式安装)
在这里插入图片描述

双击打开刚刚添加的应用
在这里插入图片描述

点选项卡
Office product to install -> ProPlus
Office Languages -> zh-cn
Dispay level -> None
Accept EULA -> YES
Always suppress reboot -> YES
然后点Office Customization
在这里插入图片描述
在<授权和用户界面>中,按下图配置,然后左上角,文件->保存->给一个名字
在这里插入图片描述
把刚刚保存出来的 xxx.msp文件,移动到.\Applications下,Office同一目录(与setup.exe平级)
在这里插入图片描述
然后打开Office的属性界面,在原本的 setup.exe 后面加上 /adminfile xxx.msp
在这里插入图片描述


添加驱动(Out-of-Box Drivers)

可能会用到的文章
Windows系统提取驱动
MDT部署Windows驱动官方指导

使用 CMD 或 PowerShell 获取计算机类型名称

使用命令获取计算机名称

Get-WmiObject -Class:Win32_ComputerSystem  (PowerShell中运行)
wmic.exe csproduct get name  (CMD中运行)

在这里插入图片描述

创建 Out-of-Box 目录结构

在Out-of-Box下建立如下目录结构(直接右键Out-of-Box然后New Folder)

在这里插入图片描述

导出计算机已安装的全部驱动程序

dism /online /export-driver /destination:D:MyDrivers

使用以上命令导出当前计算机所有已安装驱动到 D:\MyDrivers

将驱动程序导入到 Out-of-Box->Redmi->Redmi G 2022

将刚刚导出的目录通过七七八八的方式传到MDT服务器上后,右键Redmi G 2022 -> Import Drivers选择驱动所在的目录,就完成了
在这里插入图片描述


任务序列(Task Sequence)

  任务序列有必要将讲解一下,它是整套MDT自动化部署中最核心的东西,前面所有做的导入软件包、导入驱动包、导入操作系统,全都是为了任务序列而做的,建议你在操作前,先自己仔细翻阅一下整个Task Sequence是在干什么,整个结构非常灵活,你可以利用脚本在任何阶段做任何可以做的事,包括copy文件,运行一个 .bat 脚本,修改一些注册表等

磁盘分区

在Task Sequence->Preinstall->New Computer only->Format and Partition Disk (UEFI)
,下图从左到右依次点就可以将C盘划分大小为磁盘总量的45%,你也可以选下面的 Use Specific size ,为其设置一个固定大小
在这里插入图片描述
下图从左到右依次点,就可以创建一个名为DATA的数据盘(这一步理论上是可以指定盘符的,但我不会)
在这里插入图片描述
最终效果如下图,这样做出来的效果就是例如一块固态硬盘512GB,C盘占45%,D盘占另外55%。其中"MSR 128MB"与"Recovery 1GB"不建议修改
在这里插入图片描述

添加任务序列(Task Sequence)

右键Task Sequence -> New Task Sequence
在这里插入图片描述
这两个是必填项,其中Tas Sequence ID不与用户交互(写1,2,3,4就可以了),Task sequence name是直接与用户交互的,需要管理员或者用户去选择使用那个任务序列,相当于是对该任务序列的一个短描述

在这里插入图片描述
这一步选择你需要的镜像,任务序列是绑定镜像的,不同的镜像可以执行不同的任务序列,例如中文版Windows安装中文版软件,英文版Windows就安装英文版的软件
在这里插入图片描述
这里的Full Name写administrator就可以了,Orgnization就写你的域名,这两个参数可能是用于新建系统时的默认用户,这个点UP主没有试验过变量
在这里插入图片描述
这里就输入Administrator账户的默认密码,一遍输入一遍确认,然后一直点下一步直到完成
在这里插入图片描述


添加自动登录域用户任务组

跟着这篇文章做就好了,或者直接抄我上面的那段Rules你自己做些删删减减就可以了 试验阶段不建议修改任何一步
这一步主要面向的环境是:
&emsp本地Administrator安装的软件无法给域账户例如test\sysinstall用户使用,同时普通用户又没有权限安装软件(例如test\liqiang),所以就要登录到一个特定的域账户完成软件安装后,再用用户自己的账户登录。
这样的做法现在面临的最大的问题就是:test\sysinstall安装的软件无法完全"自动地"在test\liqiang登陆后为其桌面上创建所有需要的图标。目前这个问题,我使用的是一种非常蠢的办法,但以UP主的技术水平无法创造出其他更好的办法了,如果你需要的话,可以看文末的《软件安装番外篇》

添加自动安装应用程序任务组

如果你有完成上一步的话,现在你已经可以实现"在电脑自动安装完系统后,直接进入一个特定的域账户",那么现在就该开始安装软件了。先创建一个"Applications Install Group"名字你自己取就行
在这里插入图片描述
然后在点一下这个组,Add->General->Install Application
在这里插入图片描述
跟着下图点,选择你刚刚加载的安装包
在这里插入图片描述
给该步骤改个名字
在这里插入图片描述


总结:这篇文章UP主写了好几天,因为涉及到的资料太多了。写这篇文章的原因是因为MDT+LTI在国内的论坛上很少有靠谱的或者说贴近于实际应用的,许多的实验也仅仅停留在了实验层面,没有企业网中的复杂性,本文旨在为复杂的企业网环境提供一套相对完整的MDT+LTI的操作指南,能做到的也仅此而已了。

排错指南

一、 WORNING - unable to set working directory:(-2147024894)
在这里插入图片描述

问题成因:TaskSequence在安装应用的时候会调用、\\ipaddress\deploymentshare$\applications\applicationfile
例如我要装微信的话,我就要把WeChatSetup.exe放在C:\DeploymentShare\Application\Wechat\下,TS在如果没有找到相应的目录时,就会报这个错误,在客户机的C:\Windows\Temp\DeploymentLogs\BDD.txt中,可以Ctrl+F输入你的报错信息去查找可以看到
在这里插入图片描述
解决方法:查看上图中,change directory的路径在MDT服务器上是否真实存在,一般来说都是路径打错了,但也会发生路径都对却依然报这个错误的情况,所以无论情况怎样,都建议在<DeploymentWorkbench->Applications->App_name->右键属性->Details->Working Directory>里重新输入一遍路径,但我还是劝你删了新建一遍,谁知道为什么抽风


二、静默安装输入参数回车后无反应
在这里插入图片描述
问题成因:大多数 .exe 安装文件下载下来时文件名里都是xxxsetup.exe,如果你把setup删了改成xxx的话,就会有这样的问题,up主试了很多软件,都有这样的问题,如果你发现在Task Sequence执行过程中,该软件既没有报错又没有安装成功的话,大概率是这个问题

解决办法:在文件名最后添加一个setup就好了,例如把WeChat.exe修改为WeChatSetup.exe
在这里插入图片描述


三、Connection OK. Possible cause: invalid credentials
在这里插入图片描述
问题成因:这个基本上就是共享权限问题,先检查MDT服务端的.\Control\BootStrap.ini文件中的UserID\UserDomain\UserPassword这三个参数,这三个参数是直接写入到WinPE中的,客户端在拉去WDS启动镜像后,会直接用SMB2协议+这个身份去访问目标服务器的DeployRoot共享目录
在这里插入图片描述

解决方法:

  1. 检查上图中的三个参数
  2. 检查共享及文件系统权限,是否对应的用户有读权限
  3. 只要你关闭过C:\DeploymentShare这个目录的共享,那你就必须再为这个目录重新添加一个DeploymentShare$共享名,因为你关闭之后,共享名会从DeploymentShare$变为DeploymentShare,而客户端找的是DeploymentShare$隐藏目录
  4. 检查你的网络状态(建议抓个包),查看账号、密码、用户域是否输入正确,为UserID账号开启C:\DeploymentShare$的访问权限与文件系统权限。(在我实验的过程中发生过一个类似BUG的情况,虚拟机在这个阶段会非常规律的丢包,均为一个TCP/SYN+两个TCP Retransimision,丢包的环境下也会导致这个故障的产生)

四:The join operation was not successful, This could be becausean existing computer account having name 000C29D3D1AEwas previously created using a different set of credentials.Use a different computer name, or contact your administratorto remove any stale conflicting account, The error was:
在这里插入图片描述
问题成因:这个报错一般和和(五)报错绑定在一起的,但需要注意的是当(六)发生时,如果你是按照(五)中的(问题成因)那样操作的话,基本就是域内的计算机名冲突导致的无法入域

解决方法:和(五)的解决方法一样


五:ZTIDomainJoin has attempted to join to domain [cnpcic.com] too many times. Count=4
在这里插入图片描述
问题成因:域用户密码错误或者域内已经存在与该计算机名相同的主机,如果你的实验方式是 完成后->快照->入域,就可能出现这个报错,因为客户机没有向域注销本机,就导致域控认为这台主机依然存在而不应该再次入域

解决方法:登录域控查找该计算机后将其删除(自行百度)


六:Windows在准备阶段(Getting Ready)一直转圈(十分钟左右)
在这里插入图片描述

问题成因:一般来说如果没有任何故障的情况下,转圈只应该持续1-2分钟,因为加域就是在转圈的过程中执行的,但如果加域不成功的话,就会一直尝试一直尝试,导致转圈的时间特别长
解决方法:首先检查账号/密码是否输入正确,建议另起一台已经安装好的Windows10,在这台Win10上使用你刚刚输入的账号密码来登录,如果有报错,可以在本文找一下有没有对应的报错


七:Application xxx returned an unexpedted return code : 2
在这里插入图片描述
问题成因:在DeploymentShare的Applications中,应用执行安装的命令与实际文件的名称不一致,例如Applications里写的命令是WeChatSetup_CN.exe /S,而实际上的文件名叫做WeChatSetup.exe。这样就会因找不到目标文件而无法执行命令,从而产生报错


八、The Task sequence has been suspended.LiteTouch is trying to install applications.This cannot be performed in Windows PE.If booting from a USB Flash Disk,please remove all drives before restarting.Otherwise,ensure the hard disk is selected first in the BIOS boot order.Reboot WinPE(Close all Windows) to resume. If booting from a USB Flash Disk,please remove all drives before restarting.Otherwise,ensure the hard disk is selected first in the BIOS boot order.Reboot WinPE(Close all Windows) to resume. If booting from a USB Flash Disk,please remove all drives before restarting.Otherwise,ensure the hard disk is selected first in the BIOS boot order.Reboot WinPE(Close all Windows) to resume.
在这里插入图片描述

问题成因:当你的电脑完成了"系统安装",即将开始"软件安装"的时候,你将电脑关闭了,并且重启后再次进入了PXE启动模式,就会导致这个报错,可能造成这个故障的原因通常是操作人员将"PXE网络启动"设置为第一启动项,当电脑意外关机后,自动进入了PXE启动。
解决方法:将硬盘或者Windows Boot Manager设置为"首选启动项",然后再启动电脑。

PS:如果你是强制关机的话(可能是想取消软件的安装),也必须按照上述<解决方法>等待软件安装完毕后,再做其他的操作。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/613636
推荐阅读
相关标签
  

闽ICP备14008679号