社内で展開するWindowsクローニング作業入門
前回、Windowsのディスクイメージの取得と復元する方法についてまとめました。これはすでに完成されてるディスクイメージを元にPCの初期化や復元などを行うために使う為のテクニックです。
問題はこの初期イメージの元になるPCのディスクの設定を作成するのが今回のテクニックです。今回はディスクイメージの作成の前段階の作業となり、実際には実機2台(イメージ作成用と検証用)が必要になります。
目次
今回利用するツール
- Windows10 ISOイメージ VL版
- Windows ADK for Windows10
- オフィス展開ツール
- sysprepコマンド
オフィス展開ツールは、ディスクイメージにVL版のMicrosoft OfficeやMicrosoft365を事前に入れておく場合に利用します。
注意点
複数のマシンに展開するイメージをキッティングするのが今回の作業なのですが、予め設定とアプリを入れておいた状態でセットアップが開始されていない状態のイメージを作成するのが目的です。しかし、実際にイメージを作成するにあたってはいくつかの注意点があります。
- sysprepコマンドは同じディスクイメージに対して実行できるのは1001回まで
- 利用するWindowsはVL版のWindowsである必要があります。同じくOfficeについても同じです(ライセンス違反となります)
- VL版のライセンス認証は通常、KMSの方式にてActive Directoryなどを利用して認証する仕組みが別途必要です。
- 個別インストールが必要なアプリはイメージに含めることができません。
- Bitlockerはオンにしてはいけません。BitlockerはPC固有の情報を利用して暗号化する為です。
- Active Directoryのドメインには参加させない。ポリシーが適用された状態でsysprepをすると不具合が生じる可能性があります。
- イメージに複数のユーザプロファイルを用意しておくと破損する可能性があります。
- キッティング中は下手にネットに繋ぐとストアアプリが勝手に入ってきてsysprepでエラーを引き起こす原因となるため、ストアアプリの更新などはgpeditで停止させておかないとネットに繋ぐのは失敗の原因になります。
※現在VL版のライセンスはSoftware in CSPという形で1本から購入可能になっています。
事前準備
VL版Windowsをインストール
まずは1台目のディスクイメージ作成用のマシンを構成します。通常購入してきたPCは、OEM版のWindows10 Proなどが入ってるかと思います。しかしこの状態で展開用のイメージを作成してしまうとライセンス違反となってしまうので、VL版のWindows10をインストールし直して初期化します。ライセンス認証等はこの段階不要です。
ただしインストール作業で1つ注意点があります。必ず監査モードで起動してから各種作業を行う点です。sysprepする事でセットアップの残骸や余計な設定値が飛ばされて監査モードから抜けるようになります。
- ネットワークに接続しないオフライン状態にしておく
- 通常通りVL版Windows10でセットアップを開始する
- インストール後にOSが再起動後に続きのセットアップが開始するが、「お住いの地域はこちらでよろしいでしょうか?」でストップする。
- ここでCtrl + Shift + F3を実行する(監査モードになる)
- すると普通に起動する
- システム準備ツールが起動しますが、キャンセルを押して閉じる
- ストアアプリの更新停止をする為にタスクスケジューラを起動します(taskschd.msc)
- Microsoft=>Windows=>の中のAppxDeploymentClientを開く
- Pre-staged app cleanupというタスクを右クリック=>無効で無効化しておく
- 続いてグループポリシーエディタを起動します(gpedit.msc)
- コンピューターの管理=>管理用テンプレート=>Windowsコンポーネントまでまず開く
- 「\クラウドコンテンツ\Microsoftコンシューマー エクスペリエンスを無効にする」を開いて、有効化する
- 「\ストア\更新プログラムの自動ダウンロードおよび手動インストールをオフにする」を開いて、有効化する
- 「\ストア\最新バージョンのWindowsへの更新プログラム提供をオフにする」を開いて、有効化する
- コマンドプロンプトを開いて、「gpupdate」を実行する
- 有線LANに接続し、Windows Updateを実行して最新の状態にまでアップデートする
これで、続いて各種アプリケーションのインストールやデバイスドライバ、証明書の類のインストールを行うことが可能です。
図:監査モードで起動した様子
アプリやドライバをインストール
引き続き、プリインする為のアプリケーションをインストールしておきます。ただしライセンス認証を要するものについては、ここでは認証を行いません。また、ログインを要求するもの(例えばGoogle Driveアプリ)などもインストールしておくことが可能です。Officeについては2016のVL版まではそのままインストールし、ADでライセンス認証といったことも可能ですが、Office2019以降・Microsoft365については後述のオフィス展開ツールをインストールして展開する必要があります。
また、OEMなPCの場合は純粋なVL版では足りないデバイスドライバがあるので、メーカーのホームページから各種デバイスドライバをダウンロードし、この段階でインストールしておきましょう。証明書の類は個人ではなく、ローカルコンピュータとしてインストールするようにしましょう。
※Google Driveアプリ等はsysprepする前に必ずログアウトしておきましょう。
オフィス構成ファイルの作成
構成.xmlを作る必要があるものの、
- こちらのサイトにアクセスする
- 新しい構成を作成をクリックする
- x64、Microsoft365 Apps for businessを選択
- 更新プログラムチャンネルを「半期エンタープライズチャンネル」
を選択。 プレビューや最新チャネルにするとベータ版が落ちてきてしまうの で要注意。 - OneDriveやOutlook等を使わない場合は除外しておく。
- 言語を日本語を選択
- インストールのオプションもデフォルトでOK
- 更新とアップグレードは次へで進んでしまって問題ない。
- 自動EURAに同意はオンにする
- ライセンス認証はユーザに基づくのままでOK
- 組織名は「自分の会社名を英語」で入れる
- アプリケーションの設定はデフォルトのままにする
- 終了をクリックする
- エクスポートをクリックする
- 既定のファイル形式にて現在の設定を保持するにチェックを入れて
次へ - 許諾にチェックをいれてエクスポートするとXMLファイルが生成
される(構成.xmlと命名しておく) - 16.をGoogleドライブ経由等で実機マシンに送り込む
- Microsoft365の場合は別途オフィス展開ツールをイン
ストール(解凍するだけのもので、自分はC:\Users\ ユーザ名\Documents\ tenkaiにインストールしました。) - 展開ツールのsetup.
exeをコマンドラインで以下のコマンドを実行するとダウンロー ドとインストールが始まる。
12setup.exe /download 構成.xmlsetup.exe /configure 構成.xml - インストールが終わったらソースディレクトリは削除し、19.のディレクトリも削除する。officeそのものは起動してはいけません。
Microsoft365の構成.xmlのサンプルは以下のような感じになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<Configuration ID="c000000-000000"> <Add OfficeClientEdition="64" Channel="SemiAnnual"> <Product ID="O365BusinessRetail"> <Language ID="ja-jp" /> <ExcludeApp ID="Groove" /> <ExcludeApp ID="Lync" /> <ExcludeApp ID="OneDrive" /> <ExcludeApp ID="Outlook" /> </Product> </Add> <Updates Enabled="TRUE" /> <RemoveMSI /> <AppSettings> <Setup Name="Company" Value="officeforest, Inc." /> </AppSettings> <Display Level="Full" AcceptEULA="TRUE" /> </Configuration> |
図:Microsoft365構成を作成する画面
図:アプリの構成を選ぶシーン
sysprepの作業
Windows ADKのインストール
この作業は実機以外のマシン上で行います。実機にインストールしないでください。
sysprepで利用するunattend.xmlを作成するために、Windows System Image Managerが必要です。このツールはWindows ADKの中に含まれているので、まずはWindows ADKをインストールします。ただし古い版で新しいバージョンのイメージをビルドはできないので、必ずWindowsのOSのバージョンに合わせてインストールが必要です。
- Windows10 Build 2004 ADKもしくはWindows11(22H2)用のADKをダウンロードする
- adksetup.exeを実行してインストールを進める
- 途中のインストールする機能画面では、「Deployment Tool」にチェックを入れる
- スタートメニューの中のWindows Kitの中にシステムイメージマネージャが登録されるのでこれを起動する
- Windows ADKの更新プログラムがある場合には必ず当てて最新のバージョンにしておく
図:System Image Managerを起動してみた
応答ファイルの作成
この作業は実機以外のマシン上で行います。実機上で作るわけではありません。
Windows10のインストールディスクの中に「install.wim」というディスクイメージが入っています。これを取り出してシステムイメージマネージャにて、sysprepで利用するunattend.xmlを作成します。
- install.wimを適当なディレクトリにコピーする
- システムイメージマネージャを開き、ファイル⇒Windowsイメージの選択を実行
- 1.のイメージファイルを選択する
- エディションを選択する(今回はWindows10 Pro)
- カタログファイルが見つからないというダイアログでは「はい」をクリックする
- 画面左下にWindows10 Proのカタログ情報が読み込まれる
- ファイル⇒新規応答ファイルの作成を実行する
- 6.のWindows10 Proを開いて検索で「prep」にて探すと「pnpsysprep」にて「amd64_Microsoft-Windows-PnpSysprep_neutral」を見つけられるので右クリック⇒パス3 generalizeに設定を追加に指定する
- 応答ファイルの3.generalizeを開く
- 右サイドバーに設定が2つ出てくるので、両方ともTrueにする(Plug and Playドライバがこれで保持される)
- カスタムしたユーザプロファイルを新規ユーザに適用する場合には、8.でamd64-Microsoft-Windows-Shell-Setupにてパス4 specializeに設定を追加を実行し、CopyProfileをTrueにすれば良い
- 言語やキーボード設定を新規ユーザにて適用する場合には、8.でamd64-Microsoft-Windows-International-Coreにてパス7 oobeSystemに設定を追加を実行し、各種設定を施してあげる。主な設定は以下の
12345InputLocale: 0411:E0010411SystemLocale: ja-JPUILanguage: ja-JPUILanguageFallback: ja-JPUserLocale: ja-JP - 各種初期セットアップで出す画面の可否は、8.でamd64-Microsoft-Windows-Shell-Setupにてパス7 oobeSystemに設定を追加を実行し、各種設定を施してあげる。参考例は以下の通り
12345HideEULAPage: trueHideOEMRegistrationScreen: trueHideWirelessSetupInOOBE: falseHideOnlineAccountScreen: falseProtectYourPC: 3 - 値の入っていない設定があるとsyspredで失敗するので右クリック=>削除しておく
- ツール=>応答ファイルの検証を実行して、エラーが無いか検証する
- 名前をつけて保存にて、unattend.xmlというファイル名でデスクトップにでも保存する(後に実機に入れる)
unattend.xmlのサンプルは以下のような構成になっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="generalize"> <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken=xxxxxxxxx" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices> <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken=xxxxxxxxx" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <CopyProfile>true</CopyProfile> <RegisteredOrganization>officeforest</RegisteredOrganization> <RegisteredOwner>officeforest</RegisteredOwner> <TimeZone>Tokyo Standard Time</TimeZone> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken=xxxxxxxxx" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <OOBE> <HideEULAPage>true</HideEULAPage> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <ProtectYourPC>1</ProtectYourPC> </OOBE> </component> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken=xxxxxxxxx" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>0411:E0200411</InputLocale> <SystemLocale>ja-JP</SystemLocale> <UILanguage>ja-JP</UILanguage> <UILanguageFallback>ja-JP</UILanguageFallback> <UserLocale>ja-JP</UserLocale> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/hogehoge/desktop/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend> |
図:unattend.xmlの設定変更中の様子
sysprepで設定を飛ばす
この作業は「実機上」で行います。
この時点でGoogle Driveアプリなどは必ずアカウント接続解除をしておくようにします。
- 実機のc:¥windows¥system32¥sysprepに、前述のunattend.xmlを追加する
- 1.のディレクトリを右クリック=>Powershellでここを開くを実行する
- 以下のコマンドを実行する
1.\sysprep.exe /generalize /oobe /shutdown /unattend:\unattend.xml - しばらくするとクリーンアップが実行されて、シャットダウンが実行されて完了となる。
- 同時に監査モードから離脱するようになる
この作業によってコンピュータ名、余計なキャッシュ、セキュリティ識別子(SID)を飛ばし、unattend.xmlに従った内容が書き込まれます。
図:クリーンアップ中の様子
実機からイメージの取得
この作業は「実機上」で行います。
Windows10のインストールUSBを作成しつつ、diskpartでディスクイメージを取得するコマンドを持ってwimという拡張子のディスクイメージを取得します。このwimツールを持ってして別のマシンの初期化を行ったり、ネットワークブートのイメージとしたり色々と便利なテクニックです。
実際にアプリ等を仕込んだ実機上でこの作業を行い、USBメモリに対象のマシンのディスクイメージを取得しておきます。以下のエントリーを参考にしてみてください。前述のunattend.xmlに従った設定でセットアップが開始される為、余計なセットアップを飛ばして作業の軽量化を図ることが可能です。
最後に検証用のPCにこのディスクイメージを復元してみて、正しくセットアップが完了するかどうか?ライセンス認証はできているかどうか?確かめてみると良いでしょう。
関連リンク
- Windowsイメージ操作まとめ
- クライアントPC大量導入サービス( Windows10 Pro クローニング作業 )
- Windows展開サービスを使ったWindows10のクローニング【展開サービス運用編】
- Windows インストールに対する Sysprep (一般化) の実行
- クローニングを使ったWindows10パソコンキッティング方法
- 【Windows10】sysprepとは何か?
- Windows 10のOSイメージ展開の新常識(その3)――応答ファイルの作り方
- Sysprepを使って、Windows 10を効率的に大量展開しよう(前編:応答ファイル作成編)
- 【初心者向け】sysprepの仕組みと使い方/手順〜一般化,コマンドオプション〜
- Windows10パソコン、クローニング事前準備と注意点
- Active Directory ベースのライセンス認証によるライセンス認証
- 応答ファイル (unattend.xml)
- Windows System Image Manager を使用して応答ファイルを作成する
- Capturing an image with Bitlocker turned on?
- Windows システム イメージ マネージャー テクニカル リファレンス
- 監査モードでWindowsを起動しマスターイメージをカスタマイズする方法
- Windows 11 Enterprise、Windows 11 Pro、Windows 11 Education お客様専用マスタを作成する場合の注意事項