Sysprepで Windows Server の雛形(ゴールドイメージ)を作成する

この記事の内容

  • Windows Server を複数台展開する際に、毎回同じ設定をする手間を省く「雛形(ゴールドイメージ)」の作り方を解説します
  • 仮想ディスク(VHDXファイル)を単純コピーしてはいけない理由と、その解決策としての Sysprep を紹介します
  • Sysprep 実行前に雛形へ仕込んでおくと便利な設定項目を紹介します
  • Sysprep を実行してシャットダウンされた状態の VHDX をコピーし、新しい仮想マシンを作成する手順を解説します
  • 次回予告として、自動応答ファイルを使った展開後のセットアップ完全自動化について触れます

はじめに

本記事は「企業でよくある Windows / M365 環境を構築してみるシリーズ」のパート2です。前回はネストされた Hyper-V 基盤を作成しました。今回はその基盤の上に Windows Server を効率よく複数台展開するために、Sysprep(システム準備ツール) を使って雛形を作成する方法を解説します。


なぜ単純なVHDXコピーではいけないのか

仮想マシンを複数台用意する方法のひとつとして、仮想ハードディスク(VHDXファイル)をそのままコピーするというアプローチが考えられます。しかし Windows の場合、OS 内部には固有の ID(SID など)が埋め込まれており、単純にコピーするとその ID が重複してしまいます。

特に Active Directory 環境では、この ID の重複が原因でさまざまな問題が発生します。そのため、コピーしても問題が起きないよう「一般化(Generalize)」した状態にしてからコピーする必要があります。

この一般化を行うツールが Sysprep(System Preparation Tool) です。


Sysprep とは

Sysprep は Windows に標準搭載されているシステム準備ツールで、以下のパスに格納されています。

C:\Windows\System32\Sysprep\sysprep.exe

Sysprep を実行して「一般化」を選択すると、OS に埋め込まれた固有の ID がクリアされ、次回起動時に再生成される状態になります。また、シャットダウンオプションを選ぶことで、一般化処理が完了した後に OS が自動的にシャットダウンされます。

シャットダウンされた状態の VHDX ファイルをコピーすることで、複製可能なディスクイメージ(ゴールドイメージ) が完成します。


Sysprep 実行前に雛形へ仕込む設定

Sysprep を実行する前に、雛形となる仮想マシンに共通設定を施しておくことで、展開後に毎回同じ設定をする手間を省けます。以下は設定例です。

リモートデスクトップの有効化

展開直後からリモートデスクトップで接続できるよう、事前に有効化しておきます。

IE セキュリティ強化の構成を無効化

検証目的の環境では、IE セキュリティ強化の構成を無効にしておくと、各種ダウンロードをスムーズに行えるようになります。

Windows Update の適用

雛形の段階で最新の状態に更新しておくことで、展開後に個別で Windows Update を実施する手間を省けます。

Ansible 用の初期設定スクリプトの実行

Infrastructure as Code ツールとして Ansible を利用する場合は、Ansible 公式が提供する Windows Server 向けの初期設定スクリプトをあらかじめ実行しておきます。このスクリプトは内部的に WinRM を有効化するなどの処理を行い、Ansible から構成管理できる状態を準備します。


Sysprep の実行手順

設定が完了したら、Sysprep を実行します。コマンドプロンプトやファイル名を指定して実行から以下を入力します。

C:\Windows\System32\Sysprep\sysprep.exe

ダイアログが表示されたら、以下の設定を行います。

  • システムクリーンアップアクション: OOBE(Out-of-Box Experience)に入る を選択
  • 一般化する: チェックを入れる
  • シャットダウンオプション: シャットダウン を選択

OK をクリックすると Sysprep が実行され、一般化処理が完了すると OS が自動的にシャットダウンされます。


ゴールドイメージの保存と仮想マシンの展開

VHDX ファイルのコピー

OS がシャットダウンされたら、仮想マシンの VHDX ファイルをコピーして保管します。このファイルをゴールドイメージと呼びます。

例として、以下のような専用フォルダを作成して保存しておくとわかりやすいです。

GolWdiInmdaogwes\Server2022_GoldImage.vhdx

コピーした VHDX から新しい仮想マシンを作成する

Hyper-V マネージャーで新規仮想マシンを作成する際、仮想ハードディスクの設定で 「既存の仮想ハードディスクを使用する」 を選択し、コピーしたゴールドイメージの VHDX ファイルを指定します。新しく VHDX を作成するのではなく、既存ファイルを指定する点がポイントです。

仮想マシンを起動すると、OOBE(初回セットアップ画面)が表示されます。これは Sysprep によって一般化されたことで初回起動状態に戻っているためです。通常の新規インストール時とは少し異なる特殊なモードですが、基本的な初期設定(地域、キーボード、ライセンス承認、管理者パスワードなど)を入力することでセットアップが完了します。

設定の引き継ぎを確認

セットアップ完了後、雛形で設定した内容が引き継がれていることを確認します。

  • IE セキュリティ強化の構成が無効になっていること
  • リモートデスクトップが有効になっていること

なお、ネットワーク設定は Sysprep によって初期化されるため、展開後に再設定が必要です。


注意点:Sysprep なしのコピーは絶対 NG

繰り返しになりますが、Sysprep を実行せずに VHDX ファイルをコピーして新しい仮想マシンを作成することは絶対に行ってはいけません。Active Directory 環境をはじめ、さまざまな問題が発生します。必ず Sysprep で一般化してからコピーするようにしてください。

Sysprep を使った VHDX コピーによる VM 展開は、Microsoft が正式にサポートしている手順です。


まとめ

本記事では、Windows Server の雛形(ゴールドイメージ)を Sysprep を使って作成し、VHDX ファイルのコピーから新しい仮想マシンを展開する手順を解説しました。

  • Windows の VHDX を単純コピーして使うと ID が重複し、Active Directory 環境で問題が発生する
  • Sysprep の「一般化」オプションを使うことで、コピー可能なクリーンなディスクイメージを作成できる
  • Sysprep 実行前にリモートデスクトップ有効化・Windows Update 適用・Ansible 初期設定など共通設定を済ませておくと展開後の手間を大幅に削減できる
  • Hyper-V で新規 VM 作成時に「既存の仮想ハードディスクを使用する」でゴールドイメージを指定することで、複数台の展開が容易になる

次回は自動応答ファイル(Unattend.xml) を活用して、展開後の OOBE 設定入力も含めた初期セットアップを完全自動化する方法を解説する予定です。