Windows10キッティング手法序説 2020

#キッティング手法概観

***PCを業務で使える状態までセットアップする作業を「キッティング」といいます***。PCが数台しかないような環境であればおそらくユーザ各自にセットアップしてもらうかと思いますが、これが数十台、数百台ともなれば、セットアップ作業をユーザ各自に行わせるのは工数の無駄ですし、ユーザのITスキルによっては遠回りに情報システム担当者の首を絞める事になります。そこで情報システム担当者は頭を捻ってユーザ環境を標準化し、キッティングを行う事になりますが、それにあたって現在どのようなやり方があるのでしょうか。この記事ではそれら手法をざっくりまとめます。
2020年現在、Windows10PCのキッティングに使われる代表的な手法は「**プロビジョニング**」「**クローニング**」「**ベアメタルビルド**[^1]」「**AutoPilot**」の４つです。ではそれぞれ簡単に説明していきましょう。

[^1]: ベアメタルビルドは呼び方がいろいろあるが、とりあえずMECMでの呼称に沿ってベアメタルビルドとする。

###プロビジョニング
OOBE（Out of Box Experience、要は工場出荷状態のPCを最初に起動した状態）のWindowsPCに対して基本的なカスタマイズを行う手法が「プロビジョニング」です。カスタマイズできる項目は多くはありませんが、いろんな機種のPC数十台を使いまわすために初期化しては基本的な設定をする、といった状況にマッチします。Windowsのボリュームライセンスも不要ですし、プロビジョニングするための設定ファイル（プロビジョニングパッケージ）を作成するツール「Windows構成デザイナー」（WindowsADKに同梱）がWindows10PC上で動作するのもポイントです。WindowsServerが不要というのは案外でかいのです。

+ [プロビジョニングによるWindows10キッティング①プロビジョニングパッケージの作成](https://qiita.com/les_paul/items/d38b579dd6a160de3e9a)
+ [プロビジョニングによるWindows10キッティング②プロビジョニングパッケージの適用](https://qiita.com/les_paul/items/1d05ced69f4a5d7f6087)
+ [プロビジョニングによるWindows10キッティング③プロビジョニングパッケージの詳細設定と応用](https://qiita.com/les_paul/items/1d291dc691b47af46051)

###クローニング
カスタマイズしたWindowsのシステムディスクイメージを取得（キャプチャ）してほかのPCのハードディスクにコピーする、ある意味古典的な方法です。まったく同じ物理構成のWindowsPC間でしかコピーできません[^2]が、同じPCを大量購入するしボリュームライセンスも買うよという規模の大きな組織ではフィットする方法です。代表的なクローニングソフトとしてはClonezilla、またMDTやMECM（旧SCCM）でのOSインストールもイメージキャプチャが基本となるためこの分類に入れておきます。ClonezillaはWindows以外にUNIX系OSも展開できるのが人によってはポイントかもしれません。MDTはWindows構成デザイナーと同じくWindows10上で動作しますが、MECMはWindowsServerが必要になりますので金銭的難易度が上がります。

なお、***Windows10のシステムイメージをキャプチャする際に必須なユーザ情報初期化作業（sysprepの実行）が機能更新アップデートが更新されるにつれエラーを踏みやすくなっている頭の痛い現状があります***。sysprep手前までのキャプチャターゲット構築手順についてはこちらの記事 [Windows 10 May 2020 Update（バージョン2004）のSysprep済みカスタムイメージを作成する方法](https://www.atmarkit.co.jp/ait/articles/2009/08/news007.html) から辿るとよいと思います。ただしこの手順が今後の機能更新アップデートに対して未来永劫有効かというと正直何とも言えません。本記事のタイトルに「2020」と付けている理由はそんなところにもあります。

+ [Microsoft Deployment Toolkit (MDT) 単体運用はじめの一歩](https://qiita.com/les_paul/items/3ab6e03c82f11a82f720)

[^2]: 微妙に嘘。何とかすれば何とかなる。

###ベアメタルビルド
Windowsのインストールから設定、アプリケーションのインストールまでを自動化する方法です。MDTやMECMのシーケンスによる、キャプチャイメージ不使用のビルドがこれにあたります。ベアメタルビルドはイメージキャプチャが不要ですのでWindows10ではお勧めの手法です。また機種間の差をある程度吸収できるため、複数機種の大量セットアップという地獄のような地獄にはおあつらえむきの方法と言えるでしょう。

なお、クローニングやベアメタルビルドでPCに全く触らずに構築を完了してしまう事を「ゼロタッチビルド」といいます。実際にはホスト名だけは設定したいといった多少はカスタマイズしたい事が多いので、完全にゼロタッチなビルドを行うケースはそんなにありません。

###AutoPilot
Microsoftのクラウドサービスによってキッティングを行う手法がAutoPilotです。クラウドサービスとは具体的にはAzureAD、Microsoft Endpoint Manager admin center、Intuneなどです。工場出荷状態のPCをキッティングするにあたって、これまでの手法ではいったんどこかにPCを集積し情報システム担当者がキッティングを行ってきましたが、AutoPilotではキッティング情報は全てクラウド上にあり、インターネット接続環境さえあれば工場出荷状態のPCをどこででもキッティングする事ができます。
前提となる物理PCのAzureADへの登録は、AutoPilotプログラム参加メーカー[^3]から出荷するPCであれば出荷時にメーカーがやってくれます。それだと弱小メーカー製PCとか手持ちのPCはどうすんだよという話ですが、もちろんそういったPCは手作業でAzureADへ登録して運用する事もできます。
この2020年のコロナ禍で在宅ワークに切り替える企業も多いかと思いますが、Microsoftのクラウドサービス群~~とズブズブ~~を使いこなしている、あるいはその余裕のある企業であれば採用する価値のあるキッティング手法です。

[^3]: https://www.microsoft.com/ja-jp/microsoft-365/windows/windows-autopilot 参照

###（補足）Windows10キッティングとライセンスの関係性

***OEMライセンスのWindowsメディアを別のPCのキッティングに利用することはできません。***OEMライセンスはそのライセンスに紐付くPCにしか書き戻してはいけませんので、以下の行為はライセンス違反になります。

* OEMプリインストールされたWindowsの実機イメージをキャプチャして他のPCに展開する
* OEMライセンス用Windowsメディアのinstall.esdファイルからinstall.wimを取り出して他のPCのキッティングに使う

また、***リテールパッケージでインストールしたWindows10のイメージをキャプチャして他のPCへ適用する事もNGです***。イメージをキャプチャして他のPCへ適用する事は***ボリュームライセンス用メディアを使ってインストールしたPCからのみ可能[^4]***で、コピー先PCの台数ぶんのボリュームライセンスももちろん必要になります。端的には、ボリュームライセンスを購入しない場合に許可されるキッティング手法はプロビジョニングとAutoPilotということになります。

[^4]: インストール済のWindowsのハードディスクイメージをキャプチャする権利を「再イメージング権」といい、ボリュームライセンスの購入特典として付与される。

#どの手法を選択すべきか

以上の４つの手法はそれぞれに一長一短があり、果たしてどれが自組織にハマるのか、そこは情報システム担当者の思案のしどころです[^5]。予算や台数、キッティング環境運用にかけられる工数によって何となく以下のような表にまとめてみます。

| 手法 | 必要サービス |メリット| デメリット| ターゲット台数 | コスト |
|:-----------|:------------:|:------------:|:------------:|:-:|:-:|
| プロビジョニング| WindowsADK |安く始められる| 複雑な構築ができない |～50台|低|
| クローニング(梅) | ClonezillaまたはMDT| 複雑な構築が可能|イメージキャプチャが煩雑、設定が複雑、VolumeLicense必須 |50台～|中|
| クローニング(竹) | MECM| 複雑な構築が可能、PC管理可|イメージキャプチャが煩雑、設定が複雑、VolumeLicenseとWindowsServer必須、AD前提、学習コスト高 |100台～|高|
| クローニング(松) | MECM、Intune| 複雑な構築が可能、モバイル含めPC管理可|イメージキャプチャが煩雑、設定が複雑、VolumeLicenseとWindowsServer必須、AD前提、学習コスト高 |100台～|高|
| ベアメタルビルド(梅)|MDT| 複雑な構築が可能 | 設定が複雑、VolumeLicense必須 |50台～|中|
| ベアメタルビルド(竹)|MECM| 複雑な構築が可能、PC管理可 | 設定が複雑、VolumeLicenseとWindowsServer必須、AD前提、学習コスト高 |100台～|高|
| ベアメタルビルド(松)|MECM、Intune| 複雑な構築が可能、モバイル含めPC管理可 | 設定が複雑、VolumeLicenseとWindowsServer必須、AD前提、学習コスト高 |100台～|高|
| AutoPilot(ゼロタッチビルド)      | AzureAD、MECM、Intune | どこでもキッティング可能、複雑な構築が可能 | サービスの理解が大変 |100台～|中～高|

MECMについてはWindowsキッティングは全体の機能の一部でしかないため、MECMを選択するとすればPC管理もMECMで行う事を前提とした投資になります。WSUSが既にある場合は注意が必要です。Intuneを積むかは管理対象を広げるか否かで決まります。

なおどの手法も日本語の情報が微妙なため、英文に当たれないと歯が立ちません。特にMDTは設定が複雑かつ国内ベンダーの旨味が少ないのか日本語情報が無きに等しいのが現状です。以降、それぞれの手法の基本的な運用方法についてまとめて行けたらなと思っています。

[^5]: キッティングベンダーの提案のしどころでもある。