Windowsのインストールに対し「システム準備ツール」を実行してイメージを一般化すると、物理/仮想マシン環境にイメージ展開するだけで新しいWindowsの稼働環境を短時間で構築できます。その際、効率化の鍵となるのが「応答ファイル」です。今回は、Windows 10の一般化されたイメージ用の応答ファイルの作り方を説明します。
本連載第34回、第35回では、「Windows 10のOSイメージ展開の新常識」と題して、Windows 10で気を付けなければならない推奨パーティション構成や、「システム準備ツール(Sysprep.exe)」のエラー回避のための追加手順を紹介しました。
Sysprepを実行して一般化したWindowsイメージを起動すると、「Mini-Setup」と呼ばれる最終セットアップ段階からスタートし、最小限の対話でWindows 10のインストールを完了することができます(画面1)。そして、このMini-Setupのプロセスは「応答ファイル(Unattend.xml)」を使用することで、人の対話なしで“完全に自動化”することができます。
一般化したWindowsイメージの展開には、(1)「Windowsプレインストール環境(Windows PE、WinPE)」でPCを機動してディスクのパーティションを構成し、「DISM」コマンドでWIM(Windows Imaging Format)イメージを手動展開する方法、(2)一般化した仮想ハードディスクのコピーから新しい仮想マシンを作成する方法、(3)「Windows展開サービス(Windows Deployment Service:WDS)」などのOSイメージ展開ツールを使用して、ネットワークやリムーバブルメディアを介して自動展開する方法など、幾つかのオプションがあります。
(3)のオプションは応答ファイルとの組み合わせで実現されるものですが、他の2つの方法も同様に応答ファイルで自動化することができます。
具体的には、展開後のオフラインのWindowsイメージにある「\Windows\Panther」フォルダやWindowsパーティションのドライブルートに応答ファイルをファイル名「Unattend.xml」として配置する、あるいは、Sysprep実行時のコマンドラインオプションとして「/unattend:応答ファイルのファイル名」を指定します。
また、リムーバブルメディアのドライブルート(USBメモリやフロッピーディスク)に応答ファイルをファイル名「Unattend.xml」として配置して、初回起動時に接続することで、応答ファイルを読み込ませることもできます。
多くの方の疑問は、応答ファイルをどうやって作成すればよいかということでしょう。Windows 7やWindows 8.1で応答ファイルを使用してセットアップを自動化したことがある人でも、Windows 10と以前のバージョンとのMini-Setupの違いには戸惑うかもしれません。
例えば、Windows 10 バージョン1809のMini-Setupには「2つ目のキーボードレイアウトを追加しますか?」「このアカウントのセキュリティの質問を作成します」「Cortanaをパーソナルアシスタントとして指定しますか」「アクティビティの履歴を利用してデバイス間でより多くのことを行う」「デバイスのプライバシー設定の選択」といった、以前のWindowsには存在しなかったセットアップ項目が存在するからです(画面2)。
でも、安心してください。例えば、Windows 7やWindows 8.1のイメージ展開で実績のある応答ファイルが手元にあるのなら、それをWindows 10に読み込ませることでも、特別なセットアップオプションが含まれていない限り、問題なく自動セットアップが完了するはずです。
タイムゾーンの設定、ロケールの設定、Active Directoryドメインへの参加設定(またはワークグループ構成)、ローカル管理者の追加とパスワードの作成といった、企業クライアントとしての標準的な設定は、従来と同じ応答ファイルで対応できます。
応答ファイルに指定されていないWindows 10の新しい項目は、既定の設定でセットアップされます。対話で行う場合にスキップできないセキュリティの質問の設定は、応答ファイルに含めなくても問われることはありません。
Windows 8.1やWindows 7で実績のある応答ファイルがある場合は、「メモ帳」などのテキストエディタで内容を直接編集して、設定を調整するだけで済むでしょう。なお、「NetworkLocation」「SkipMachineOOBE」「SkipUserOOBE」の設定は、Windows 10では使用されなくなりました。これらの設定は削除できますが、残っていても無視されます。
応答ファイルを新たに作成するとなると、少し面倒です。まず、「Windowsシステムイメージマネージャー」が利用可能な作業用マシン(仮想マシンでも可)と、Windows 10のインストールメディア(ISOイメージ)またはWindows 10のインストールを含むカスタムWIMイメージを準備する必要があります。
なお、今回は64bit版Windows 10 Enterprise バージョン1809を使用しています。その他のエディションやより新しいバージョンでは、一部異なる可能性があることに留意してください。
Windowsシステムイメージマネージャーは、応答ファイルの作成/編集ツールです。このツールは、Windows 10の「Windowsアセスメント&デプロイメントキット(Windows ADK)」の「Deployment Tools」に含まれます。応答ファイルを作成するWindows 10のバージョンに一致する、または最新バージョンのWindows ADKを使用してください(画面3)。
Deployment Toolsのインストールが完了したら、Windows 10 Enterpriseのイメージを含む「Install.wim」またはカスタムWIMイメージを読み書き可能なパスにコピーし、Windowsシステムイメージマネージャーを起動してWindowsイメージとして読み込みます。
読み込む際にカタログが作成され、そのWindowsイメージに対応する応答ファイルの編集が可能になります。後は、応答ファイルを新たに作成し、Windowsイメージの「Components」ツリーから、自動セットアップのために最低限必要な幾つかの項目を「Specialize」または「oobeSystem」パスに追加して、設定に値を入力します(画面4)。
応答ファイルを閉じると、指定したパスとファイル名に応答ファイルが作成されます。表1に、一般化イメージの自動セットアップのために必要な項目をまとめました。
パス | コンポーネント | 設定 | 値 |
---|---|---|---|
Specialize | amd64_Microsoft-Windows-Shell-Setup_neutral | ComputerName | コンピュータ名(*を指定すると自動生成) |
ProductKey | プロダクトキー | ||
amd64_Microsoft-Windows-UnattendedJoin_neutral\Identification | JoinDomainまたはJoinWorkgroup | ADドメイン名(DNS名)またはワークグループ名 | |
amd64_Microsoft-Windows-UnattendedJoin_neutral\Identification\Credentials | Domain(JoinDomainの場合のみ) | ADドメイン名(NetBIOSドメイン名) | |
パスワード(JoinDomainの場合のみ) | ドメインユーザーのパスワード | ||
Username(JoinDomainの場合のみ) | ドメインユーザー名 | ||
oobeSystem | amd64_Microsoft-Windows-Shell-Setup_neutral | TimeZone | Tokyo Standard Time |
amd64_Microsoft-Windows-Shell-Setup_neutral \OOBE | HideEULAPage | true | |
HideLocalAccountScreen | true | ||
HideOnlineAccountScreens | true | ||
HideWirelessSetupInOOBE | true | ||
ProtectYourPC | 3 | ||
amd64_Microsoft-Windows-Shell-Setup_neutral \LocalAccounts\LocalAccount | Group | Administrators | |
Name | ローカルユーザー名 | ||
amd64_Microsoft-Windows-Shell-Setup_neutral \LocalAccounts\LocalAccount\Password | Value | ローカルユーザーのパスワード | |
表1 64bit版のWindows 10 Enterprise日本語版の一般化イメージを自動セットアップするのに最小限必要な応答ファイルの設定項目 |
また、リスト1に、64bit版のWindows 10 Enterprise日本語版をActive Directoryのドメインメンバーとしてセットアップするための応答ファイルの例を示します。32bit版Windows 10の場合は、「processorArchitecture="amd64"」を「processorArchitecture="x86"」に置き換えてください。
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ComputerName>コンピュータ名</ComputerName> <ProductKey>プロダクトキー</ProductKey> </component> <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Identification> <Credentials> <Domain>Active DirectoryのNetBIOSドメイン名</Domain> <Password>ドメインユーザーのパスワード</Password> <Username>ドメインユーザー名</Username> </Credentials> <JoinDomain>Active DirectoryのDNSドメイン名</JoinDomain> </Identification> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" 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> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <ProtectYourPC>3</ProtectYourPC> </OOBE> <UserAccounts> <LocalAccounts> <LocalAccount wcm:action="add"> <Password> <Value>ローカルユーザーのパスワード</Value> <PlainText>true</PlainText> </Password> <Group>Administrators</Group> <Name>ローカルユーザー名</Name> </LocalAccount> </LocalAccounts> </UserAccounts> <TimeZone>Tokyo Standard Time</TimeZone> </component> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>ja-JP</InputLocale> <SystemLocale>ja-JP</SystemLocale> <UILanguage>ja-JP</UILanguage> <UserLocale>ja-JP</UserLocale> </component> </settings> </unattend>
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2018/7/1)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.