前回の記事、Windows 10 展開用イメージの作成 STEP1 – 展開環境の準備 (前編) の続きです。
必要要件
この文書を作成、また実施する上での必要要件は以下のようになります。
- Windows 10 のインストールメディア: ここでは、ボリュームライセンス版のインストールメディア ( ISO ファイル ) を使用します。
→ ( Windows Pro 10 1903.1 64Bit 版 ) - テクニシャンコンピュータ: 展開用の環境を整える PC の事です。
→ ここでは単に 「作業用 PC」とか、「作業用マシン」と呼びます。- 作業用マシンは、ここでは Windows 10 Pro 64ビット版を使用しています。
- 作業用マシンには、あらかじめ VirtualBox がインストールされているものとします ( VirtualBox 6.1.4 )。
- 参照用コンピュータ:展開用イメージの元となるコンピュータ。
→ ここでは、「参照用 PC」とか、「参照用マシン」と呼びます。- 参照用マシンは、作業用マシンにインストールされている VirtualBox 上で作成します。仮想マシンです。
ゴール
- 展開用の Windows 10 Pro の プレインストール用メディア (ISO ファイル) を作成する。
- ターゲットとなる OS は、Windows 10 Pro 64ビット版。
- あらかじめ、ブラウザとして Firefox、Thunderbird をプレインストールした状態にする。
- 管理用のアカウントを自動で1つ登録する。
全体の流れ
Windows 10 の展開用イメージを作成する流れは、全体的に以下のようになります。
- STEP1: 展開環境の準備1
- ADKのインストール
- Windows PEメディアの作成
- WSIM 1903 更新プログラムを適用する
- SETP2: 展開環境の準備2 ← 今回はここ
- 応答ファイルの作成
- STEP3: 参照コンピュータの作成
- Windows10のインストール
- Windows Update の実行
- デスクトプアプリケーションのインストール
- デフォルトユーザープロファイルのカスタマイズ
- Sysprep による一般化
- STEP4: 標準イメージの作成
- DISM コマンドを使用した標準イメージの作成
- OSCDIMG コマンドを使用したISOイメージの作成
無人応答ファイルの作成
Sysprep 実行時に使う応答ファイルを作成します。
この応答ファイルを作成するために、Windows 10 のインストールメディアが必要になります。メディアは、Sysprep を行うのと同じエディション、アーキテクチャ(64ビット Or 32ビット)1 を使用します。
ちなみに、ここではボリュームライセンスのインストールメディアを使うので、実際の DVD メディアではなくて ISO ファイルになります。DVD であろうと ISO ファイルであろうと特に問題はありません。特に Windows 10 では ISO ファイルを直接マウントできるので、ISO ファイルさえあれば問題ありません。
ISO ファイルをマウント2します。ここでは仮に K:
ドライブにマウントされているとして記事を進めていきます。
K:
の Sources
フォルダに入っている install.wim
を任意の場所にコピーしておきます。
次に、Windows システム イメージ マネージャー を起動します。
[スタード
] → [Windows Kits
] → [Windows システム イメージ マネージャー
] とたどり、右クリックして管理者で起動します。
Windows システムイメージマネージャ (SIM) が開きます。
[ファイル
] → [Windows イメージの選択
] で、先程保存した、install.wim
を選択し、開きます。
「イメージの選択」 が開いたら、利用するイメージを選択します。ここでは、Windows 10 Pro を選択します。
「Windows System Image Manager」のダイアログが開くので、[はい
] をクリックすると、カタログファイルの作成が始まるのでしばらく待ちます。
Windows SIMで、カタログを生成できませんでした というエラーが発生する場合があります。 この場合は、前回記事の「WSIM 1903 更新プログラムを適用する」を参照してください。 |
カタログファイルが読み終わると、[Windows イメージ] ペインの [Components] にコンポーネントの一覧がインポートされます。
これで準備ができたので、応答ファイルを作成します。
[ファイル
] → [新しい応答ファイル
] をクリックします。
[応答ファイル] ペインに応答ファイルの構成パスが表示されます。
この構成パスに先程のコンポーネントを割り当てていきます。
コンポーネントを構成パスに実際に割り当ててみる例は以下のとおりです。
まず、 [ Windows イメージ ] ペインの
- [
amd64_Microsoft-Windows-Shell-Setup_10.0.XXXXX.XXX_neutral
]3 を右クリックして - [
パス 4 specialize に設定を追加
] をクリック。
すると、[ 応答ファイル ] ペインの [4 specialize
] に項目が追加されます。
続いて、[応答ファイル] ペインの [Components
] → [4 specialize
] → [amd64_Microsoft-Windows-Shell-Setup_neutral
] をクリックすると、[ Microsoft-Windows-Shell-Setup プロパティ ] にプロパティと設定の一覧が表示されます。
プロパティの [ CopyProfile
] の値を [ true
] に設定します。
[ファイル
] → [応答ファイルを保存
] で、unattend.xml
という名前で保存します。
このように、Windows イメージのコンポーネントを、応答ファイルの構成パスに配備していく形で、応答ファイルを作成していきます。
ここで、各構成パスごとに自身の行った設定を紹介してみたいと思います。
Windows PE ( Windows プレインストール環境 )
Windows セットアップ中に使用する言語に関する設定です。
Microsoft-Windows-International-Core-WinPE
InputLocale
SystemLocale
UILanguage
UserLocale
SetupUILanguage / UILanguage
の各値を、ja-JP
にする。
1). windowsPE
`-- amd64_Microsoft-Windows-International-Core-WinPE_neutral
|-- InputLocale: ja-JP
|-- SystemLocale: ja-JP
|-- UILanguage: ja-JP
|-- UserLocale: ja-JP
`-- SetupUILanguage
`-- UILanguage: ja-JP
Generalize ( 一般化 )
Microsoft-Windows-PnpSysprep_newtral
PersistAllDeviceInstalls
展開先の PC が参照マシンと同じハードウェア構成である場合に、この値を true
とすることで、展開先 PC にデバイスドライバが適切に構成されるようにします。
今回は、参照マシンを 仮想マシン で構成するので、ここの値は不要になります。
Microsoft-Windows-Security-SPP_newtral
SkipRealm
Windows のライセンスのアクティベーション回数は 3 回までとされています。この値を 1
とすることにより、アクティベーションの回数をリセットできるようにします。
ただ、Windows 8 以降はアクティベーションの回数制限が事実上ないので、この設定は不要になります。
3). generalize
|-- amd64_Microsoft-Windows-PnpSysprep_newtral
| `-- PersistAllDeviceInstalls: true
| ※ 参照マシンのドライバを残したい場合は両方 true に。
| 参照マシンが仮想マシンの場合は、両方とも未設定に。
`-- amd64_Microsoft-Windows-Security-SPP_newtral
`-- SkipRealm: 1
※テスト時は1で、本番作成時に0にする
Specialize
Microsoft-Windows-Shell-Setup_newtral
ComputerName
コンピュータ名を指定します。*
にするとランダムな名前になります。
CopyProfile
値を true
とすることで、参照マシンの Administrator
アカウントのプロファイルを、既定 (デフォルト) ユーザーのプロファイルとして使用します。
ProductKey
ボリュームライセンスのMAKを指定します。
TimeZone
PC のタイムゾーンを指定します。
Microsoft-Windows-UnattendedJoin / Identification
JoinDomain
コンピュータを参加させるドメイン名を指定します。もし値をセットすると、JoinWorkgroup
は設定できません。
JoinWorkgroup
コンピュータを参加させるワークグループ名を指定します。値をセットすると、JoinDomain
は設定できません。
Microsoft-Windows-UnattendedJoin / Identification / Credentials
Domain
アカウントの認証に使うドメイン名を指定します。完全修飾 DNS ドメイン名 か、NetBIOS ドメイン名を指定します。
Password
ドメインに参加する際に使用するユーザーのパスワードを指定します。
Username
ドメインに参加する際に使用するユーザー名を指定します。
4). specialize
|-- amd64_Microsoft-Windows-Shell-Setup_neutral
| |-- ComputerName: *
| |-- CopyProfile: true
| |-- ProductKey: ボリュームライセンスのライセンスキー
| `-- TimeZone: Tokyo Standard Time
`-- amd64_Microsoft-Windows-UnattendedJoin_neutral
`-- Identification
|-- JoinDomain: true or false
|-- JoinWorkgroup: true or false
`-- Credentials
|-- Domain:
|-- Password:
`-- Username:
oobeSystem
Microsoft-Windows-International-Core
InputLocale
入力ロケールとキーボードレイアウトを指定します(例: 0409:00000409
)。最初の値は入力言語を示すロケール ID で、2番目の値はキーボードレイアウト。
値については、0411:E0010411
、0411:E0020411
、0411:00000411
と諸説あり。ちなみに、「サポートされる言語パックと既定の設定」には、
0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}
(ja-JP:Microsoft IME)
となっています。
ちなみにここでは、0411:00000411
としています。
以下の設定は ja-JP
にしておきます。
SystemLocale
:ja-JP
UILanguage
:ja-JP
UILanguageFallback
:ja-JP
Microsoft-Windows-Shell-Setup
TimeZone
: Tokyo Standard Time
Microsoft-Windows-Shell-Setup / OOBE
HideEULAPage
Microsoft ソフトウェアライセンス条項のページを非表示にするかどうか。ここでは、true
: 表示させない、にしています。
HideOEMRegistrationScreen
OEM の登録ページを表示させるかどうか。ここでは、true
: 表示させない、にしています。
HideOnlineAccountScreen
OOBE の際にオンラインでサインイン4 させる画面を表示させるかどうか。ここでは、true
: 表示させない、にしています。
HideWirelessSetupInOOBE
OOBE セットアップ時に Wireless ネットワークへの参加画面を表示させるかどうか。ここでは、true
: 表示させない、にしています。
ちなみに、ワイヤレスネットワークに参加させる場合は、以下の条件を満たすことが必要です。
HideWirelessSetupInOOBE
の値がtrue
ではない- PCに、ワイヤレスネットワーク用のデバイスが搭載されている
- ワイヤレスネットワーク用のデバイスドライバがインストール済みで有効にされている
- ワイヤレスネットワークが検出されて、利用可能である
- ワイヤレスネットワーク接続が、同じPC上の以前の Windows インストールの際に接続されたことがない
ProtectYourPC
「かんたん設定」を有効にするかどうか。ここでは、3
: 有効にしない、にしています。
Microsoft-Windows-Shell-Setup / Themes
この部分は必須ではありません。
BrandIcon
テーマのアイコンとして表示される画像へのパスを指定します。240×80ピクセル以下の .png
ファイルである必要があります。
DesktopBackground
デスクトップの背景画像のパスを指定します。画像は %WinDir%
配下の任意のサブフォルダに配置できます。
ThemeName
テーマの名前を指定します。
Microsoft-Windows-Shell-Setup / UserAccounts
セットアップ時にユーザーアカウントを作成することもできます。
ここではローカルアカウントを作成する手順を示します。
- Microsoft-Windows-Shell-Setup / UserAccounts / LocalAccounts を右クリックして 「新しい LocallAccount の挿入」
- Microsoft-Windows-Shell-Setup / UserAccounts / LocalAccounts / LocalAccount で次の項目に値を設定する
Group
:Administrators
Name
: 任意のユーザー名
これで、LocalAccount の直下に、Password という項目が追加されると思います。
- Password
PlainText
: 通常、true
になっています。Value
: パスワードを指定します。
後は必要なだけローカルアカウントを追加できます。
5). oobeSystem
|-- amd64_Microsoft-Windows-International-Core_neutral
| |-- InputLocale: 0411:00000411
| |-- SystemLocale: ja-JP
| |-- UILanguage: ja-JP
| `-- UILanguageFallback: ja-JP
`-- amd64_Microsoft-Windows-Shell-Setup_newtral
|-- TimeZone: Tokyo Standard Time
| (※ ここにもDoNotCleanTaskBarがあるが未検証)
|-- OOBE
| |-- HideEULAPage: true
| |-- HideOEMRegistrationScreen: true
| |-- HideOnlineAccountScreen: true
| |-- HideWirelessSetupInOOBE: true
| `-- ProtectYourPC: 3 ※ 推奨設定は 1
|-- Themes ※ 特になくても問題なし
| |-- BrandIcon: %WinDir%\OEM\brandlogo.png
| |-- DesktopBackground: %WinDir%\OEM\background.png
| `-- ThemeName: Hoge Default Theme
`-- UserAccounts ※ インストール時に自動作成されるユーザー
`-- LocalAccounts
`-- LocalAccount
|-- Action: AddListItem
|-- Group: Administrators
|-- Name: hoge
`-- Password
|-- PlainText: true
`-- Value: PaS$w0rd
応答ファイルの保存
応答ファイルを保存する前に、[ツール
] → [応答ファイルの検証
]でエラーをチェックします。
- 非推奨 (Deprecated) な設定の警告
- 使用していない (設定していない) 項目の警告
などの警告やエラーが報告されます。
非推奨項目は設定する必要がないので、使用していない項目を含め、コンポーネントごと構成パスから「削除」して、設定しているコンポーネントのみにしましょう。
警告やエラーが表示されなくなったら、応答ファイルを保存します。
2件のコメント
iku · 2023年9月11日 6:37 PM
応答ファイルはどのPCで作業ですか?作業用マシン?
zaturendo · 2023年9月12日 7:10 AM
コメントありがとうございます。
応答ファイルは作業用マシンでの作業になります。