![](/style/images/good.png)
![](/style/images/bad.png)
MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
source link: https://blog.51cto.com/jasonhuang/5381059
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
原创我在前面有写过 《Powershell实现多硬盘的电脑使用MDT or SCCM安装系统选择目的盘清单》 的文章(最早在2年前我的个人博客发出来),因为我这几年生产环境一直用的是SCCM
,MDT
当时只是简单自己测试通过,并没有做详细记录。但这段时间一直有网友一直和反馈这个方法在MDT
平台没法正常工作,今天抽空把环境复现并做记录,供大家参考。
现在公司新购的ThinkPad或Dell笔记本和台式机部分机型预装为2块物理磁盘。默认情况下使用MDT
在线部署操作系统时,只能通过任务序列中选择指定的硬盘和分区进行部署系统。但有些机器Disk1
为固态磁盘,有些Disk0
为固态磁盘,不太方便选择系统安装的目的磁盘。而且有些时候 HelpDesk 会有一些奇葩的需求,要求系统安装在他指定的磁盘上,没有任何规则可言。
实现针对不同机型,自动部署系统至正确的磁盘或弹框让Helpdesk人员部署系统时手动选择安装系统的目的磁盘。
![MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单_PowerShell](https://s4.51cto.com/images/blog/202206/14103714_62a7f45a2cfb751909.jpg?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
以下内容、脚本在MDT2012 ~ MDT8456版本均测试通过,如有问题,可截图与我联系。
1.判断OSD
目标机器是否存在多块物理硬盘
将以下PowerShell
命令保存为CheckDisk.ps1
,该脚本用途是获取目标机器的物理硬盘信息。这里做个简单排除,将USB的硬盘排除在外。并且如果结果大于 1
说明有多块磁盘,这时候再创建一个变量$MoreThanOneHD
并将其值设为$TRUE
.
If ((Get-Disk | Where-Object -FilterScript {$_.Bustype -ne 'USB'}).Count -gt 1) {$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment;$TSEnv.Value(‘MoreThanOneHD’)= $true}
2.创建 MDT 任务序列
-
打开部署任务,在格式化硬盘前面
新建任务组
,我是放在Preinstall
里面,如下图所示: -
访问:
MDTDeploymentShare\Scripts\
并创建Custom\ChooseDisk
目录(个人习惯,该目录用来存放后续使用的自定义脚本。也可以不创建,直接放在Scripts
目录底下) -
创建任务一
检查计算机是否存在多个硬盘
,任务类型为Run Powershell Script
-
将前面创建的
CheckDisk.ps1
脚本存放在MDTDeploymentShare\Scripts\Custom\ChooseDisk
,并在任务一Choose Disk
里执行(如下图所示),执行脚本如下:%ScriptRoot%\Custom\ChooseDisk\CheckDisk.ps1
-
创建任务二
选择安装系统的目的磁盘
,任务类型为Run Command Line
执行命令如下:%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -STA -NoProfile -ExecutionPolicy Bypass -File "%SCRIPTROOT%\Custom\ChooseDisk\ChooseDiskWPF.ps1"
-
我将
CheckDisk.ps1
,ChooseDiskWPF.ps1
以及其他所需文件及目录ChooseDisk
打包,可以下载并解压缩存放在Scripts\Custom
文件夹直接使用。
-
设置任务二
选择安装系统的目的磁盘
的执行前提条件。简单的解释一下其目的: 当物理磁盘只有一个时则不需要执行这一步;如果有多块物理磁盘,则需执行该模块弹出 GUI 界面让用户选择安装系统的目的磁盘。这里会用到
CheckDisk.ps1
这个脚本执行返回的变量$MoreThanOneHD
值,即:当MoreThanOneHD=TRUE
时,符合执行任务二的前提条件。
3.配置 PE 启动镜像组件
默认情况下 MDT PE 里是没有添加 Powershell 等相关模块的,这样会导致上述的脚本无法正常运行
选择以下组件
- PowerShell
- .NET Framework
- Storage Management Cmdlets
- Enhanced Storage
![MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单_MDT部署Windows_09](https://s8.51cto.com/images/blog/202206/14103714_62a7f45a6b05f55881.jpg?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
4.更新 MDT及Boot Image并替换至 WDS
![MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单_MDT部署Win11_10](https://s7.51cto.com/images/blog/202206/14103715_62a7f45b6586032868.jpg?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
我将虚拟机新增一块磁盘(共计 2 块),然后从 WDS 引导启动,效果如下:
![MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单_MDT多磁盘系统安装_11](https://s5.51cto.com/images/blog/202206/14103717_62a7f45db82c158755.gif?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
以上,完成在独立MDT
环境中实现基于计算机物理磁盘数量制作安装系统目的磁盘的选择菜单。Enjoy ~
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK