[MDT] Microsoft Deployment Toolkit を使用したOSイメージ展開

メモ:  Category:windows

多くの端末に同じクライアント環境を展開したい場合、 Windows展開サービス(Windows Deployment Service : WDS) や Microsoft Deployment Toolkit(MDT) などを使うことができます。

Windows の展開方法は、大きく分けて「ハイタッチインストール」,「ライトタッチインストール」,「ゼロタッチインストール」の3つに分けることができます。

ハイタッチインストール(フルタッチインストール)
メディアから直接インストールするような素の状態(ドライバーやアプリケーションのインストールなどのカスタマイズが行われていない)でのインストール作業のことをハイタッチインストールといいます。ドライバーやアプリケーションのインストールおよびカスタマイズが行われていない状態でのインストール作業のことを表します。インストール作業中に多くのユーザー操作が必要となる展開方法になります。
ライトタッチインストール
展開作業中のユーザーを操作を極力少なくした展開方法になります。Microsoft から、展開に使用するツールとしてWindows 展開サービス (WDS) や Microsoft Deployment Toolkit (MDT) が提供されています。
ゼロタッチインストール
ユーザーの操作なで展開する方法になります。Microsoft から、 Microsoft System Center Configuration Manager (SCCM) が提供されています。

ここでは、ライトタッチインストールである Microsoft Deployment Toolkit (MDT) を使った展開方法を記録しておきます。

Microsoft Deployment Toolkit (MDT) に関する日本語の情報が少なく、下記サイトの情報にとても助けられました。

環境構築

必須ツール

MDT のために最低限必要なコンポーネントは、Deployment Tools と Windows Preinstallation Environment (WinPE)になります。

ネットワークブート環境での展開を行うために必要なツール

用語

Windows PE(WinPE)

Windows PE とは、 Windows Preinstallation Environment のことで、光学メディアや USB フラッシュメモリなどから HDD にインストールすることなく起動できる小型版のWindowsになります。OS をインストールするためのブート機能や OS の修復などにも使用されます。

展開用イメージ作成準備

DeploymentWorkbench を起動します。

DeploymentWorkbench

展開するイメージを共有するフォルダーを作成します。左ペインにある「DeploymentShares」を右クリックし、表示されたメニューの「New Deployment Share」を選択します。

ポップアップメニュー New Deployment Share

ウィザードが起動するので、展開する OS を共有するフォルダーを作成する場所を指定します。デフォルト設定は、「C:¥DeploymentShare」が指定されておりウィザードでフォルダーが作成されます。ここでは、デフォルトのまま作業を進めます。

共有するフォルダーのパス設定

フォルダーの共有名を指定します。デフォルトの設定は、「DeploymentShare$」という名前で隠し共有フォルダーとなります。ここも、デフォルトのまま作業を進めます。

共有名の設定

Deployment Workbench 上での共有フォルダーの表示名を指定します。デフォルトの設定は、「MDT Deployment Share」 という名前になります。ここも、デフォルトのまま作業を進めます。

共有フォルダーの表示名設定

展開を実行するときに尋ねる項目を指定します。とりあえず、デフォルトのまま進めます。

展開を実行するときに尋ねる項目

設定内容が表示されるので確認して次へ進めます。

設定の確認

共有フォルダーになにやら追加され、作業用の環境が構築されます。

展開イメージの作成

Microsoft Deployment Toolkit (MDT) では、次の展開作業をタスクシーケンスという単位でまとめられます。

  1. ディスクのフォーマット
  2. OS のインストール(Operating Systems)
  3. ドライバーのインストール(Out-of-Box Drivers)
  4. 更新プログラムのインストール(Packages )
  5. アプリケーションのインストール(Application)
  6. OS のカスタマイズ
  7. マスターイメージのキャプチャー

これらの作業を個別に定義し、タスクシーケンスを作成していきます。

展開用のOSイメージをインポート

Microsoft Deployment Toolkit (MDT) では、3種類のイメージを対象として展開用のイメージを作成できるようですが、ここではボリュームライセンスサイトからダウンロードした Windows のインストールメディアを対象に作業を進めます。

  • ボリュームライセンスサイトからダウンロードした、iso イメージ
  • 参照コンピューター(マスタPC)からキャプチャーした OS イメージ
  • Windows 展開サービスのイメージ

MDT では、変数を使って動的に展開することができます。そのためにも、MDT のフォルダー階層のベストプラクティスに従い各作業項目の中を階層化し区別しておくことが薦められます。 「MDT のフォルダー階層のベストプラクティス」に則って Operating Systems のフォルダーを階層化します。

Operating Systems の推奨フォルダー階層

Operationg Systems フォルダーに 「Windows 10 Pro 1809\x64\JP\Original」フォルダーを作成します。

Operating Systems のフォルダー作成

ボリュームライセンスサイトからダウンロードした Windows 10 Pro Version 1809 の iso イメージをマウントします。

作成した「Original」フォルダーを右クリックし、「Import Operationg System」を選択します。

Operating Systems のインポート

OS Type ページでインポートする OS のイメージタイプで 「Full set of source files」 を選択します。(インポートするイメージの種類に応じて選択します。)

Full set of source files
ボリュームライセンスサイトからダウンロードした iso ファイルをインポートする場合に選択します。
Custom image file
キャプチャーしたイメージ (WIM)ファイルをインポートする場合に選択します。
Windows Deployment Services images
Windows 展開サービスのイメージをインポートする場合に選択します。
インポートする Operating Systems の種類選択

iso イメージをマウントしたドライブを指定します。

インポートする Operating Systems の場所を指定

インポートされる物理フォルダーの名前を指定します。例えば、「Windows 10 Pro x64 1809」とした場合 C:\DeploymentShare\Operating Systems\Windows 10 Pro x64 1809 フォルダーにインポートが行われます。

インポートされる物理フォルダーの名前を指定

OS イメージのインポートが完了すると中央のペインに OS の名称が表示されます。

Operating Systems のインポート結果

OS を展開するだけであれば、この段階でタスクシーケンスを作成することで展開を行うことができるようになります。

デバイスドライバーのインポート

デバイスドライバーは、Windows PE に必要なものと各機種に必要なものがあります。 MDT では、環境をうまく用意することで変数を使って1つのタスクで複数の機種を展開できます。その準備として、MDT のフォルダー階層のベストプラクティスにあるフォルダー階層で環境を準備します。

ドライバーの推奨フォルダー階層

Out-of Box Drivers フォルダーに 「WinPE 10\x64」と「Windows 10 Pro 1809\x64\Microsoft Corporation\Surface Pro 4」のような形式でフォルダーを作成します。

機種別のフォルダーについては、PowerShell を使用して事前に調べておく必要があります。

Get-WmiObject Win32_ComputerSystem | Select Model,Manufacturer

Model         Manufacturer
-----         ------------
Surface Pro 4 Microsoft Corporation

Out-of Box Drivers フォルダーを右クリックし、メニューの「New Folder」を選択します。

ドライバーのフォルダー作成

おすすめのフォルダー階層でフォルダーを作成すると、次のようなイメージでフォルダーの準備が完了します。

ドライバーの推奨フォルダー階層

イメージを作成したい機種に応じてドライバーをダウンロードします。

各種ドライバーのダウンロード先例:

例えばDELLの場合、DELL のファミリー ドライバー パック サイトから WinPE 10 をダウンロードします。ダウンロードしたファイルを展開し、 DeploymentWorkbench で作成した 「Out-of-Box Drivers\WinPE\x64」フォルダーを右クリックし、表示されたメニューの Import Drivers を選択します。

WinPE ドライバーインポート

Specify Directoryのページで 展開した Windows PE のドライバーフォルダを参照してウィザードを進めます。

Windows PE のドライバーフォルダを参照

ドライバーのインポートが完了すると中央のペインにドライバーが表示されます。

WinPE ドライバーインポート結果

同じように機種別(モデル別)のドライバーもインポートします。

例えばDELLの Optiplex 7060 の場合、D9 OptiPlexファミリー のドライバーをダウンロードします。ダウンロードしたファイルを展開し、 DeploymentWorkbench で作成した 「Out-of-Box Drivers\Windows 10 Pro 1809\x64\Dell Inc.\Optiplex 7060」フォルダーを右クリックし、表示されたメニューの Import Drivers を選択します。

モデル固有のドライバーインポート

Specify Directoryのページで 展開した Optiplex 7060 のドライバーフォルダを参照してウィザードを進めます。

モデル固有のドライバーフォルダを参照

ドライバーのインポートが完了すると中央のペインにドライバーが表示されます。

モデル固有のドライバーインポート結果

ドライバー追加用の選択プロファイル作成

WinPEに必要なドライバーを指定するためにプロファイルを作成します。DeploymentWorkbench の左ペインにある 「Advanced Configuration」の「Selection Profiles」を右クリックし、表示されたメニューから「New Selection Profile」を選択します。

WinPEに必要なドライバープロファイル作成

ウィザードが実行されるので、 General Settings のページに作成するプロファイルの名前を入力し作業を進めます。ここでは、 WinPE x64 と名前を付けました。

プロファイルの名前設定

対象とするドライバーをインポートしたフォルダーを選択します。ここで、プロファイルとドライバーが紐つきます。

WinPE ドライバーの指定

ウィザードに従って作業を進めると、中央のペインに指定した名前のプロファイルが作成されます。

モデル固有のドライバープロファイル作成

次に機種別(モデル別)に用意されたドライバーのプロファイルを作成します。1つのタスクで複数の機種に対応したい場合は、このプロファイルは必要ありません。複数機種対応については、別途まとめたいと思います。ここでは、機種固有の設定を行っていきます。

DeploymentWorkbench の左ペインにある 「Advanced Configuration」の「Selection Profiles」を右クリックし、表示されたメニューから「New Selection Profile」を選択します。

WinPEに必要なドライバープロファイル作成

ウィザードが実行されるので、 General Settings のページに作成するプロファイルの名前を入力し作業を進めます。ここでは、 Optiplex 7060 Win 10 x64 と名前を付けました。

プロファイルの名前設定

対象とする機種固有のドライバーをインポートしたフォルダーを選択します。ここで、プロファイルとドライバーが紐つきます。

モデル固有のドライバー指定

ウィザードに従って作業を進めると、中央のペインに指定した名前のプロファイルが作成されます。

プロファイル作成結果

以上でドライバーのプロファイル作成は完了です。

タスクシーケンスの作成

展開プロセスはタスクシーケンスによって行われます。タスクシーケンスの管理が行いやすいように、MDT のフォルダー階層のベストプラクティスに従いフォルダーを階層化しておくことが薦められます。 「MDT のフォルダー階層のベストプラクティス」に則って Task Sequences のフォルダーを階層化します。

タスクシーケンスの推奨フォルダー階層

Deployment Workbench の左ペインにある Task Sequences を右クリックし、表示されメニューの New Folder を選択します。フォルダーに 「Windows 10 Pro 1809\x64\JP」フォルダーを作成します。

タスクシーケンスの推奨フォルダー作成

推奨のフォルダー階層となるようフォルダーの作成を繰り返します。

タスクシーケンスの推奨フォルダー

作成したフォルダーを右クリックし、表示されたメニューの New Task Sequence を選択します。準備した OS とドライバーを組み合わせて OS の展開ができるようタスクシーケンスを作成していきます。

新規タスクシーケンスの作成

表示されたウィザードに Task sequence ID と Task sequence name を入力します。これらのフィールドは展開共有で、他のタスクシーケンスと区別するために一意にになるよう設定します。ここでは、Task sequence ID を Win10x64-1809-1、 Task sequence name を Windows 10 Pro x64 1809 7060 としています。

※Task sequence ID は、最大16文字で空白なしになります。

新規タスクシーケンスの作成

Select Template ページで、「Standard Client Task Sequence」を選択してウィザードを次に進めます。

選択可能なテンプレートは、次のテンプレートが用意されています

Sysprep and Capture
参照コンピューターの展開準備を目的として参照コンピューターから開始し、イメージをキャプチャして展開共有を作成するために使用されます。
Standard Client Task Sequence
オペレーティングシステムを新しいコンピューターに展開するために必要なタスクシーケンスを作成します。
Standard Client Replace Task Sequence
既存のオペレーティングシステムを置き換えるための準備のために使用されます。
Custom Task Sequence
カスタマイズ可能な白紙のタスクシーケンスを作る場合に使用されます。
Litetouch OEM Task Sequence
OEM ベンダーによって使われるテンプレートです。
Standard Server Task Sequence
Windows Server を展開するためのタスクシーケンスを作成するために使用されます。
Post OS Installation Task Sequence
オペレーティングシステムがインストールされた後、必要とされる様々なタスクを実行できます。たとえば、展開共有から既存の Windows 環境へアプリケーションをインストールすることができます。
Deploy to VHD Client Task Sequence
VHD からブートするコンピューターへ Windows クライアントを展開するために使用されます。
Deploy to VHD Server Task Sequence
VHD からブートするコンピューターへ Windows Server を展開するために使用されます。
テンプレートの選択

Select OS ページで、インポートしてある OS を選択します。ここでは、 Windows 10 Pro in Windows 10 Pro x64 install.wim を選択して次に進めます。

OS イメージの選択

Specify Product Key ページで、プロダクトキーの運用方法を指定します。ここでは、「Do not specify a product key at this time.」を選択して次に進めます。Specify a multiple activation key (MAK key) for activating. を選択することで、プロダクトキーの入力を省略することができます。

選択可能なオプションは、次の3つになります。

Do not specify a product key at this time.
キーは指定せず、プロダクトキーは展開時に入力します。
Specify a multiple activation key (MAK key) for activating.
MAKキーを指定します。(ボリュームライセンス)
Specify the product key for this operating system.
特定のキーを指定します。通常1台しかアクティベートする事は出来ません。
プロダクトキーの設定方法選択

OS Settings ページで、「Full Name」と「Organization」,「Internet Explorer Home Page」に 名前と組織名,IEの初期ページを入力し次に進めます。

名前・組織・IEのホームページ設定

Admin Password ページで、ローカル Administrator のパスワードを入力して次に進めます。

ローカル Administrator のパスワード設定方法指定

以上で設定が完了するので最後までウィザードを進めます。

タスクシーケンスにドライバーを関連付ける

作成したタスクシーケンスが、中央のペインに表示されるので選択し右クリックして表示されたポップアップメニューから[プロパティ]を選択します。

タスクシーケンスの設定画面表示

表示されたプロパティダイアログの「Task Sequence」タブをクリックします。左ペインのツリーの中から Preinstall フォルダを展開し、 Inject Drivers をクリックして選択します。Choose a selection profile にモデル固有のドライバーに用意したプロファイル(ここでは、Optiplex 7060 Win 10 x64)を選択します。インストールするドライバの対象を選択したプロファイルにしたいので、 Install only matching drivers from the selection profile を選択します。

Preinstall - Inject Drivers の設定

応答ファイルの設定

通常のインストール時に、言語やキーボードの種別など設定に関する質問に対してユーザーが入力するケースがありますが、この質問に対して応答する内容を応答ファイルに設定することで自動化することができます。この応答ファイルは、 Unattend.xml という XML ファイルとして用意されます。

作成したタスクシーケンスにある 「OS Info」タブを選択します。「Edit Unattend.xml」ボタンをクリックし応答ファイルを作成します。

応答ファイル(Unattend.xml)の作成

Windows のインストールは、大きく分けて7つのフェーズで構成されています。このフェーズを構成パスといい、無人インストールのための設定を追加することができます。

インストールフェーズの1つである oobeSystem (oobe は、Out-Of-Box Experience の略です。)にロケールを設定します。応答ファイルの oobeSystem を展開し、 「amd64_Microsoft-Windows-InternationalCore_neutral」を選択します。

応答ファイルの設定

ここでは、日本語に設定するためにロケールと言語を次のように設定します。

プロパティ
InputLocale 0411:00000411
SystemLocale ja-JP
UILanguage ja-JP
UserLocale ja-JP
ロケールと言語の設定

次に「amd64_Microsoft-Windows-Shell-Setup_neutral」を選択し、タイムゾーンの設定を行います。表示されたプロパティの TimeZone に 「Tokyo Standard Time」 と入力します。

タイムゾーンの設定

Display を未設定のまま応答ファイルを作成するとエラーが表示される事があるため、「amd64_Microsoft-Windows-Shell-Setup_neutral」を展開して「Display」項目を削除します。

Display 設定の削除

応答ファイルの設定が完了したら、保存しておきます。

応答ファイルの保存

保存すると次の警告が表示されますが、特に影響がないようですのでそのまま作業を進めます。

NetworkLocation の警告

Windows 展開ウィザードの動作設定

Windows 展開ウィザードによって表示されるプロンプトをスキップするように customsettings.ini と bootstrap.ini ファイルを構成します。

DeploymentWorkbench の左ペインにある「MDT Deployment Share」を右クリックして表示されたメニューから「プロパ ティ」をクリックします。

展開共有のプロパティ

表示されたダイアログの「Rules」タブをクリックし、Windows 展開ウィザードによって表示されるプロンプトをスキップするよう設定を追加します。

[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]

_SMSTSORGNAME=bnote
OSInstall=YES
SkipCapture=NO
SkipAdminPassword=YES
SkipProductKey=YES
SkipBitLocker=YES
SkipUserData=YES
UserDataLocation=AUTO
SkipApplications=NO
SkipLocaleSelection=YES
SkipTimeZone=YES
TimeZoneName=Tokyo Standard Time
SkipSummary=YES
SkipFinalSummary=NO
HideShell=YES
ApplyGPOPack=NO
SkipAppsOnUpgrade=NO
SkipComputerName=NO
SkipTaskSequence=NO

customsettings.ini の設定は、多くの項目があるようなのでどこかで追記していきたいです。

ブート メディア ルールの設定

プロパティダイアログの右下にある「Edit Bootstrap.ini」をクリックします。

Bootstrap.iniの編集

メモ帳が起動して Bootstrap.ini が開くので、次の内容を設定して保存します。ここで、隠し共有フォルダーとして作ったフォルダーにアクセスしイメージが取得できるよう設定しています。

[Settings]
Priority=Default

[Default]
DeployRoot=¥¥PC-MDT¥DeploymentShare$
UserDomain=(ドメイン名、もしくはスタンドアロン環境の場合は、展開サーバーのコンピューター名)
UserID=(展開サーバーにアクセスするドメイン ユーザー名もしくはローカル ユーザー名)
UserPassword=(展開サーバーにアクセスするユーザーのパスワード)
SkipBDDwelcome=Yes

Windows PE のドライバー設定

共有フォルダーのプロパティから Windows PE のドライバーを設定します。表示されたダイアログの「Windows PE」タブをクリックします。

Platform に x64 を指定します。 「Windows PE」タブの中にある「Drivers and Patches」タブをクリックし、Selection profileを作成した WinPE x64 プロファイルに変更します。

Windows PE のドライバー設定

「OK」ボタンをクリックして設定を保存します。

ブートメディアの作成

展開共有を右クリックし、表示されたポップアップメニューから 「Update Deployment Share」をクリックします。

Update Deployment Share

Update Deployment Share Wizard が表示されるので、 Options ページで Optimize the boot image updating process を選択しウィザードを最後まで進めます。

Update Deployment Share Wizard

作成した共有フォルダーにブートイメージ等が作成されます。(例:C:\DeploymentShare\Boot)

Windows 展開サービスへブートイメージを追加

作成したブートイメージを Windows 展開サービスへ追加します。Windows 展開サービスを実行し、左ペインにあるブートイメージを右クリックし表示されたポップアップメニューの「ブートイメージの追加」をクリックします。

Windows 展開サービスへブートイメージの追加

イメージの追加ウィザードのファイルの場所にMDTで作成したブートイメージを指定し次に進めます。(例:C:¥DeploymentShare¥Boot¥LiteTouchPE_x64.wim)

作成したブートイメージの追加

イメージの名前と説明を追加します。ここでは、デフォルトのままとしてウィザードを最後まで進めます。

イメージの名前と説明を追加

Windows 展開サービスへブートイメージが追加され展開の準備が完了します。

ここでは、PXEブートによる展開でしたがオフラインでの展開もできるようです。その他便利な機能もあるので別途まとめていきたいと思います。「Microsoft Deployment Toolkit を使用したOSイメージ展開」については、ここまでとします。

bluenote by BBB