[MDT] Microsoft Deployment Toolkit を使用したOSイメージ展開
多くの端末に同じクライアント環境を展開したい場合、 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 ブログ
- MDT 2010でWindows 7を無人インストールする(前編)
- MDT 2010でWindows 7を無人インストールする(後編)
- MDT を使った Windows 10 イメージの展開
環境構築
必須ツール
MDT のために最低限必要なコンポーネントは、Deployment Tools と Windows Preinstallation Environment (WinPE)になります。
ネットワークブート環境での展開を行うために必要なツール
- Windows 展開サービス (WDS) インストール方法
- DHCPサーバー
用語
Windows PE(WinPE)
Windows PE とは、 Windows Preinstallation Environment のことで、光学メディアや USB フラッシュメモリなどから HDD にインストールすることなく起動できる小型版のWindowsになります。OS をインストールするためのブート機能や OS の修復などにも使用されます。
展開用イメージ作成準備
DeploymentWorkbench を起動します。
展開するイメージを共有するフォルダーを作成します。左ペインにある「DeploymentShares」を右クリックし、表示されたメニューの「New Deployment Share」を選択します。
ウィザードが起動するので、展開する OS を共有するフォルダーを作成する場所を指定します。デフォルト設定は、「C:¥DeploymentShare」が指定されておりウィザードでフォルダーが作成されます。ここでは、デフォルトのまま作業を進めます。
フォルダーの共有名を指定します。デフォルトの設定は、「DeploymentShare$」という名前で隠し共有フォルダーとなります。ここも、デフォルトのまま作業を進めます。
Deployment Workbench 上での共有フォルダーの表示名を指定します。デフォルトの設定は、「MDT Deployment Share」 という名前になります。ここも、デフォルトのまま作業を進めます。
展開を実行するときに尋ねる項目を指定します。とりあえず、デフォルトのまま進めます。
設定内容が表示されるので確認して次へ進めます。
共有フォルダーになにやら追加され、作業用の環境が構築されます。
展開イメージの作成
Microsoft Deployment Toolkit (MDT) では、次の展開作業をタスクシーケンスという単位でまとめられます。
- ディスクのフォーマット
- OS のインストール(Operating Systems)
- ドライバーのインストール(Out-of-Box Drivers)
- 更新プログラムのインストール(Packages )
- アプリケーションのインストール(Application)
- OS のカスタマイズ
- マスターイメージのキャプチャー
これらの作業を個別に定義し、タスクシーケンスを作成していきます。
展開用のOSイメージをインポート
Microsoft Deployment Toolkit (MDT) では、3種類のイメージを対象として展開用のイメージを作成できるようですが、ここではボリュームライセンスサイトからダウンロードした Windows のインストールメディアを対象に作業を進めます。
- ボリュームライセンスサイトからダウンロードした、iso イメージ
- 参照コンピューター(マスタPC)からキャプチャーした OS イメージ
- Windows 展開サービスのイメージ
MDT では、変数を使って動的に展開することができます。そのためにも、MDT のフォルダー階層のベストプラクティスに従い各作業項目の中を階層化し区別しておくことが薦められます。 「MDT のフォルダー階層のベストプラクティス」に則って Operating Systems のフォルダーを階層化します。
Operationg Systems フォルダーに 「Windows 10 Pro 1809\x64\JP\Original」フォルダーを作成します。
ボリュームライセンスサイトからダウンロードした Windows 10 Pro Version 1809 の iso イメージをマウントします。
作成した「Original」フォルダーを右クリックし、「Import Operationg System」を選択します。
OS Type ページでインポートする OS のイメージタイプで 「Full set of source files」 を選択します。(インポートするイメージの種類に応じて選択します。)
- Full set of source files
- ボリュームライセンスサイトからダウンロードした iso ファイルをインポートする場合に選択します。
- Custom image file
- キャプチャーしたイメージ (WIM)ファイルをインポートする場合に選択します。
- Windows Deployment Services images
- Windows 展開サービスのイメージをインポートする場合に選択します。
iso イメージをマウントしたドライブを指定します。
インポートされる物理フォルダーの名前を指定します。例えば、「Windows 10 Pro x64 1809」とした場合 C:\DeploymentShare\Operating Systems\Windows 10 Pro x64 1809 フォルダーにインポートが行われます。
OS イメージのインポートが完了すると中央のペインに OS の名称が表示されます。
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」を選択します。
おすすめのフォルダー階層でフォルダーを作成すると、次のようなイメージでフォルダーの準備が完了します。
イメージを作成したい機種に応じてドライバーをダウンロードします。
各種ドライバーのダウンロード先例:
- Surface の場合、Windows 10 以降からイーサネットアダプターのドライバーがWinPEに含められています。
- HP の Windows PE 10 x64 Driver Pack
- DELL のファミリー ドライバー パック(Windows PE)
- Microsoftのモデル別ドライバー
- HPのモデル別ドライバー
- DELLのモデル別ドライバー
例えばDELLの場合、DELL のファミリー ドライバー パック サイトから WinPE 10 をダウンロードします。ダウンロードしたファイルを展開し、 DeploymentWorkbench で作成した 「Out-of-Box Drivers\WinPE\x64」フォルダーを右クリックし、表示されたメニューの Import Drivers を選択します。
Specify Directoryのページで 展開した Windows PE のドライバーフォルダを参照してウィザードを進めます。
ドライバーのインポートが完了すると中央のペインにドライバーが表示されます。
同じように機種別(モデル別)のドライバーもインポートします。
例えば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」を選択します。
ウィザードが実行されるので、 General Settings のページに作成するプロファイルの名前を入力し作業を進めます。ここでは、 WinPE x64 と名前を付けました。
対象とするドライバーをインポートしたフォルダーを選択します。ここで、プロファイルとドライバーが紐つきます。
ウィザードに従って作業を進めると、中央のペインに指定した名前のプロファイルが作成されます。
次に機種別(モデル別)に用意されたドライバーのプロファイルを作成します。1つのタスクで複数の機種に対応したい場合は、このプロファイルは必要ありません。複数機種対応については、別途まとめたいと思います。ここでは、機種固有の設定を行っていきます。
DeploymentWorkbench の左ペインにある 「Advanced Configuration」の「Selection Profiles」を右クリックし、表示されたメニューから「New Selection Profile」を選択します。
ウィザードが実行されるので、 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 を選択して次に進めます。
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の初期ページを入力し次に進めます。
Admin Password ページで、ローカル Administrator のパスワードを入力して次に進めます。
以上で設定が完了するので最後までウィザードを進めます。
タスクシーケンスにドライバーを関連付ける
作成したタスクシーケンスが、中央のペインに表示されるので選択し右クリックして表示されたポップアップメニューから[プロパティ]を選択します。
表示されたプロパティダイアログの「Task Sequence」タブをクリックします。左ペインのツリーの中から Preinstall フォルダを展開し、 Inject Drivers をクリックして選択します。Choose a selection profile にモデル固有のドライバーに用意したプロファイル(ここでは、Optiplex 7060 Win 10 x64)を選択します。インストールするドライバの対象を選択したプロファイルにしたいので、 Install only matching drivers from the selection profile を選択します。
応答ファイルの設定
通常のインストール時に、言語やキーボードの種別など設定に関する質問に対してユーザーが入力するケースがありますが、この質問に対して応答する内容を応答ファイルに設定することで自動化することができます。この応答ファイルは、 Unattend.xml という XML ファイルとして用意されます。
作成したタスクシーケンスにある 「OS Info」タブを選択します。「Edit 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」項目を削除します。
応答ファイルの設定が完了したら、保存しておきます。
保存すると次の警告が表示されますが、特に影響がないようですのでそのまま作業を進めます。
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 が開くので、次の内容を設定して保存します。ここで、隠し共有フォルダーとして作ったフォルダーにアクセスしイメージが取得できるよう設定しています。
[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 プロファイルに変更します。
「OK」ボタンをクリックして設定を保存します。
ブートメディアの作成
展開共有を右クリックし、表示されたポップアップメニューから 「Update Deployment Share」をクリックします。
Update Deployment Share Wizard が表示されるので、 Options ページで Optimize the boot image updating process を選択しウィザードを最後まで進めます。
作成した共有フォルダーにブートイメージ等が作成されます。(例:C:\DeploymentShare\Boot)
Windows 展開サービスへブートイメージを追加
作成したブートイメージを Windows 展開サービスへ追加します。Windows 展開サービスを実行し、左ペインにあるブートイメージを右クリックし表示されたポップアップメニューの「ブートイメージの追加」をクリックします。
イメージの追加ウィザードのファイルの場所にMDTで作成したブートイメージを指定し次に進めます。(例:C:¥DeploymentShare¥Boot¥LiteTouchPE_x64.wim)
イメージの名前と説明を追加します。ここでは、デフォルトのままとしてウィザードを最後まで進めます。
Windows 展開サービスへブートイメージが追加され展開の準備が完了します。
ここでは、PXEブートによる展開でしたがオフラインでの展開もできるようです。その他便利な機能もあるので別途まとめていきたいと思います。「Microsoft Deployment Toolkit を使用したOSイメージ展開」については、ここまでとします。