音楽図鑑 - 近況報告

はてなダイアリーから移行しました。

あんまりPCに詳しくない俺が Windows 10 (バージョン1903)での sysprep についてまとめるの巻

何の因果か Windows 10 バージョン1903(2019/8月現在の最新バージョン)でUEFIベースのマスタPCを作る羽目になっていろいろ苦労したのでメモ。

※キーワード
・sysprep
UEFI
Windows ADKWindows SIM ←1903用のWSIMにバグがあって泣かされた。
Windows 10の展開(要はクローンコピーのことなのだが、もうちょっといい言葉ないのかね)

 

<概要>

  1. マスタ機となるPCにWindows 10 をクリーンインストールする。BIOSの設定は適当に。
  2. 監査モードでログインしてアプリをインストールしたり設定してマスタ機を作り込む。この際、決してネットワークに接続してはいけない(ベンダに確認済み。ネット接続しても大丈夫という裏技が紹介されているが、危険)。ネット接続するとsysprepで失敗する確率が高くなり、リカバリが困難を極める。
  3. 作り込みが終了したらsysprepを実施する。
  4. sysprep後はOS標準のDISMユーティリティでマスタ機イメージを吸い出して展開できる。ただしいろいろ面倒なので、GHOST(ゴースト)の利用を強く推奨いたします。

 

<OSのクリーンインストール

  1. diskpartユーティリティを使ってUEFIパーティショニングしたドライブを用意してインストールする。インストール時に対話式でUEFIパーティショニングを作成することもできるが*1、システム領域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
  2. インストール手順は、次へ、はいはい~でOK
  3. 途中で再起動が入る。下記画面まで到達したら監査モードで起動をするためにctrl+shiftを押しながらF3を押す。これでインストール段階は終了。

    f:id:Harnoncourt:20190817181659p:plain

<監査モードでマスタ機の作り込み>

  1. 監査モードに関してはMSの情報を読んでもよくわからない。
    https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/boot-windows-to-audit-mode-or-oobe
    だから ctrl+shift+F3 での再起動後にこのダイアログ画面が出たらシステムクリーンアップアクションで「システム監査モードに入る」を選択してOKを押すって覚えておくといい。これでもう一度再起動すると同じ画面が出るので今度は「キャンセル」をクリックする。

    f:id:Harnoncourt:20190817174755p:plain

  2. 初回起動後の準備(重要)
    1)起動後15分以内にタスクマネージャを起動し、pre-staged app cleanup を無効化する。
    2)サービスのsysmain(1809以前はsuperfetch)を停止後に無効化する。
    3)グループポリシーでWindowsコンシューマーエクスペリエンスを無効にする。
    ネット接続していなければ上記の操作は必要ないと思うが、ハードディスクがガリガリ動いたりCPUを消費するので止めることを推奨する。パスや操作方法は各自ググって。
  3. 毎回起動後の準備(これも重要)
    Administratorアカウントが無効化されているので有効にする。再起動すると無効に戻るので、毎回有効化しないとダメ。
    これを忘れてスリープするとログインできなくなります(再起動すればログインできる。慌てないこと。)

<PC設定(作り込み)のポイント>

  1. ネット接続できないのでOSのライセンスの認証がされない。このため一部の項目が設定できない。
  2. 企業の場合Active Directory配下の利用になることが多いと思うが、当然のごとくADにつながっていないのでその関係の設定もできない。
    これらの設定は、展開後にネット接続して実施すること。
  3. ユーザを作らない。これはMSが公式にアナウンスしている。余計なユーザプロファイルを作るとsysprepで失敗するので、ビルトインadministratorで作り込めということ。
  4. ストアアプリ関係の設定は展開後に引き継がれない。ストアアプリはユーザごとにプロビジョニングされるため。
  5. 企業で使用するPCや、DTMや画像・動画などの創作をやってる人にとってはストアアプリは邪魔なので、アプリのアンインストールやパッケージの物理削除を推奨する。1つずつポチポチとアンインストールしてもいいけど、powershellコマンドでサクッと削除できる。
    ※ログインしているユーザのアプリアンインストールコマンド
    Get-AppxPackage <アプリ名> | Remove-AppxPackage 
    ※アプリパッケージそのものの物理削除
    Get-AppxProvisionedPackage | <アプリ名> | Remove-AppxProvisionedPackage -Online
    複数ユーザが利用するPCは物理削除しないと新規ユーザがログインするときにアプリが「降ってくる」(プロビジョニングされる)
    詳細は上記コマンドでググっていただきたい。
    電卓や付箋(Sticky notes)は残してもいいかもしれない。お好みでどうぞ。

<sysprep応答ファイルの作成>

  1. マスタ機とは別のPCを用意して応答ファイルを作成することが推奨されている。
  2. 下記リンクからWindows ADKをダウンロードして作成する。Windows 10のバージョンによってADKのバージョンも違う。バージョン1903 (64bit)のWSIMはバグがあってパッチが出ているので必ず適用すること。
    https://docs.microsoft.com/ja-jp/windows-hardware/get-started/adk-install
    ADKなしで応答ファイルのXMLを記述できるツワモノも多いと思うが、まあ一応。
  3. 応答ファイルの設定項目名でググるとMSの説明が出てくるし、ネット上にいろいろな情報があるけれど、Windows 10バージョン1903ではPEセクションを使わずOOBEセクションのみで設定するのが良かった。
    実はPEセクションで日本語キーボードや、地域=ja-JPを設定したら sysprep 時にエラーになるケースがあった。そこでPEセクションをごっそり削除したところうまくいった。キーボードや言語・地域はOOBEセクションに設定があれば反映されます。
  4. 自動ログイン設定は要注意。administratorで自動ログインさせるように応答ファイルを作成したところ、administrator以外のユーザでログインするときにプロファイルが正常に作成されずadmin以外では使えないPCになってしまった。俺の設定が良くなかったのだろうか(;´Д`)

<sysprep実行>

  1. 応答ファイルを \windows\system32\sysprep にコピー
  2. コマンドプロンプト(管理者)で上記ディレクトリに移動後下記コマンドを入力。
    sysprep /generalize /oobe /shutdown /unattend:<応答ファイル.xml>
  3. sysprep前に操作履歴やログのお掃除が推奨されていますが、どうせAdmin以外では見れないから放っといてもいいんじゃね?という気もします。

<展開>

  1. DISMでマスタ機から吸い出して逐次コピーしてもいいですが、工程数が多くなる。
  2. ということで最初に書いたように、ゴーストを使うことを強く推奨します。強く推奨ってのは「使え」ってことだから。1ライセンス2500円くらい。PC1台に対して1つライセンスが必要です。
  3. (2019/12追記)結局ゴースト使わないでやってます。DISMで実体ファイルを吸い出し・コピーしてやって、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
  4. 実作業としては、ゴーストと同様の作業をスクリプトで一括実行します。流れは下記のとおり。
    対象PCをWindows PEで起動→スクリプトとマスタイメージが入ったUSBドライブを接続→UEFIパーティション設定→DISMでマスタ機イメージをコピー→bcdbootで起動領域設定→Win REをコピー→コピーしたWin REをreagentcで回復領域として指定)→USBストレージを取り外して再起動
    カッコ内をスクリプトで実行します。
  5. 展開したPCのシステムボリュームにはsysprepの応答ファイルが存在します。この中にVLライセンスキーなど機密情報が書かれているので、このあとのフェーズで実施する初回起動後に削除してください。
  6. 展開後の初回起動は少し時間を要します(HDDだとかなり遅い)。初回起動後は、ネットに繋ぐことができます。ネットにつないだあとで実施する設定をバッチ処理で実行することになりますから、そのバッチファイルの中に応答ファイルの削除コマンドを記述しておけばよいでしょう。

オマケ: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を使っている場合(特に2010以前のAccessを使っている場合)は、あえてWindows10への移行はしないことをおすすめします。

オマケ3:Office 2019について
Office 2019をマスタ機にインストールする際は、オフラインインストールになります。このときVLライセンスキー込みでインストールしても、初回起動時にネット接続認証を求められます。なおOffice 2019はデフォルトだと64bit版がインストールされますが、後方互換性を考慮すると32bit版のほうがいいという話もございます。この件もいろいろ検討中なので、そのうち何か書くかもしれません。

*1:多くのブログはこのやり方で説明している