35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

Windows 10を無人セットアップする

aikawame.hateblo.jp

MacからWindowsへの移行シリーズ第2弾では、いよいよWindows 10をインストールしていく。なお、シリーズの目次は上記リンクから辿ってほしい。

ここでやること

  • Windowsを無人セットアップするための設定ファイルを作成する

成果物

github.com

無人セットアップとは

無人セットアップとは、Windowsのインストール時の選択内容を応答ファイルと呼ばれるXMLファイルに予め書き出しておくことで、実際のインストール時の選択をスキップできる仕組みだ。あとはこの応答ファイルをインストールメディアの最上位ディレクトリーにコピーしてからインストールを開始すれば、応答ファイルで設定した箇所を飛ばしてインストールしてくれる。必ずしも全てを自動化する必要は無く、書き出した設定箇所だけがスキップされるので「ここは手動で選択したい」というような場合にも柔軟に対応できる。

詳しい内容はMicrosoftがリファレンスを提供しているので参照してほしい。

docs.microsoft.com

インストールメディアを作成する

では、まず最初にインストールメディアを作成していく。

Windows端末が手元にあるならば話は早いのだが、Macしか無い場合だとUnetbootinやdiskutilを使う方法などが検索結果として出てくるかと思う。ただ、オススメなのは仮想マシンにWindows 10をインストールして公式ツールを利用する方法だ。

本記事を読むような方であればWindowsをある程度カスタマイズするだろうから、予めVirtualBoxやParallels等の仮想環境での動作確認は行うと思われるので、その環境を利用して公式ツールからインストールメディアを作っておくのが一番確実で手っ取り早いだろう。手順もツールをダウンロードして実行、あとは指示に従うだけなので楽チンだ。

なお、WindowsのエディションはProを選択しておきたい。これはHyper-Vやサンドボックスなどの開発者にとって必須とも言える機能がHomeでは利用できないためだ。

応答ファイルを作成する

そして、いよいよ本題である応答ファイルを作成していく。

応答ファイルの名前は autounattend.xml とする。文字コードと改行コードは何も考えずにUTF-8とLFで問題無い。かつてのWindows界隈ではShift-JISとCRLFが跋扈していたけれども、最近では随分と柔軟になってきたものだ。

ここから先は、拙作の応答ファイルを例に各項目について説明していく。

github.com

オプション機能のカスタマイズ

4行目からの package セクションでは、オプション機能のカスタマイズができる。例えば忌々しいIEを最初から無効にしておいたり、WSLや仮想マシンを有効にしておいたりできる。これらの設定は勿論インストール後に変更しても良いのだけれども、それだと地味に1件ずつの適用時間が長い上に再起動が必要になってしまう。

無人セットアップでやっておけばWindowsのインストール時間は変わらないし、再起動の必要も無く最初からWSLが使える状態にできる。なので是非ともここでカスタマイズしておきたい。開発によく使われるであろうWSLとDockerを使用可能な状態にするには、以下のパッケージは必須なので有効にしておくと良いだろう。

  • Microsoft-Hyper-V-All
  • Microsoft-Windows-Subsystem-Linux
  • VirtualMachinePlatform

なお、有効・無効にしたいパッケージ名を確認するには、PowerShellで以下のコマンドを実行すれば全てのパッケージ名を確認することができる。

Get-WindowsOptionalFeature -Online

地域と言語の設定

24行目からの Microsoft-Windows-International-Core-WinPE コンポーネントでは、地域と言語の設定を行う。

日本在住で日本語を使うのであればロケールは全て ja-JP を指定して入力ロケールは 0411:E0010411 としておけば良いけれども、海外在住だったり日本語以外のキーボードを使う場合などはここを弄る必要がある。僕の場合は英語キーボード愛用者なので、入力ロケールだけ 0409:00000409 としている。

エディションとプロダクトキーの設定

34行目からの Microsoft-Windows-Setup コンポーネントでは、Windowsのエディション選択とプロダクトキーの入力を行う。

Windowsのエディションは、今回はProを選択している。またプロダクトキーの W269N-WFGWX-YVC9B-4J6C9-T83GX はKMSクライアントセットアップキーというもので、本来はボリュームライセンスのライセンス認証に使われるものだが、ここでは無人セットアップにおけるエディション選択のために使う。ちなみにこのプロダクトキー自体はMicrosoftが公開しているものであって、やましいものではないのであしからず。インストール後に改めてライセンス認証する必要があるのは勿論言うまでも無い。

ユーザーアカウント制御の設定

54行目からの Microsoft-Windows-LUA-Settings コンポーネントでは、ユーザーアカウント制御(UAC)の設定を行う。

Macユーザーには聞き慣れないかもしれないが、非常に雑に説明すると、UACというのはUnix文化圏でいう所のsudoに近いものという所だろうか。MacのGUIだとソフトウェアのインストール時や設定画面等でパスワードを要求される、アレだ。Windowsは歴史的経緯で管理者アカウントを使うのが暗黙の了解になってしまったため、後からUACという仕組みが提供されて、管理者なのに要所要所でアレのような画面が出る。

セキュリティー的な観点からはこれを無効にするのは御法度なのだが、有効にした状態でこの先の初期設定を自動化するのは非常に骨が折れるので、初期設定が完了するまではUACを無効にしておいて、完了後に有効にする想定としている。

カスタマーエクスペリエンス向上プログラムの設定

59行目からの Microsoft-Windows-SQMApi コンポーネントでは、カスタマーエクスペリエンス向上プログラムの有効・無効を設定する。

協力したい方は有効にしていただければ。

コンピューター名やユーザーの設定等

残りの部分はコンピューター名やユーザーの設定等だ。大体の設定は見ての通りという感じ。

注意すべき点としては、再びプロダクトキーを記述する箇所があるが、これは仕方ないので先述の箇所と同じキーをコピーする。あと、 AutoLogon の回数を3回に設定している理由だけれども、これはインストール直後に何度か再起動が必要なタイミングが発生しがちなためだ。設定しておけばその回数だけ自動でログインして、その後はパスワードによるログインになる。

あと、パスワードについては PlainText セクションを false にすれば暗号化できるのか…というとそうではなく、 false の場合はbase64エンコードの文字列を受け付けるようになっている。なのでGitHubに上げるのはダミーパスワードにしておこうということで、今回の例では適当にしてある。

それからもう1つ全体的な所で、今時はレアだとは思うが32ビット版のWindowsをインストールする場合は processorArchitecture プロパティーの値を X86 にする必要があるので注意してほしい。

応答ファイルのコピーとWindowsのインストール

あとは出来上がった応答ファイルをインストールメディアの最上位ディレクトリーにコピーしたら、このメディアからWindowsをインストールするだけで良い。

ただし、今回紹介した応答ファイルでは1画面だけ、パーティション設定はしていないのであしからず。パーティション設定はインストールするPCの状況によっても最適な設定が異なってくるので、僕は毎回手動で弄るようにしている。もしそこも自動化する場合は公式リファレンスや各所の紹介記事を参照してほしい。

パーティション設定だけ手動で行えば、あとは自動でWindowsのインストールが進むはずだ。

そしてインストール後の設定作業へ

次の記事からはいよいよWindowsのカスタマイズを自動化する方法について触れていきたい。

aikawame.hateblo.jp

【新パッケージ】Windows 10 Home 日本語版/May 2019 Update適用/パッケージ版

【新パッケージ】Windows 10 Home 日本語版/May 2019 Update適用/パッケージ版

  • 発売日: 2019/09/13
  • メディア: USBメモリスティック