环境
Windows Server 2012 Standard x64
DC
林功能级别:Windows Server 2008 R2
域功能级别:Windows Server 2008 R2
Windows Server 2019 x64
Microsoft Deployment Toolkit 6.3.8456.1000
Windows 评估和部署工具包 Windows ADK 10.1.19041.1
测试机型
组装机 1 HDD
组装机 1 SSD + 1 HDD
戴尔 商用机 1 MS SSD + 1 HDD
戴尔 工作站 1 M2 SSD + 2 HDD
目的
实现 MDT 网络安装时,自动格式化所有硬盘,若有 SSD 固态硬盘,则自动部署/安装系统到 SSD 硬盘中,若有 M2,则优先安装到 M2。
以下步骤均以 x64 为例。
更新 2023-03-03
修复了下文章。
步骤
配置 Deployment Share
上传脚本 UserExit.vbs 到项目中的 Scripts 目录中。
以下以 M2 脚本为示例(同样支持无 M2 硬盘),M2 脚本仅支持 Windows 10 PE 以上。
之前文章脚本,请查看 Github: https://github.com/Shankschn/MDT-Scripts
上传 clear_disk_gpt.ps1 至“deployroot\scripts\”下。
编辑项目 Rule,在相关设置中配置如下内容,其他配置均省略。
[Settings]
Priority=CustomUE,Defatult
[CustomUE]
UserExit=UserExit.vbs
OSDDiskIndex=#SetOSDisk()#
[Default]
...
编辑 Winidows PE,选择 Platform x64。
点击 Feaatures,勾选 Storage Management Cmdlets(重要),Microsoft Data Access Components (MDAC/ADO) support,.NET Framework,Windows PowerShell(重要)。 由于原本就勾了一些,至于其他是不是必须的...懒得测试了...。
UserExit.vbs
Function UserExit(sType, sWhen, sDetail, bSkip)
oLogging.CreateEntry "entered UserExit ", LogTypeInfo
UserExit = Success
End Function
Function SetOSDisk()
Set ObjShell = CreateObject("WScript.Shell")
deployroot = oEnvironment.Item("deployroot")
cmd1 = "powershell.exe -noprofile -executionpolicy bypass -file " & deployroot & "\scripts\clear_disk_gpt.ps1"
oLogging.CreateEntry "UserExit: Command to run " & cmd1, LogTypeInfo
ObjShell.run cmd1,0,true
set wmi = GetObject("Winmgmts:\\.\Root\Microsoft\Windows\Storage")
set disks = wmi.Execquery("Select * from MSFT_PhysicalDisk")
for each d in disks
if d.MediaType=4 then
diskid=d.DeviceId
if d.BusType=17 then
exit for
end if
end if
next
if diskid = "" then
diskid=0
end if
SetOSDisk = diskid
End Function
clear_disk_gpt.ps1
Get-Disk |ForEach {
Clear-Disk -Number $_.Number -RemoveData -RemoveOEM -Confirm:$false
}
Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false
配置 Task Sequences 中的 Task Sequence
提示
以下操作均配置在 Preinstall -> New Computer only 中,此方案不可与其他方案混用。
开始
添加 General 中的 Set Task Sequence Variable:
Name:Custom DiskDone=NO
Task seqquence Variable:DiskDone
Value:NO
配置 Group:OS to Disk
此处以配置 Group:OS to Disk 3 为例,由于太多重复,就不细说了。
Group:OS to Disk 2, Group:OS to Disk 1,请参考 Group:OS to Disk 3 自行配置。
1.添加 Group:OS to Disk 3。
2.配置 Group Options:
- 添加执行条件 if all conditions are true
- 添加执行条件 task Sequence Variable Condition:DiskDone not equals Yes
- 添加执行条件 task Sequence Variable Condition:OSDiskIndex equals 3
3.Group 内,配置 Format and Partition Disk,配置时 disk 序号请选择 3:
- Format and Partition Disk 3 (BIOS)
- Format and Partition Disk 3 (UEFI)
4.Group 内,添加 General 中的 Set Task Sequence Variable:
- Name:Custom DiskDone=YES
- Task seqquence Variable:DiskDone
- Value:YES
配置 Group:OS to Disk 0
1.添加 Group:OS to Disk 0。
2.配置 Group Options:
- 添加执行条件 task Sequence Variable Condition:DiskDone not equals Yes
3.Group 内,配置 Format and Partition Disk 配置时 disk 序号请选择 0:
- Format and Partition Disk 0 (BIOS)
- Format and Partition Disk 0 (UEFI)
4.Group 内,添加 General 中的 Set Task Sequence Variable:
- Name:Custom DiskDone=YES
- Task seqquence Variable:DiskDone
- Value:YES
Update Deployment Share
配置完所有步骤后,应用,并确认,Update Deployment Share,一直下一步即可。
配置 MDS
在 MDS Windows 部署服务管理器 -> 启动映像中:
1.禁用原启动镜像(默认名:MDT Production x64)
2.添加新启动镜像:Deployment Share 工程目录目录下的 boot 文件中,应该会有一个现在时间点生成的 MDT Production x64.wmi 文件,添加它即可。
最后,重启启动 WDS 服务即可。
相关报错
格式化并分区硬盘步骤成功,但是 MDT 设置的系统启动分区盘符与 MDT 部署时实际系统分区盘符不符,出现此错误。
could not find ccm install folder. don't use ccmerrors.dll
格式化并分区硬盘步骤失败/被跳过,出现错误,检查日志,排查为什么失败。
x:\windows\temp\deployment scripts\wizard.hta
参考
www.cnblogs.com/dreamer-fish/p/13175537.html
www.deploymentresearch.com/creating-custom-variables-in-mdt-2013/
social.technet.microsoft.com/Forums/en-US/56723290-c78c-4083-af92-bd6294f425ab/using-custom-properties-in-task-sequence-conditional-statement?forum=mdt
social.technet.microsoft.com/Forums/en-US/f32c9757-d49c-4bd8-b496-8904ff04d12b/priority-properties-and-userexit-script?forum=mdt
docs.microsoft.com/en-us/previous-versions/windows/desktop/stormgmt/msft-physicaldisk
www.deploymentresearch.com/mdt-2013-lite-touch-driver-management/
docs.microsoft.com/en-us/mem/configmgr/osd/understand/using-task-sequence-variables
docs.microsoft.com/zh-cn/windows/deployment/deploy-windows-mdt/configure-mdt-for-userexit-scripts
docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-tasks--disks-and-file-systems
social.technet.microsoft.com/Forums/en-US/e57b2c8d-a0d8-4e5b-b42a-287415f07c93/mdt-2010-with-multiple-drives?forum=mdt
docs.microsoft.com/en-us/mem/configmgr/mdt/samples-guide#deploying-the-correct-device-drivers-to-computers-with-the-same-hardware-devices-but-different-make-and-model
social.technet.microsoft.com/Forums/en-US/bd72de95-2ce3-41fa-ac4a-1ca9693f2d00/multiple-userexit-scripts-built-into-default?forum=mdt
social.technet.microsoft.com/Forums/en-US/f497a85a-2423-4fb1-9252-1d602ed3ad9f/how-to-set-up-multiple-hard-disks?forum=mdt
superuser.com/questions/1073817/how-to-detect-identify-m-2-ssd
docs.microsoft.com/en-us/previous-versions/windows/desktop/stormgmt/msft-disk?redirectedfrom=MSDN
多谢楼主
学习一下,谢谢版主
学习一下
学习一下,感谢博主
测试下试试
正需要,来看看
回复博客支持博主,感谢分享
来看看怎么搞。想了好久没搞定
遇到多硬盘,试了几个方案都不行。。。来参考一下
你现在能看了吗
来学习一下
来学习一下
大佬好,想学习一下~
感谢博主分享
感谢博主
学习一下,谢谢版主
学习一下谢谢
要回复才能看的内容看不了啊
学习一下多硬盘
学习一下如何部署的
感谢博主分享 学习一下
学习一下如何部署的
来学习下
学习一下
学习下
MDT Windows 多硬盘部署系统 网络安装系统方案 自动格式化所有硬盘 自动部署系统到 SSD 硬盘 且优先安装到 M2
学习了 task设置, 可是还是不行呢。能帮忙指导下么
加上方的群吧,应该过段时间会出个视频
群在哪里呀
主页最上方就是。
测下试试
研究了好久了 看看博主的方法好用不
学习学习
很想学习一下,坐等审核通过
SATA SSD总是失败,识别为Dsik 1,M2 就能识别为Disk 0.
那应该没有全部配置对,少配置了脚本。还是进入到了微软本身的磁盘识别程序。
测试一下
评论看看能不能用~
....赵琳同学?
双硬盘解决方案找了好久
大厂的解决方案想知道不
找了好久终于看到了一个好方法,看看怎么解决
还是国外的网站资料全呀
我为啥又看不到了 之前评论过啊
换过浏览器,或者清空过浏览器 cookies。
面临同样多硬盘选择问题,看答案
想看看具体的,困扰了很多天谢谢
感谢博主分享 想看看细节,困扰了很久
SATA和HDD应该也是差不多的方案吧
方案一致,就是 代码 略有不同。
想问下博主选择固态硬盘作为系统盘是参考哪个文档做出来的
参考很多,对我有用的文档都在参考中。
学习一下
学习
学习一下
博主您好:机械和固态、在cmd模式下看、disk0 是机械、disk1 是固态、请问如何配置才能安装到固态呀?非常感谢
查看文章即可。
感谢分享 OωO
正卡在 BCDbootEx 5616
Disk 0 為HDD
Disk 1 為M2 SSD⌇●﹏●⌇
查看文章即可。
试过很多办法,都无法解决
多硬盘部署苦难中,过来试试你这方法
面临同样多硬盘选择问题,看答案
只有机械硬盘 应该就默认会安装到机械硬盘吧? 感谢博主的 分享,晚点我回去再试试
是的。
MDT学习
感谢分享 OωO
像博主学习,感谢分享
像博主学习,双硬盘苦恼好几天了
mdt 是個好工具, 目前正找方法解決複數硬碟問題
唉 我双硬盘配置已经搞了三天了 唉 脑瓜子疼
搞了1周。。
很简单
kankan
回复博客支持博主,感谢分享
那这个默认是什么样的选择方法?
没理解你的意思。