ARTICLE

Azure VM(Windows 11)イメージ作成手順書

ishiwari.net article

対象読者: Azure 管理者・インフラ担当者
対象OS: Windows 11
最終更新: 2026-05-13
参考: Microsoft Learn - VM のプロビジョニング解除・一般化


目次

  1. 概要
  2. イメージ種別の選択
  3. 全体フロー
  4. 前提条件・事前確認
  5. Phase 1: ソースVMの準備
  6. Phase 2: Sysprep による一般化
  7. Phase 3: Azure 側での一般化マーク
  8. Phase 4: イメージのキャプチャ(Azure Compute Gallery)
  9. Phase 5: イメージからVMを作成する
  10. トラブルシューティング
  11. 注意事項まとめ

1. 概要

Azure VM のカスタムイメージを作成することで、以下のメリットが得られます。

  • 同一構成の VM を繰り返しデプロイできる(ゴールデンイメージ運用)
  • アプリケーション・設定・Windows Update 済みの状態から VM を起動できる
  • 複数リージョン・サブスクリプションへのイメージ配布が可能

Windows VM のイメージ作成には、Sysprep(一般化) を使用してマシン固有情報を削除してからキャプチャする方法と、固有情報を保持したまま 特殊化イメージ としてキャプチャする方法の 2 種類があります。

本手順書では 一般化イメージ(Sysprep使用) を対象とします。


2. イメージ種別の選択

%%{init: { "flowchart": { "useMaxWidth": true } } }%% flowchart TD A[イメージ作成の目的は?] --> B{ユーザーアカウント・ ホスト名を引き継ぐ?} B -->|Yes| C[特殊化イメージ Specialized Image] B -->|No| D[一般化イメージ Generalized Image] C --> E["Sysprep 不要 そのままキャプチャ可能"] D --> F["Sysprep 必須 本手順書の対象"] E --> G[Azure Compute Gallery に登録] F --> G G --> H[新規 VM のデプロイに利用] style D fill:#0078D4,color:#fff style F fill:#0078D4,color:#fff
種別 説明 Sysprep
一般化 (Generalized) SID・ホスト名・ユーザーアカウントをリセット。複数台への展開に最適 必要
特殊化 (Specialized) マシン固有情報を保持。1台のクローンに近い用途 不要

本手順書は「一般化イメージ」を対象とします。


3. 全体フロー

%%{init: { "flowchart": { "useMaxWidth": true } } }%% flowchart LR subgraph 準備 A1[ソースVMの構成 ・アプリインストール ・Windows Update ・設定変更] A2[スナップショット取得 ※元VMを保護] end subgraph "Phase 2: VM内作業" B1[CD/DVD-ROM 有効化 確認] B2[Panther フォルダ削除] B3[Sysprep 実行 /generalize /shutdown] B4[VM 自動シャットダウン] end subgraph "Phase 3: Azure Portal / CLI" C1[VM の割り当て解除] C2[VM を '一般化済み' に マーク] end subgraph "Phase 4: イメージ登録" D1[Azure Compute Gallery 作成] D2[イメージ定義 作成] D3[イメージバージョン 作成 キャプチャ] end subgraph "Phase 5: デプロイ" E1[イメージから新規VM作成] end 準備 --> B1 B1 --> B2 --> B3 --> B4 B4 --> C1 --> C2 C2 --> D1 --> D2 --> D3 D3 --> E1

4. 前提条件・事前確認

4.1 ソース VM の要件

項目 要件
OS Windows 11(Gen 2 推奨)
状態 実行中(作業前)
BitLocker 無効化済み(Sysprep 前に必須)
ドメイン参加 離脱済み(ドメイン参加VMの一般化は非推奨)
MDM/Intune 未登録(登録済みの場合、Sysprep失敗の原因となる)
ディスク暗号化 無効(Azure Disk Encryption も無効化すること)

4.2 インストール済みアプリの確認

一部のアプリケーションは Sysprep に対応していません。以下を事前に確認してください。

%%{init: { "flowchart": { "useMaxWidth": true } } }%% flowchart TD A[インストール済みアプリを確認] --> B{Sysprep 対応済み?} B -->|Yes| C[そのまま続行] B -->|No| D{対応策あり?} D -->|アンインストール可能| E[イメージ作成後に インストール] D -->|対応策なし| F[⚠️ 特殊化イメージに 変更を検討] B -->|不明| G[ベンダードキュメント 確認]

Sysprep非対応の代表例:

  • 一部のセキュリティソフト(要確認)
  • Microsoft Store アプリの一部(更新途中のもの)
  • 仮想化エージェント(別途対応が必要)

4.3 Sysprep 実行可能回数の制限

Windows Server 2012 以降・Windows 11: 最大 1001 回
それ以外の旧 OS: 3 回

Sysprep の実行回数上限に達すると、以降の一般化が失敗します。

4.4 元VMの保護(推奨)

重要: VM を一般化すると、その VM は 二度と起動できません
元 VM の状態を保護するため、作業前に OS ディスクのスナップショットを取得することを強く推奨します。

# スナップショット作成例(Azure PowerShell)
$vm = Get-AzVM -ResourceGroupName "myRG" -Name "mySourceVM"
$osDisk = Get-AzDisk -ResourceGroupName "myRG" -DiskName $vm.StorageProfile.OsDisk.Name

$snapshotConfig = New-AzSnapshotConfig `
    -SourceUri $osDisk.Id `
    -Location $vm.Location `
    -CreateOption Copy

New-AzSnapshot `
    -ResourceGroupName "myRG" `
    -SnapshotName "mySourceVM-snapshot" `
    -Snapshot $snapshotConfig

5. Phase 1: ソースVMの準備

ソース VM に必要な設定・アプリをすべて行ってから Sysprep を実行します。

flowchart TD A[ソースVMにRDP接続] --> B[Windowsの設定] B --> B1[日本語化・タイムゾーン設定 例: Asia/Tokyo] B1 --> B2[Windows Update 完全適用済みにする] B2 --> B3[必要アプリのインストール] B3 --> B4[共通設定・ポリシー適用] B4 --> C{BitLocker 有効?} C -->|Yes| D[BitLocker 無効化 完全復号化を待つ] C -->|No| E[次フェーズへ] D --> E

5.1 BitLocker の無効化手順

BitLocker が有効な場合は必ず無効化してください。

REM 管理者コマンドプロンプトで実行
manage-bde -off C:

REM 復号化の進行状況を確認
manage-bde -status C:

Conversion Status: Fully Decrypted になるまで待機してから次の手順に進みます。


6. Phase 2: Sysprep による一般化

6.1 CD/DVD-ROM の有効化確認

Azure プラットフォームは、一般化イメージから VM を作成するときに ISO ファイルを DVD-ROM にマウントします。DVD-ROM が無効の場合、VM が OOBE 画面で停止します。

管理者コマンドプロンプトで以下を実行して有効化します:

REM CD/DVD-ROM を有効化
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom /v start /t REG_DWORD /d 1 /f

6.2 リムーバブルストレージポリシーの確認

グループポリシーで「すべてのリムーバブル記憶域へのアクセス拒否」が有効になっていると Sysprep が失敗します。

確認場所:
コンピューターの構成 > 管理用テンプレート > System > リムーバブル記憶域アクセス
→ 「すべてのリムーバブル記憶域クラス: すべてのアクセスを拒否する」が 無効 になっていることを確認

6.3 Panther ディレクトリの削除

過去の Sysprep ログが残っていると、次回の Sysprep が失敗することがあります。

REM 管理者コマンドプロンプトで実行
rd /s /q C:\Windows\Panther

6.4 Sysprep の実行

REM %windir%\System32\Sysprep ディレクトリへ移動
cd /d C:\Windows\System32\Sysprep

REM Sysprep を実行(VM 自動シャットダウン)
sysprep.exe /generalize /shutdown /oobe

オプション解説:

オプション 説明
/generalize マシン固有情報(SID・ホスト名等)を削除
/shutdown 処理完了後にVMをシャットダウン
/oobe 次回起動時に Out-of-Box Experience(初期セットアップ)を開始
/mode:vm Azure VM 環境向け最適化(オプション)

重要: /unattend スイッチ(応答ファイル指定)は Azure ではサポートされていません

%%{init: { "sequence": { "useMaxWidth": true } } }%% sequenceDiagram participant 管理者 participant VM participant Azure 管理者->>VM: RDP接続 管理者->>VM: 前提条件確認・設定 管理者->>VM: Panther フォルダ削除 管理者->>VM: sysprep.exe /generalize /shutdown /oobe VM-->>VM: マシン固有情報の削除処理 VM-->>Azure: 自動シャットダウン Note over VM,Azure: ここから先はVMを再起動しないこと!

6.5 Sysprep 完了の確認

Azure Portal で VM の状態が 「停止済み」 (Stopped) になっていることを確認します。
(「停止済み(割り当て解除)」ではなく「停止済み」の状態が正常)


7. Phase 3: Azure 側での一般化マーク

Sysprep でシャットダウンされた VM を、Azure プラットフォーム上で「一般化済み」としてマークします。

7.1 方法A: Azure PowerShell

# VM の割り当て解除
Stop-AzVM `
    -ResourceGroupName "myResourceGroup" `
    -Name "mySourceVM" `
    -Force

# VM を一般化済みとしてマーク
Set-AzVM `
    -ResourceGroupName "myResourceGroup" `
    -Name "mySourceVM" `
    -Generalized

7.2 方法B: Azure CLI

# VM の割り当て解除
az vm deallocate \
    --resource-group myResourceGroup \
    --name mySourceVM

# VM を一般化済みとしてマーク
az vm generalize \
    --resource-group myResourceGroup \
    --name mySourceVM

7.3 方法C: Azure Portal

  1. Azure Portal で対象 VM を開く
  2. 左メニュー「概要」ページを確認
  3. VM が 「停止済み(割り当て解除)」 状態になっていることを確認
  4. 上部ツールバーの 「キャプチャ」 ボタンをクリック(次フェーズへ進む)

注意: Set-AzVM -Generalized または az vm generalize を実行した後、VM は 二度と起動できません


9. Phase 5: イメージからVMを作成する

9.1 Azure PowerShell

# 変数の設定
$resourceGroup = "myNewVMRG"
$location = "japaneast"
$vmName = "myNewVM"

# リソースグループの作成
New-AzResourceGroup -Name $resourceGroup -Location $location

# イメージ定義から VM を作成(常に最新バージョンを使用)
New-AzVM `
    -ResourceGroupName $resourceGroup `
    -Location $location `
    -Name $vmName `
    -Image $imageDefinition.Id `
    -VirtualNetworkName "myVNet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNSG" `
    -PublicIpAddressName "myPublicIP"

9.2 Azure CLI

az vm create \
    --resource-group myNewVMRG \
    --name myNewVM \
    --image "/subscriptions/<SubID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/Win11-GoldenImage/versions/latest" \
    --admin-username azureuser \
    --location japaneast

9.3 Azure Portal での手順

  1. 「仮想マシン」→「作成」→「Azure 仮想マシン」
  2. 「イメージ」フィールドで「すべてのイメージを表示」をクリック
  3. 「マイイメージ」タブ → 「Azure Compute Gallery」から対象イメージを選択
  4. 通常の VM 作成手順に従って設定・作成

10. トラブルシューティング

10.1 よくあるエラーと対処法

%%{init: { "flowchart": { "useMaxWidth": true } } }%% flowchart TD A[Sysprep が失敗] --> B{エラーの種類} B -->|"Fatal error occurred"| C[Panther ログを確認 C:\\Windows\\System32\\Sysprep\\Panther\\] B -->|OOBE でVMが停止| D[CD/DVD-ROM が無効 レジストリを確認] B -->|Store アプリエラー| E[問題のあるアプリを アンインストール後に再実行] B -->|BitLocker エラー| F[BitLocker を完全復号化後 に再実行] C --> G[ログからエラー原因を特定] G --> H{原因} H -->|アプリの非対応| E H -->|ポリシーの問題| I[グループポリシーを修正] H -->|実行回数超過| J[新規VMからやり直し]

10.2 Sysprep エラーログの確認場所

C:\Windows\System32\Sysprep\Panther\setuperr.log
C:\Windows\System32\Sysprep\Panther\setupact.log

10.3 よくある問題と解決策

症状 原因 対処法
Sysprep 実行時に「致命的なエラー」 アプリの非対応・ポリシー問題 setuperr.log でエラー箇所を特定
VM が OOBE 画面で停止する CD/DVD-ROM が無効 レジストリで cdrom サービスを有効化
Store アプリ関連のエラー アプリが更新途中 問題のパッケージを PowerShell で削除
BitLocker エラー ドライブが暗号化されたまま manage-bde -off C: で復号後に実行
Sysprep が 3 回以上失敗 実行回数超過(古い OS) 新規 VM からイメージ作成をやり直す
日本語化後の Sysprep 失敗 言語パックの不整合 オフラインインストール用言語パックを使用

10.4 Microsoft Store アプリの削除(必要な場合)

# 問題のあるアプリを確認
Get-AppxPackage -AllUsers | Where-Object {$_.NonRemovable -eq $false} | Select Name

# 特定のアプリを削除(例: Microsoft.YourPhone)
Get-AppxPackage -AllUsers -Name "Microsoft.YourPhone" | Remove-AppxPackage -AllUsers

11. 注意事項まとめ

%%{init: { "mindmap": { "useMaxWidth": true } } }%% mindmap root((Azure VM イメージ作成 注意事項)) 一般化の不可逆性 Sysprep実行後は再起動不可 一般化後のVMは削除扱い 事前にスナップショット必須 Sysprep制限 実行回数上限あり 応答ファイル不可 一部アプリ非対応 Azure要件 DVD-ROMの有効化必須 暗号化は無効化が必要 リムーバブルストレージポリシー確認 Gallery推奨 レガシマネージドイメージは非推奨 バージョン管理が可能 複数リージョンへのレプリカ

重要事項チェックリスト

実施前に以下を確認してください:

  • ソース VM の OS ディスクのスナップショットを取得済み
  • BitLocker / Azure Disk Encryption を無効化済み
  • CD/DVD-ROM が有効化されていることを確認
  • すべてのインストール済みアプリが Sysprep 対応済みであることを確認
  • ドメインから離脱済み(ドメイン参加 VM の場合)
  • MDM/Intune から登録解除済み
  • Windows Update を最新の状態に適用済み
  • C:\Windows\Panther ディレクトリを削除済み
  • Sysprep 実行後、VM を再起動しないことを認識している
  • Azure Compute Gallery を作成済み(またはこれから作成する)

参考リンク