天天看点

MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单

前言

我在前面有写过 《Powershell实现多硬盘的电脑使用MDT or SCCM安装系统选择目的盘清单》 的文章(最早在2年前我的个人博客发出来),因为我这几年生产环境一直用的是

SCCM

MDT

当时只是简单自己测试通过,并没有做详细记录。但这段时间一直有网友一直和反馈这个方法在

MDT

平台没法正常工作,今天抽空把环境复现并做记录,供大家参考。

需求背景

现在公司新购的ThinkPad或Dell笔记本和台式机部分机型预装为2块物理磁盘。默认情况下使用

MDT

在线部署操作系统时,只能通过任务序列中选择指定的硬盘和分区进行部署系统。但有些机器

Disk1

为固态磁盘,有些

Disk0

为固态磁盘,不太方便选择系统安装的目的磁盘。而且有些时候 HelpDesk 会有一些奇葩的需求,要求系统安装在他指定的磁盘上,没有任何规则可言。

最终目标

实现针对不同机型,自动部署系统至正确的磁盘或弹框让Helpdesk人员部署系统时手动选择安装系统的目的磁盘。

MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单

操作步骤

以下内容、脚本在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

    里面,如下图所示:
    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
  • 访问:

    MDTDeploymentShare\Scripts\

    并创建

    Custom\ChooseDisk

    目录(个人习惯,该目录用来存放后续使用的自定义脚本。也可以不创建,直接放在

    Scripts

    目录底下)
    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
  • 创建任务一

    检查计算机是否存在多个硬盘

    ,任务类型为

    Run Powershell Script

    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
  • 将前面创建的

    CheckDisk.ps1

    脚本存放在

    MDTDeploymentShare\Scripts\Custom\ChooseDisk

    ,并在任务一

    Choose Disk

    里执行(如下图所示),执行脚本如下:
    %ScriptRoot%\Custom\ChooseDisk\CheckDisk.ps1
               
    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
  • 创建任务二

    选择安装系统的目的磁盘

    ,任务类型为

    Run Command Line

    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
    执行命令如下:
    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -STA -NoProfile -ExecutionPolicy Bypass -File "%SCRIPTROOT%\Custom\ChooseDisk\ChooseDiskWPF.ps1"
               
  • 我将

    CheckDisk.ps1

    ,

    ChooseDiskWPF.ps1

    以及其他所需文件及目录

    ChooseDisk

    打包,可以下载并解压缩存放在

    Scripts\Custom

    文件夹直接使用。

点我下载访问密码Blog.itpro.cc

  • 设置任务二

    选择安装系统的目的磁盘

    的执行前提条件。简单的解释一下其目的: 当物理磁盘只有一个时则不需要执行这一步;如果有多块物理磁盘,则需执行该模块弹出 GUI 界面让用户选择安装系统的目的磁盘。

    这里会用到

    CheckDisk.ps1

    这个脚本执行返回的变量

    $MoreThanOneHD

    值,即:当

    MoreThanOneHD=TRUE

    时,符合执行任务二的前提条件。
    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单
    MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单

3.配置 PE 启动镜像组件

默认情况下 MDT PE 里是没有添加 Powershell 等相关模块的,这样会导致上述的脚本无法正常运行

选择以下组件

  • PowerShell
  • .NET Framework
  • Storage Management Cmdlets
  • Enhanced Storage
MDT部署Windows系列 (十): 进阶篇—针对多硬盘计算机制作系统目的磁盘选择菜单

4.更新 MDT及Boot Image并替换至 WDS

使用效果