世事洞明皆学问,人情练达即文章。这篇文章主要讲述MDT8456部署Windows系列 : 技巧篇—模拟测试部署系统快速定位错误配置相关的知识,希望能为你提供帮助。
前言通过本文的方法,可以模拟MDT的收集过程,并在几秒钟定位到配置存在问题的地方,节约时间。
过去很长一段时间我都会在 MDT 制作、部署新的系统镜像时浪费大量时间。并不是每次制作都是一次性成功,期间会涉及到通过配置文件、变量、脚本来按不同场景进行系统、应用、驱动的测试及部署,当任意环节出现问题,将不得不再重新修改、重新部署。
前提条件
- 一台加入域的计算机;
- MDT 平台已经部署完成
- 在域客户端中创建MDT文件夹,我的路径为:
C:\\MDT
; - 在域客户端中打开
lusrmgr.msc
将MDT管理员账户ITPro\\MDT_BA
加入到本地管理员组; - 在域计算机中,访问MDT DeploymentShare
\\\\ITPRO-MDT01\\MDTBuildLab$
目录中的Scripts
文件夹,将下列文件复制到C:\\MDT\\
中:ZTIDataAccess.vbs
ZTIGather.wsf
ZTIGather.xml
ZTIUtility.vbs
==注意:如果你的环境中还有一些自定义的脚本,也需要将其复制到C:\\MDT目录里== - 将MDT DeploymentShare
\\\\ITPRO-MDT01\\MDTBuildLab$\\Control
目录中CustomSettings.ini
复制到C:\\MDT目录; - 在
C:\\MDT\\
中创建文件夹X64
,并将\\\\ITPRO-MDT01\\MDTBuildLab$\\Tools\\X64
中的Microsoft.BDD.Utility.dll
文件复制到C:\\MDT\\X64
中; - 将
CMTrace.exe
下载CMTrace下载链接并复制到C:\\MDT\\
中; - 创建Powershell 脚本,并将以下脚本粘贴进去保存为
Gather.ps1
# Check for elevation
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
[Security.Principal.WindowsBuiltInRole] "Administrator"))Write-Warning "Oupps, you need to run this script from an elevated PowerShell prompt!`nPlease start the PowerShell prompt as an Administrator and re-run the script."
Write-Warning "Aborting script..."
Breakcls
if (Test-Path -Path "C:\\MININT") Write-Host "C:\\MININT exists, deleting...";
Remove-Item C:\\MININT -Recurse
cscript.exe ZTIGather.wsf /debug:true# 通过CMTrace去打开日志
&
"C:\\MDT\\CMTrace" C:\\MININT\\SMSOSD\\OSDLOGS\\ZTIGather.log
文章图片
文章图片
文章图片
文章图片
使用方法我通过一些需求场景,自定义配置
CustomSettings.ini
,然后通过该模拟测试平台进行验证,看看最终的效果。需求场景:
- 默认计算机名为:
DESKTOP-
序列号的后 5 位(例如:DESKTOP-123QW
),加域并移到OU=Laptops,OU=Computers,OU=ITPro,DC=ITPro,DC=cc
OU 里 - 为了验证效果,我添加一个条件,当部署的客户端为虚拟机时,自动将计算机命名规则设置为
VM-
序列号的前 7 位(例如:VM-ABCD123
),加域并移动到OU=Workstations,OU=Computers,OU=ITPro,DC=ITPro,DC=cc
OU - 当部署的客户端为虚拟机时,自动部署
7zip
和微信
其他机型不做安装; - 当部署的客户端为虚拟机时,自动将屏幕分辨率设置为
1920*1080
。且安装界面Banner 的显示名为ITPro - OSDeployment for Virtual Machine
;
CustomSettings.ini
配置为以下内容:[hide]
[Settings]
Priority=Model, Default
Properties=MyCustomProperty[Virtual Machine]
_SMSTSORGNAME=ITPro.cc
_SMSTSpackageName="ITPro - OSDeployment for Virtual Machine"
BitsPerPel=32
VRefresh=60
XResolution=1920
YResolution=1080
OSDComputerName=VM-#Left("%SerialNumber%",7)#
MandatoryApplications001=7190c4fe-b62e-4d3a-b638-f0e8cc6def11
MandatoryApplications002=1d3b340f-4ff7-47b8-9dfb-5d0b75959a3e
MachineObjectOU=OU=Workstations,OU=Computers,OU=ITPro,DC=ITPro,DC=cc[Default]_SMSTSORGNAME=ITPro.cc
_SMSTSpackageName="ITPro - Win10 21H2 Enterprise"OSInstall=YES
SkipCapture=YES
SkipDeploymentType=YES
DeploymentType=NEWCOMPUTER
OSDComputerName=DESKTOP-#Right("%SerialNumber%",5)#
SkipAdminPassword=YES
Adminpassword=ITPro.cc@1688
SkipAppsOnUpgrade=NO
SkipComputerName=NO
SkipProductKey=YES
;
ProductKey=ABCD-XXXX-XXXX-XXXX ;
设置指定产品秘钥
SkipDomainMembership=NO
JoinDomain=ITPro.cc
DomainAdmin=ITPRO\\MDT_BA
DomainAdminPassword=P@ssword$$$.com
DomainAdminDomain=ITPro.cc
MachineObjectOU=OU=Laptops,OU=Computers,OU=ITPro,DC=ITPro,DC=cc
;
JoinWorkgroup=WORKGROUP
SkipComputerBackup=YES
SkipBitLocker=YES
SKipTaskSequence=NO
SkipFinalSummary=YES
SkipTimeZone=YES
TimeZoneName=China Standard Time
KeyboardLocale=en-us
UserLocale=zh-cn
UILanguage=en-us
SkipLocaleSelection=YES
SkipUserData=https://www.songbingjia.com/android/YES
SkipSummary=NO
SLShare=////ITPRO-MDT01//Logs$
;
WSUSServer=http:;
wsus01.ITPro.cc8530 ;
可指定部署过程中通过WSUS服务器更新系统补丁
ApplyGPOPack=NO
[/hide]
执行测试
- 以管理员身份执行前面创建的
Gather.ps1
; - 初次执行会报错,需要执行一条命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Force
- 初次执行完成后,会提示是否以CMTrace作为默认日志阅读工具,点 Yes即可;
文章图片
文章图片
文章图片
文章图片
检查日志
正常情况下 CMtrace 工具打开后没有红色、橙色信息,以及最后一行显示为 Successfully,说明配置没有问题,可以拿真机部署验证一下。
基于我们上面的需求,可以在模拟的输出日志中来查看是否都是按照预先的需求来正确的配置了
文章图片
总结【MDT8456部署Windows系列 : 技巧篇—模拟测试部署系统快速定位错误配置】通过以上方式,可以通过模拟测试环境,快速的测试并判断自定义的配置文件的配置正确与否,大大节约了我们前期的部署时间。
==注意: 该测试方式无法针对应用部署、驱动安装类的执行命令做模拟部署。涉及到这些范围,还是需要进行手动安装测试==
推荐阅读
- 快问快答—腾讯云服务器常见问题解答
- 什么是DevOps?为大家都在用DevOps
- LabVIEW 2021软件安装包和安装教程
- #云原生征文#Kubernetes集群部署
- 薅羊毛的齐家网遭增长瓶颈,互联网家装迎来破局者!1-06-13
- 科技创新如何托举湖湘未来(岳麓峰会夯实“长沙厚度”)
- 分布式服务 API 的幂等设计方案 &Spring Boot + Redis 拦截器实现实例
- “抢滩”中高端酒店,新老玩家谁会更先跑出来()
- Redis为什么是单线程(高并发响应快?)