AzureでWindows仮想マシンを作成する際に、同じ設定の仮想マシンを再利用する方法として、Sysprep を使ってカスタムイメージを作成する手順を紹介します。Sysprepは Windows OS から固有情報を削除し、再利用可能な「テンプレート(一般化イメージ)」を作るためのツールです。これにより、同じ構成の仮想マシンを何度でも素早く展開できるようになります。
ただし、Sysprepの動作には前提条件やよくある落とし穴があり、知らずに進めるとイメージ作成に失敗したり、展開後のVMが起動しないという事態を招きます。本記事では、公式ドキュメントを横断的に参照しながら、現場で確実にイメージを作成するための手順とポイントをまとめます。

Sysprepとは
Sysprep(System Preparation Tool / システム準備ツール) は、Windowsインストールから PC固有の情報(セキュリティ識別子(SID)、イベントログ、システム復元ポイントなど)を削除し、別のPCにそのままインストール可能な状態にするツールです。「一般化(generalize)」と呼ばれる処理を行います。
Sysprepでできること
- Windows イメージから PC 固有情報(SID 等)を削除する(一般化)
- PC 固有のドライバーをアンインストール(ドライバーファイル自体は残す)
- OOBE(Out-of-Box Experience:初回起動時セットアップ)に進めるよう構成
- 応答ファイル(unattend.xml)による無人セットアップ設定の追加
一般化イメージと特殊化イメージの違い
Azureで扱うカスタムイメージには2種類あります。
| 種類 | 用途 | 特徴 |
|---|---|---|
| 一般化(Generalized) イメージ | テンプレートとして複数VMをデプロイしたい場合 | Sysprep(Windows)または waagent(Linux)で固有情報を削除済み。新規VM作成時にユーザー名・パスワードを再設定する。 |
| 特殊化(Specialized) イメージ | スナップショットとして個別VMを復元したい場合 | ユーザーアカウントや固有設定をそのまま保持。1台の復元・移行用途に向く。Sysprep不要。 |
本記事は、一般化イメージを作成する手順を扱います。
📎 参照ドキュメント
Sysprep実行の前提条件(事前チェック)
Sysprepを実行する前に、以下の条件を必ず満たしているか確認してください。1つでも欠けていると、Sysprep自体は成功しても、イメージから作成したVMがOOBEの段階で停止するなどの問題が起きます。
| 前提条件 | 内容と対応 |
|---|---|
| CD/DVD-ROMが有効になっていること | Azureは一般化イメージから作成したVMにISOファイルをDVD-ROMにマウントする。無効だとOOBE段階でVMが停止する。下記コマンドで明示的に有効化することが推奨される。 |
| BitLocker等の暗号化が解除されていること | Sysprepはドライブが完全に復号化されている必要がある。Trusted Launch VMではBitLockerが既定で有効なので、必ず無効化する。 |
| ドメインに参加していないこと | Sysprepはワークグループメンバーのみで動作する。ドメイン参加していると Sysprep が PC をドメインから自動的に削除する。 |
| Sysprep対応のサーバーロールのみが構成されていること | 一部のサーバーロール(Active Directory ドメインサービス等)はSysprepをサポートしない。一般化後にロールが正常動作しない場合がある。 |
| MDM(Intune等)に登録されていないこと | MDM登録時の証明書やIDはSysprepで削除されない。複数VMが同一IDを持つことになり、構成配信に問題が発生する。 |
| アプリケーションがSysprepをサポートしていること | セキュリティ製品・ストアアプリ・仮想化エージェントなどはSysprep非対応のものがある。各アプリの公式ドキュメントを確認する。 |
CD/DVD-ROM 有効化コマンド
管理者権限のコマンドプロンプトで以下を実行します。
REM CD/DVD-ROM の有効化
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom /v start /t REG_DWORD /d 1 /f
📎 参照ドキュメント
起動方法とオプション


Sysprepのコマンドラインオプション
Sysprep の構文は次の通りです。
Sysprep.exe [/oobe | /audit] [/generalize] [/mode:vm] [/reboot | /shutdown | /quit] [/quiet] [/unattend:<answerfile>]
主要オプション一覧
| オプション | 動作 | Azure VMでの推奨度 |
|---|---|---|
/generalize | SID・イベントログ・システム復元ポイントなど固有情報を削除する。イメージ化には必須。 | ◎ 必須 |
/oobe | 次回起動時にOOBE(初回セットアップ画面)から始まるよう構成。 | ◎ 必須 |
/shutdown | Sysprep完了後にシャットダウン。 | ◎ Azureキャプチャ時に必須 |
/mode:vm | VHDを同一ハイパーバイザー上のVMにそのまま展開可能にする。ハードウェア検出をスキップするため初回起動が高速化される。VM内からのみ実行可能。 | ○ Azure VMでは推奨 |
/reboot | Sysprep完了後に再起動(監査モード等のテスト用途)。 | △ イメージ化目的では使わない |
/audit | 監査モードで起動。追加ドライバー・アプリの導入やテストに使用。 | △ 用途次第 |
/quiet | 確認メッセージを表示しない。自動化向け。 | ○ 自動化時に有効 |
/quit | Sysprep実行後、再起動・シャットダウンしない。 | △ Packer等の自動化ツール向け |
/unattend:<file> | 無人インストール用の応答ファイルを指定。Azureではサポートされないため使用不可。 | ✕ Azureでは使用不可 |
⚠️ 重要:
/mode:vmはVMの中からしか実行できません。物理PCのVHDを準備する目的では使えません。⚠️ 重要:
/unattend:<answerfile>スイッチは Azure の Sysprep 手順ではサポートされていません。応答ファイルを使用したカスタマイズが必要な場合は Azure Image Builder などの代替手段を検討してください。
📎 参照ドキュメント
Sysprep実行手順
1. 元になる仮想マシンを準備
イメージ化したい設定(言語設定の変更、アプリケーションのインストール、Windows Update など)が完了したWindows Server VM を用意します。
例えば、AzureのデフォルトイメージからWindows Serverの仮想マシンを作成すると、言語は英語のまま展開されます。日本語化してからイメージ化しておけば、そのイメージから作成するVMはすべて日本語環境になります。
>> 参考記事 : Windows Server 2022 の UI日本語化の手順確認

2. (推奨)Pantherディレクトリを削除
過去のSysprep実行ログが残っていると、Sysprepが失敗するケースがあります。事前に削除しておくのがベストプラクティスです。
rd /s /q C:\Windows\Panther
3. 管理者権限のコマンドプロンプトでSysprepを実行
C:\Windows\System32\sysprep ディレクトリに移動し、Sysprepを実行します。
C:\Users\hirotano> cd C:\Windows\System32\sysprep\ C:\Windows\System32\Sysprep> sysprep.exe /generalize /shutdown /oobe /mode:vm

💡 オプション選択について:Azure VM のイメージ作成では、Microsoft 公式手順として最低限 sysprep.exe /generalize /shutdown の組み合わせが必須です。/oobe と /mode:vm は VM の初回起動を高速化・安定化させるために強く推奨されます。
実行すると、Sysprepの実行状態が表示されるウィンドウが開きます。

しばらくすると一般化処理が完了し、自動的にVMがシャットダウンされ、リモートデスクトップのセッションも切れます。

4. シャットダウン状態を確認
Azureポータルから対象VMを開き、ステータスが「停止済み」となっていることを確認します。これで仮想マシンは「一般化済み」の状態で停止しています。

⚠️ 重要:Sysprep を実行したVMは絶対に再起動しないでください。再起動すると一般化が解除されてしまい、イメージ化に失敗します。Azure側の操作で
generalizedとしてマークされた VM はそもそも再起動できません(公式ドキュメントで明記)。
📎 参照ドキュメント
イメージの作成(キャプチャ)


リソースグループ


Azure コンピューティング ギャラリーにイメージを共有する

イメージの作成後、この仮想マシンを自動的に削除します

⚠️ 「自動的に元VMを削除」オプションについて 公式ドキュメントには Automatically delete this virtual machine after creating the image について 「This is not recommended.(推奨されません)」 と明記されています。元のVMを残しておけば、追加の修正やイメージの再作成が容易になります。本番運用では基本的にチェックを外しておくのが安全です。
📎 参照ドキュメント
名前





作成したイメージから仮想マシンを作成



>> 参考記事 : 【Azure】仮想マシンの種類と作成手順(Windows Server)

カウント・ネットワーク等を設定し、デプロイします。
💡 新規VMの作成時の動作:一般化イメージから作成したVMは、初回起動時にOOBEを通って固有のSIDを再生成します。管理者ユーザー名・パスワードは、新規VM作成時に画面で指定したものが新しく設定されます(イメージ元のVMの管理者情報は残りません)。
📎 参照ドキュメント
現場で躓きやすいポイント
実務でSysprepを扱うと、ここで多くの人がハマります。事前に把握しておくと安心です。
1. Sysprepの実行回数には上限がある
Sysprepの /generalize は無制限に使えるわけではありません。
| OSバージョン | 上限回数 |
|---|---|
| Windows 8.1 / Windows Server 2012 以降 | 1001回 |
| Windows 7 / Windows Server 2008 R2 | 3回 |
| Windows Server 2008 | 3回 |
💡 同一の Windows イメージ上で上限を超えるとイメージの再作成が必要になります。プロダクトキー(無人ファイルでProductKeyを指定)を使うと自動的にライセンス認証され、実質的に上限を意識せずに使えます。
2. ストアアプリ更新後にSysprepが失敗する既知事象
リファレンス用VMでMicrosoft Storeに接続して内蔵アプリが自動更新されると、A fatal error occurred while trying to sysprep the machine で失敗するケースがあります。
回避策:
- イメージ作成用VMはインターネット未接続の監査モードで構成する
- もしくは、対象 Appx パッケージを次の手順で削除してから Sysprep する
# 該当ユーザーで実行されているパッケージを削除
Remove-AppxPackage -Package <packagefullname>
# プロビジョニングを削除
Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>
3. Windows Server 2025 の日本語化問題(2025年〜の既知問題)
Azure Marketplace の Windows Server 2025 英語版を 従来の手順(コントロールパネルから言語パックを追加)で日本語化すると、Sysprep が失敗する ことが確認されています。
回避策:PowerShell で Install-Language ja-jp コマンドを使う。
# 言語パックのインストール(オフラインインストール用)
Install-Language ja-jp
Install-Language コマンドは Windows Server 2025、Windows 11、Windows 10 22H2 以降で利用可能です。Windows Server 2022 以前は使えません。
4. Sysprepはタスクスケジューラ・PSExec経由で実行できない
公式ドキュメントで明記されています:「システムアカウントのコンテキストで Sysprep を実行することはできません。」自動化したい場合はあくまでログオン中の管理者ユーザーセッション、またはAzure Image Builder のような専用ツールを使ってください。
5. ローカル管理者パスワードに注意
Sysprep または OOBE を実行する前にユーザーアカウントに強力なパスワードを割り当てていないと、新規展開後の VM にログオンできなくなる可能性があります。Azure VM では「VMの作成」時に管理者パスワードを再設定するため通常は影響しませんが、ローカルで作成した管理者ユーザーがある場合は注意してください。
📎 参照ドキュメント
トラブルシューティング
“A fatal error occurred while trying to sysprep the machine”
Sysprep実行時に表示される代表的なエラーです。原因を特定するために、まずログファイルを確認してください。
ログファイルの場所
| ログファイル | 内容 |
|---|---|
C:\Windows\System32\Sysprep\Panther\setupact.log | Sysprep の動作ログ |
C:\Windows\System32\Sysprep\Panther\setuperr.log | エラーログ |
C:\Windows\Panther\setupact.log | OS セットアップ全体のログ |
⚠️ 重要:Sysprepを再実行すると
setupact.logがクリアされます。エラーが出た場合は、先にPantherフォルダの内容をバックアップしてから対応してください。
よくある原因
| エラー兆候 | 主な原因 | 対応 |
|---|---|---|
setuperr.log に RunExternalDlls:Not running DLLs | Sysprepの内部状態が壊れている | イメージを再作成 |
| ストアアプリ関連のエラー | 内蔵アプリの更新・削除の不整合 | 上記「現場で躓きやすいポイント」#2を参照 |
| BitLocker関連のエラー | ドライブ暗号化が有効 | BitLockerを無効化してから再実行 |
| ライセンス Rearm 制限超過(Win7系) | Sysprep を3回以上実行 | イメージ再作成、もしくは <SkipRearm> 設定 |
一般化したVMから作成したVMが起動しない(”Windows could not finish configuring the system”)
ブート診断のスクリーンショットに「Windows could not finish configuring the system. Setup is starting services.」と表示される場合、OS が Sysprep プロセスを完了できていません。
このエラーが発生したVMは復旧不可能です。バックアップがあればVMを復元するか、新しい一般化イメージを作り直す必要があります。
イメージから作成したVMがOOBEで停止する
CD/DVD-ROMが無効化されているのが主な原因です。前述の reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom /v start /t REG_DWORD /d 1 /f コマンドでCD/DVD-ROMを有効化してから再度Sysprepを実行してください。
📎 参照ドキュメント
マネージドイメージ vs Azure Compute Gallery(どちらを使うべきか)
イメージの保存先は2種類あります。新規構築時はAzure Compute Galleryを使うのが公式推奨です。
| 観点 | マネージドイメージ(レガシ) | Azure Compute Gallery(推奨) |
|---|---|---|
| 位置付け | レガシ(公式は移行を推奨) | 現行・新機能の対応はこちらのみ |
| イメージタイプ | 一般化のみ | 一般化・特殊化の両方 |
| VM世代 | Gen1のみ | Gen1・Gen2 両対応 |
| リージョン展開 | 同一リージョン内のみ | グローバルレプリケーション可 |
| バージョン管理 | × | ◎(メジャー.マイナー.パッチ形式) |
| 共有範囲 | 同一サブスクリプション内 | サブスクリプション・テナント間共有可(RBAC) |
| 新機能対応(Trusted Launch、Confidential VM、ARM64 など) | × 非対応 | ◎ 対応 |
| 大規模デプロイ | △ | ◎ レプリカ機能あり |
| 用途 | 開発・検証・小規模 | 本番・組織横断・大規模 |
既存のマネージドイメージの移行
すでにマネージドイメージを持っている場合は、それをソースにしてAzure Compute Galleryのイメージバージョンを作成できます。
- Azure Compute Gallery を作成
- イメージ定義(Image definition)を作成
- 既存のマネージドイメージをソースとしてイメージバージョンを作成
📎 参照ドキュメント
まとめ
AzureでWindows仮想マシンのカスタムイメージを作成する手順を、Sysprepの仕組み、コマンドオプション、前提条件、躓きやすいポイント、トラブルシューティングまで含めて確認しました。
重要ポイントの再確認:
- Sysprepは Windows OS から固有情報を削除して再利用可能なテンプレートを作るツール
- 前提条件チェック(CD/DVD-ROM、BitLocker、ドメイン、サーバーロール、MDM)は必ず実施する
- Azure VM では
sysprep.exe /generalize /shutdown /oobe /mode:vmが推奨される組み合わせ - Sysprep実行後のVMは絶対に再起動しない
- ログは
C:\Windows\System32\Sysprep\Panther\配下で確認できる。事前にC:\Windows\Pantherを削除しておくと失敗を防ぎやすい - 新規構築時は Azure Compute Gallery を使う(マネージドイメージはレガシ)
- Windows Server 2025 の日本語化は
Install-Language ja-jpを使う
これらを踏まえて、検証や開発環境の効率化、本番展開の標準化にぜひ役立ててください。次のステップとして、PowerShell や Azure CLI による自動化、さらには Azure Image Builder によるイメージビルドの自動化にも挑戦してみると、運用がより楽になります。
コメント