何の因果か Windows 10 バージョン1903(2019/8月現在の最新バージョン)でUEFIベースのマスタPCを作る羽目になっていろいろ苦労したのでメモ。
※キーワード
・sysprep
・UEFI
・Windows ADK、Windows SIM ←1903用のSIMにバグがあって泣かされた。
・Windows 10の展開(要はクローンコピーのことなのだが、もうちょっといい言葉ないのかね)
<概要>
- マスタ機となるPCにWindows 10 をクリーンインストールする。BIOSの設定は適当に。
- 監査モードでログインしてアプリをインストールしたり設定してマスタ機を作り込む。この際、決してネットワークに接続してはいけない(ベンダに確認済み。ネット接続しても大丈夫という裏技が紹介されているが、危険)。ネット接続するとsysprepで失敗する確率が高くなり、リカバリが困難を極める。
- 作り込みが終了したらsysprepを実施する。
- sysprep後はOS標準のDISMユーティリティでマスタ機イメージを吸い出して展開できる。ただしいろいろ面倒なので、GHOST(ゴースト)の利用を強く推奨いたします。
<OSのクリーンインストール>
- diskpartユーティリティでブートパーティションを作るディスク全体を消去する。パーティション情報も消去する必要があるのでclean allコマンドを使います。
- 外付けディスク(USBメモリでよい)にWindows PEをインストールしておき、そこからPCを起動してdiskpartユーティリティを使ってUEFIパーティショニングを実施する。
Windows10のクリーンインストール時に対話式でUEFIパーティショニングを作成することもできるが(多くのブログはこのやり方で説明している)、システム領域100MBで決め打ちされてしまう。しかしイマドキのPCはシステム領域260MB、リカバリ領域1000MBが標準である(複数メーカのPCで確認済み)。そこで、この設定のdiskpartスクリプトを用意して、Windows PEで起動したPCにスクリプトを流してUEFIパーティションを作成するほうがよい。この辺は下記のMSの情報を参照のこと。
https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions
https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/capture-and-apply-windows-system-and-recovery-partitions - パーティション作成が終了したらUSBドライブからWindows10をインストールする。途中で再起動が入るまでは、次へ、はい、はい~でOKです。
- 再起動が入り、下記画面まで到達したら監査モードで起動をするためにctrl+shiftを押しながらF3を押す。これでインストール段階は終了。
<監査モードでマスタ機の作り込み>
- 監査モードに関してはMSの情報があるがわかりづらい。
https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/boot-windows-to-audit-mode-or-oobe
だから ctrl+shift+F3 での再起動後にこのダイアログ画面が出たらシステムクリーンアップアクションで「システム監査モードに入る」を選択してOKを押すって覚えておくといい。これでもう一度再起動すると同じ画面が出るので今度は「キャンセル」をクリックする。 - 初回起動後の準備(重要)
1)起動後15分以内にタスクマネージャを起動し、pre-staged app cleanup を無効化する。
2)サービスのsysmain(1809以前はsuperfetch)を停止後に無効化する。
3)グループポリシーでWindowsコンシューマーエクスペリエンスを無効にする。
ネット接続していなければ上記の操作は必要ないと思うが、ハードディスクがガリガリ動いたりCPUを消費するので止めることを推奨する。パスや操作方法は各自ググって。 - 毎回起動後の準備(これも重要)
Administratorアカウントが無効化されているので有効にする。再起動すると無効に戻るので、毎回有効化しないとダメ。
これを忘れてスリープするとログインできなくなります(再起動すればログインできる。慌てないこと。)
<PC設定(作り込み)のポイント>
- ネット接続できないのでOSのライセンスの認証がされない。このため一部の項目が設定できない。
- 企業の場合Active Directory配下の利用になることが多いと思うが、当然のごとくADにつながっていないのでその関係の設定もできない。これらの設定は、展開後にネット接続して実施する。
(余談)AD側のグループポリシーで設定可能なことが多いのだが、当然ながらADと通信しないと有効にならないし、通信しても有効にならない場合すらある。なので、ADで設定されるからPCに設定しなくてもいいと思わないこと。 - ユーザを作らない。これはMSが公式にアナウンスしている。余計なユーザプロファイルを作るとsysprepで失敗するので、ビルトインadministratorで作り込めということ。
- ストアアプリ関係の設定は展開後に引き継がれない。ストアアプリはユーザごとにプロビジョニングされるため。
- 企業で使用するPCや、DTMや画像・動画などの創作をやってる人にとってはストアアプリは邪魔なので、アプリのアンインストールやパッケージの物理削除を推奨する。1つずつポチポチとアンインストールしてもいいけど、powershellでサクッと削除できる。
※ログインしているユーザのアプリアンインストールコマンド
Get-AppxPackage <アプリ名> | Remove-AppxPackage
※アプリパッケージそのものの物理削除
Get-AppxProvisionedPackage | <アプリ名> | Remove-AppxProvisionedPackage -Online
複数ユーザが利用するPCは物理削除しないと新規ユーザがログインするときにアプリが「降ってくる」(プロビジョニングされる)
詳細は上記コマンドでググっていただきたい。
カメラつきPCの場合、カメラは残すこと。これがないとカメラが使えない=オンラインミーティングができなくなる。電卓や付箋(Sticky notes)は残してもいいかもしれない。いずれにしても、何を残して何を消すか事前に確認すること。理想的には、展開しようとしているバージョンのWindows10パソコンをしばらく(1~2週間程度)各部門へ配布し、設定やアプリについて要望を拾い上げるのがよい。
<sysprep応答ファイルの作成>
- マスタ機とは別のPCを用意して応答ファイルを作成することが推奨されている。マスタ機と同じOSである必要はなく普段使いのPCでよい。
- 下記リンクからWindows ADKをダウンロードして作成する。Windows 10のバージョンによってADKのバージョンも違う。バージョン1903 (64bit)のWSIMはバグがあってパッチが出ているので必ず適用すること。
https://docs.microsoft.com/ja-jp/windows-hardware/get-started/adk-install
ADKなしで応答ファイルのXMLを記述できるツワモノも多いと思うが、まあ一応。 - 応答ファイルの設定項目名でググるとMSの説明が出てくるし、ネット上にいろいろな情報があるけれど、Windows 10バージョン1903ではPEセクションを使わずOOBEセクションのみで設定するのが良かった。
実はPEセクションで日本語キーボードや、地域=ja-JPを設定したら sysprep 時にエラーになるケースがあった。そこでPEセクションをごっそり削除したところうまくいった。キーボードや言語・地域はOOBEセクションに設定があれば反映されます。 - 自動ログイン設定は要注意。administratorで自動ログインさせるように応答ファイルを作成したところ、administrator以外のユーザでログインするときにプロファイルが正常に作成されずadmin以外では使えないPCになってしまった。俺の設定が良くなかったのだろうか(;´Д`)
<sysprep実行>
- 応答ファイルを \windows\system32\sysprep にコピー
- コマンドプロンプト(管理者)で上記ディレクトリに移動後下記コマンドを入力。
sysprep /generalize /oobe /shutdown /unattend:<応答ファイル.xml> - sysprep前に操作履歴やログのお掃除が推奨されていますが、どうせAdmin以外では見れないから放っといてもいいんじゃね?という気もします。
<展開>
- DISMでマスタ機から吸い出して逐次コピーしてもいいですが、工程数が多くなる。
- ということで最初に書いたように、ゴーストを使うことを強く推奨します。強く推奨ってのは「使え」ってことだから。1ライセンス2500円くらい。PC1台に対して1つライセンスが必要です。
- (2019/12追記)結局ゴースト使わないでやってます(予算がなかったトホホ)。DISMで実体ファイルを吸い出し・クローンPCにコピーしてやって、bcdboot でブート領域設定、reagentc で回復領域設定をしてます。このとき、ブートローダーの identifier が自動設定できないので、bcdedit -v で identifier を確認して、下記コマンドで有効化します。
reagentc /enable /osguid <確認したidentifer>
これでブート領域と回復領域の設定が完了です。回復領域用のWindows REについては下記参照。こいつもマスタ機からDISMで吸い出すのが手っ取り早いです。
https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference - 実作業としては、ゴーストと同様の作業をスクリプトで一括実行します。流れは下記のとおり。
クローニング対象PCをUSB端子に接続したWindows PEで起動→diskpartスクリプトとマスタイメージが入ったUSBドライブを接続→(diskpartでドライブを消去→UEFIパーティション設定→DISMでマスタ機イメージをコピー→bcdbootで起動領域設定→Win REをコピー→コピーしたWin REをreagentcで回復領域として指定)→シャットダウン→USBストレージを取り外す。
カッコ内をスクリプトで実行します。これでクローニング終了です。 - 展開後の初回起動は少し時間を要します(HDDだとかなり遅い)。初回起動後は、ネットに繋ぐことができます。展開したPCのシステムボリュームにはsysprepの応答ファイルが存在します。この中にVLライセンスキーなど機密情報が書かれているので、ネットにつないだあとで実施する設定をバッチ処理で実行することになりますから、そのバッチファイルの中に応答ファイルの削除コマンドを記述しておきましょう。また、このバッチファイルの中にADとの同期を強制実施するコマンドを入れておくと良いです。
オマケ:Windows PEについて
Windows PEはUSBメモリなどから起動するコマンドライン形式のWindows OSで、マスタイメージから展開する際にクローンPCの起動用OSとして使用します。このPEも、できればインストールするOSと同じバージョンのWindowsパッケージから作成することを推奨します。たとえば、2019年春モデル以降のPCは、Windows 10 1903(以降)のPEが必要となるケースがあります。なお古いWindows 10 だと USB 3.1 の端子を認識できませんので、ダウングレードを企む場合は要注意です。
WindowsPEの終了時は exit コマンドではなく、 wpeutil shutdown というコマンドを使ってください。exit で終了すると再起動扱いになって、BIOS設定に沿って起動シーケンスが始まります。このとき、PC本体の起動パーティションからブートされたら、せっかく作り込んだマスタ設定がパーになります(実際やらかした)。
オマケ2:MS Officeについて
Office Business 2007と2019でマスタを作ったけど、Office 2007とWindows10 1903の相性が悪くけっこうボロボロでした。たとえば1903の新機能であるマルチクリップボードを有効にしていると、Excel2007でコピペを実行したときにメモリ不足エラーが発生します。エラーアラートが出るだけで実害はないのですが、ベンダに確認したところWindows 10で利用するMS Officeは2010以上でないとこういう不具合が出やすいということです。なので、古いOfficeを使っている場合は、あえてWindows10へ移行はしないという手もあります。
オマケ3:MS Office 2019について
Office 2019をマスタ機にインストールする際は、オフラインインストールになります。このときVLライセンスキー込みでインストールしても、初回起動時にネット接続認証を求められます。なおOffice 2019はデフォルトだと64bit版がインストールされますが、互換性を考慮すると32bit版のほうがいいという話もございます。そのため、64bit版OfficeをインストールしたPCを事前に試験運用してもらい、不具合がないか確認してもらうとよいでしょう。