天天看點

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

使用效果