Windows Server のインプレース アップグレードの実行


以前のバージョンの Windows Server を実行している仮想マシン(VM)インスタンスがある場合は、それを新しいバージョンの Windows Server にアップグレードできます。

アップグレード前 アップグレード後
Windows Server 2008 R2(Desktop Experience) Windows Server 2012 R2(Desktop Experience)
Windows Server 2012 R2(Core) Windows Server 2016(Core)
Windows Server 2019(Core)
Windows Server 2012 R2(Desktop Experience) Windows Server 2016(Desktop Experience)
Windows Server 2019(Desktop Experience)
Windows Server 2016(Core) Windows Server 2019(Core)
Windows Server 2022(Core)
Windows Server 2016(Desktop Experience) Windows Server 2019(Desktop Experience)
Windows Server 2022(Desktop Experience)
Windows Server 2019(Core) Windows Server 2022(Core)
Windows Server 2019(Desktop Experience) Windows Server 2022(Desktop Experience)

このガイドでは、Windows Server のインプレース アップグレードを手動で行う方法について説明します。Windows Server 2008 R2 から Windows Server 2012 R2 へのアップグレードの場合、Google Cloud CLI を使用した自動インプレース アップグレードを実行することもできます。

アップグレードには次の制約があります。

  • Microsoft は、Windows Server 2012 R2Windows Server 2008 R2 のサポートを終了しました。これらのバージョンのインプレース アップグレードを実行していて、Windows セットアップ プロセス(setup.exe)に関連する問題が発生した場合、Google が提供できるサポートは限られる場合があります。

  • Windows Server 2008 R2 を Windows Server 2012 R2 以降のバージョンにアップグレードする場合は、まず Windows Server 2012 R2 にアップグレードしてから、Windows Server 2016 以降へのアップグレードをもう 1 回行う必要があります。

目標

このガイドでは、Windows Server のインプレース アップグレードを行う方法について説明します。

  1. インプレース アップグレードの計画
  2. インプレース アップグレードの実施
  3. インプレース アップグレードのトラブルシューティング
  4. インプレース アップグレード後のクリーンアップ

料金

Windows Server のインプレース アップグレードは無料で実施できます。アップグレード中に消費したリソース(以下を含む)に対してのみ課金されます。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。

始める前に

このガイドでは、次の基本的な知識があることを前提としています。

インプレース アップグレードを計画する

以前のバージョンの Windows Server を実行している仮想マシン(VM)インスタンスのインプレース アップグレードを実施することは、インフラストラクチャをモダナイズするだけでなく、Windows Server バージョンのサポート ライフサイクルが終了するというリスクを軽減するうえで実用的です。

考慮すべき代替手段

インプレース アップグレードを使用して Windows Server の新しいバージョンに移行する前に、次の制限事項に注意してください。

  • ダウンタイム: 構成やインストールされているソフトウェアによっては、アップグレードに 1 時間以上かかることがあります。アップグレード中は、次の理由で、VM インスタンスへのアクセスが制限されます。

    • VM インスタンスで実行されているワークロードをユーザーは使用できない
    • リモート デスクトップ プロトコル(RDP)を使用できない
    • アップグレードの進行状況とアップグレードの残り時間を確認する方法が限られている
  • リスク: 既存のインスタンスの構成やインストールされているソフトウェアによっては、次のことが発生する可能性があります。

    • アップグレードに失敗する
    • 一部の構成オプションがオーバーライドされる
    • 互換性の問題により、アップグレードされたインスタンスでワークロードが誤動作する

Windows Server インスタンスで実行されているワークロードに応じて、さまざまな方法でダウンタイムやリスクを軽減できます。

ワークロード アプローチ
VM インスタンスが、次のようなレプリケーションをサポートするワークロードを実行している。
  • Active Directory ドメイン サービス
  • DNS
  • SQL Server
新しいバージョンの Windows Server を実行している新しい VM インスタンスを設定してから、レプリケーションを使用して既存の VM インスタンスから新しい VM インスタンスにワークロードを移行することを検討してください。
1 つの VM インスタンスで多数のワークロードを実行している 各 VM インスタンスが 1 つのワークロードのみを実行するように、これらのワークロードを別個の VM インスタンスに移行することを検討してください。すべてのワークロードを移行できない場合でも、1 つの VM インスタンスで実行されるワークロードの数を減らすことで、インプレース アップグレード中のリスクを軽減できます。

プロダクトキー

Windows Server のプロダクトキーは、特定のバージョンに対してのみ有効です。新しいバージョンの Windows Server にアップグレードする場合は、新しいプロダクトキーを指定する必要があります。主なシナリオは次の 2 つです。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、アップグレードする Windows Server のバージョンに対応する事前定義済みの KMS クライアント セットアップ キーを使用する必要があります。このアップグレードに追加料金はかかりません。

  • 既存のライセンスを使用する VM インスタンスをアップグレードする: BYOL では、アップグレードを行うために、ライセンス ベンダーからプロダクトキーを取得する必要があります。Microsoft のドキュメントを確認して、アップグレードできるエディションと、ライセンス変更の資格があるかどうかを確認してください。

インストール メディア

アップグレードを行うには、インストール メディアが必要です。主なシナリオは次の 2 つです。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するボリューム ライセンス インストール メディアを使用できます。このインストール メディアにアクセスする手順は、下記をご覧ください

  • インポートされたディスクまたはイメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するインストール メディアを使用できません。代わりに、インポートされたディスクまたはイメージに Windows Server をインストールした際と同じ種類のメディアをインストール メディアとして使用します。

その他の前提条件

アップグレードを開始する前に、アップグレードする Windows Server のバージョンに関する前提条件と制限事項について、Microsoft のドキュメントを確認してください。

2012 R2

2016

2019

2022

インプレース アップグレードを行う

次のセクションでは、VM インスタンスをアップグレードするプロセスについて説明します。

スナップショットを作成する

アップグレードを開始する前に、なんらかのエラーが発生した場合に安全な状態に戻すことができるように、VM インスタンスのスナップショットを作成することをおすすめします。

Windows Server の構成を準備する

Windows Server VM インスタンスの構成を確認します。

  1. RDP クライアントを使用して VM インスタンスに接続します。

  2. Windows Update を使用して Windows Server が最新であることを確認します。

  3. アップグレードを妨げる可能性がある、または Windows Server のバージョンと互換性のないウイルス対策、スパイウェア対策、その他のエージェントを無効またはアンインストールします。

インストール メディアをアタッチする

アップグレードを行う前に、必要なインストール メディアを VM インスタンスにアタッチします。使用するのに適切なメディアは、シナリオによって異なります。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するボリューム ライセンス インストール メディアのみをアタッチします。このメディアには、アップグレードに必要なスクリプトと新しいバージョンの Windows Server 用のファイルが含まれています。
  • インポートされたディスクまたはイメージに基づく VM インスタンスをアップグレードする: このシナリオでも、Google が提供するボリューム ライセンス インストール メディアをアタッチして必要なスクリプトにアクセスできるようにする必要があります。

    また、インポートされたディスクまたはイメージに Windows Server をインストールした際と同じ種類のメディアをカスタム インストール メディアとしてアタッチする必要があります。

Google が提供するボリューム ライセンス インストール メディアを接続する手順は次のとおりです。

  1. Google Cloud コンソールで、[Cloud Shell をアクティブにする] Cloud Shell をアクティブにします。 ボタンをクリックして Cloud Shell を開きます。

    Google Cloud コンソールに移動

  2. デフォルトのプロジェクト ID を設定します。PROJECT_ID は、Compute Engine プロジェクトの名前に置き換えます。

    gcloud config set project PROJECT_ID
    
  3. インストール メディアに基づいてディスクを作成します。ZONE は、VM が配置されているゾーンの名前に置き換えます。

    gcloud compute disks create win-installers --image-family=windows-install-media --image-project=compute-image-tools --zone=ZONE
    

    このコマンドは、win-installers というディスクをプロジェクトに追加します。このディスクは VM インスタンスにはアタッチされません。

  4. 必要に応じてディスクを複数の VM にアタッチできるように、読み取り専用(ro)モードを使用してディスクを VM にアタッチします。

    gcloud compute instances attach-disk VM_NAME --disk=win-installers --mode=ro --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: アップグレードする VM インスタンスの名前
    • ZONE: VM が配置されているゾーンの名前

    同じゾーン内の複数の VM の並列アップグレードに同じディスクを使用できますが、別のゾーンの VM をアップグレードする場合は、そのゾーンに別のディスクを作成する必要があります。

インポートされたディスクまたはイメージに基づく VM をアップグレードする場合は、以下のとおりにカスタム インストール メディアを追加ディスクとしてアタッチします。

  1. ISO ファイルからイメージを作成するの手順に沿って、カスタム インストール メディアとして使用する ISO イメージからディスクを作成します。

  2. 必要に応じてディスクを複数の VM にアタッチできるように、読み取り専用(ro)モードを使用してディスクを VM にアタッチします。

    gcloud compute instances attach-disk VM_NAME --disk=CUSTOM_MEDIA_DISK --mode=ro --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: アップグレードする VM の名前
    • CUSTOM_MEDIA_DISK: カスタム インストール メディアを含むディスクの名前
    • ZONE: VM が配置されているゾーンの名前

アップグレードを開始する

デフォルトでは、Windows セットアップにより、アップグレード中のさまざまな時点で入力を求めるプロンプトが表示されます。アップグレード中は RDP を使用して VM インスタンスに接続できないことから入力を提供できないため、無人モードでアップグレードを実行します。

  1. RDP クライアントを使用して VM に接続します。詳細については、インスタンスへの接続をご覧ください。

  2. 管理者特権でのコマンド プロンプトを開きます。

    • Server Core を使用している場合は、管理者特権でのコマンド プロンプトがログイン後に自動的に開きます。
    • Windows Server with full Desktop Experience を使用している場合は、[スタート] ボタンを右クリックして [コマンドプロンプト(管理者)] を選択します。
  3. 作業ディレクトリをインストール メディアに変更します。どの作業ディレクトリを使用すべきかは、アップグレード後の Windows Server のバージョンによって異なります。

    2012 R2

    cd /d d:\*2012*
    

    2016

    cd /d d:\*2016*
    

    2019

    cd /d d:\*2019*
    

    2022

    cd /d d:\*2022*
    
  4. Windows のアップグレードを開始します。アップグレードを開始するために必要な手順は、アップグレード後の Windows Server のバージョンと、VM が公開オペレーティング システム イメージとインポートされたディスク / イメージのどちらに基づくかによって異なります。

    2012 R2

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • インストール メディアから Windows セットアップ(setup.exe)を起動し、無人モードでアップグレードを実行します。
    • インストールする Windows Server 2012 R2 の正しいエディションを選択します。
    • 新しい Windows Server バージョンの Generic Volume License Key(GVLK)を指定します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    

    2012 R2(BYOL)

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • インストール メディアから Windows セットアップ(setup.exe)を起動し、無人モードでアップグレードを実行します。
    • インストールする Windows Server 2012 R2 の正しいエディションを選択します。
    • 新しい Windows Server バージョンのユーザー指定ライセンスキーを指定します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1 -SetupExePath SETUP_PATH -ProductKey PRODUCT_KEY
    

    次のように置き換えます。

    • SETUP_PATH: カスタム インストール メディア上の setup.exe へのパス
    • PRODUCT_KEY: Windows Server 2016 の有効なプロダクトキー

    -ProductKey パラメータは、既存のライセンス(BYOL)を使用する VM インスタンスをアップグレードする場合にのみ必要です。

    2016 以降

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • インストール メディアから Windows セットアップ(setup.exe)を起動し、サイレント モードでアップグレードを実行します。
    • 新しいバージョンの Windows Server のプロダクトキーを指定します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    

    Windows セットアップで [イメージの選択] 画面が表示される場合があります。この画面が表示されたら、現在の構成と一致する構成を選択します。

    • 現在 Server Core を使用している場合は、Datacenter を選択します。
    • 現在 Windows Server with full desktop experience を使用している場合は、Datacenter(Desktop Experience)を選択します。

    • [次へ] をクリックしてアップグレードを開始します。

    セットアップが初期化されるまで数分かかることがあります。

    2016 以降(インポート済み)

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • インストール メディアから Windows セットアップ(setup.exe)を起動し、サイレント モードでアップグレードを実行します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1 -SetupExePath SETUP-PATH -ProductKey PRODUCT-KEY
    

    次のように置き換えます。

    • SETUP_PATH: カスタム インストール メディア上の setup.exe へのパス
    • PRODUCT_KEY: アップグレード対象の Windows Server バージョンの有効なプロダクトキー。たとえば、Windows Server 2016 Datacenter から Windows Server 2019 Datacenter にアップグレードする場合は、有効な Windows Server 2019 Datacenter キーを指定します。

    -ProductKey パラメータは、既存のライセンス(BYOL)を使用する VM インスタンスをアップグレードする場合にのみ必要です。

    Windows セットアップで [イメージの選択] 画面が表示される場合があります。この画面が表示されたら、現在の構成と一致する構成を選択します。

    • 現在 Server Core を使用している場合は、Windows Server Datacenter を選択します。
    • 現在 Windows Server with full desktop experience を使用している場合は、Windows Server Datacenter(Desktop Experience) を選択します。

    • [次へ] をクリックしてアップグレードを開始します。

    セットアップが初期化されるまで数分かかることがあります。

    アップグレード プロセスでは、次の警告が表示されることがあります。その場合は無視してかまいません。

    [package name] or a newer version is already installed on the system
    

    netkvmドライバのインストール中に、システムが一時的に応答しなくなることがあります。この場合、システムの応答が 5 分以上ない場合を除き、RDP 接続を閉じたり、VM インスタンスを停止したりしないでください。RDP 接続が失われた場合は、約 5 分待ってから VM インスタンスに再接続してください。

    セットアップ ウィザードにより、最初にシステムの再起動を要求されることがあります。この場合、VM インスタンスを再起動し、同じコマンドを使用して Windows セットアップを再度実行します。

    約 5 分後、マシンが再起動し、RDP が切断されます。

アップグレード プロセスを確認する

VM インスタンスのマシンタイプと Windows Server の構成によっては、アップグレードが完了するまでに 10 分から 60 分かかる場合があります。その間、シリアルポート出力でステータスを確認できます。

  1. Cloud Shell で、次のコマンドを実行して起動プロセスを確認します。

    gcloud compute instances tail-serial-port-output VM_NAME --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: VM インスタンスの名前
    • ZONE: VM インスタンスが配置されているゾーンの名前
  2. マシンが 4 回再起動するまで待ちます。VM インスタンスの構成によっては、これらの再起動が発生するまでに 30 分以上かかることがあります。次のような出力で再起動を確認できます。

    SeaBIOS (version 1.8.2-20190620_103534-google)
    Total RAM Size = 0x00000001e0000000 = 7680 MiB
    CPUs found: 2     Max CPUs supported: 2
    
  3. 4 回目の再起動後、GCEMetadataScripts: Finished running startup scripts または No startup scripts to run の出力が表示されるまで待ちます。

アップグレード後の手順を実施する

VM インスタンスに接続して、アップグレードが正常に完了したことを確認できます。

  1. RDP クライアントを使用して VM インスタンスに接続します。詳細については、インスタンスへの接続をご覧ください。

  2. ローカル管理者権限を持つユーザー アカウントを使用してログインします。

  3. 管理者特権でのコマンド プロンプトを開きます。

    • Server Core を使用している場合は、管理者特権でのコマンド プロンプトがログイン後に自動的に開きます。
    • Windows Server with full Desktop Experience を使用している場合は、[スタート] ボタンを右クリックして [コマンドプロンプト(管理者)] を選択します。
  4. 次のコマンドを実行して、Windows Server のバージョンをクエリします。

    Windows Server Core

    ver
    

    Windows Server(Desktop Experience)

    winver
    

    バージョンが、想定した Windows Server のバージョンと一致することを確認します。

  5. 作業ディレクトリをインストール メディアに変更します。どの作業ディレクトリを使用すべきかは、アップグレード後の Windows Server のバージョンによって異なります。

    2012 R2

    cd /d d:\*2012*
    

    2016

    cd /d d:\*2016*
    

    2019

    cd /d d:\*2019*
    

    2022

    cd /d d:\*2022*
    
  6. upgrade.ps1 を再度実行して、アップグレード中に失われた可能性がある特定の Compute Engine の設定を再適用します。

    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    
  7. VM インスタンスを再起動して、すべての変更を有効にします。再起動が完了するまでに 1~2 分かかることがあります。その後、VM インスタンスに再度接続できます。

インストール ディスクを切断する

VM インスタンスからインストール ディスクを切断できます。

  • Cloud Shell で、VM インスタンスからインストール ディスクの切断します。VM_NAME は VM インスタンスの名前に置き換えます。

    gcloud compute instances detach-disk VM_NAME --disk=win-installers
    

更新をインストールしてアクセスを復元する

アップグレードが完了したら、Windows Update を実行して、セキュリティ更新プログラムをダウンロードしてインストールします。セキュリティ アップデートをインストールするには、これらの手順を実施します。

  1. RDP クライアントを使用してマシンに接続します。詳細については、インスタンスへの接続をご覧ください。

  2. Windows Update を使用して最新の Windows の更新プログラムをインストールします。このプロセス中に、VM インスタンスを複数回再起動する必要がある場合があります。

  3. アップグレード前に無効にしたエージェント、ウイルス対策ソフトウェア、マルウェア対策ソフトウェアを再度有効にします。

インプレース アップグレードのトラブルシューティング

Windows セットアップの実行中は、RDP を使用して VM インスタンスに接続できません。アップグレードが失敗した、または進行していないと思われる場合は、次の方法を順番に使用して状況を診断します。

シリアルポート出力を確認する

アップグレード プロセスの進行状況を確認するには、VM インスタンスのシリアルポート出力を表示します。

  • シリアルポート 1 は起動ステータスを収集します。
  • シリアルポート 3 は、Windows セットアップのログ出力を収集します。

アップグレード中は、再起動が 4 回発生します。最初の再起動から 30 分以上経過しても進行しない場合、アップグレードは失敗した可能性があります。

CPU と I/O の指標を確認する

Windows Server のアップグレードの実行は、CPU とディスク I/O に負荷がかかるオペレーションです。CPU と I/O の指標を確認すると、セットアップが進行中かどうかがわかります。

Google Cloud コンソールで CPU と I/O の指標を表示します。

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. アップグレードするインスタンスをクリックします。

  3. [モニタリング] タブをクリックします。

緊急管理サービス コンソールに接続する

Windows セットアップの実行中と実行後の両方で、緊急管理サービス(EMS)コンソールに接続できます。EMS コンソールを使用して、Windows セットアップのログファイルイベントログを確認し、アップグレードが進行中であるか、発生した可能性のあるエラーに関する情報を確認します。

WinRM を使用してリモートで接続する

RDP または EMS を使用した接続が失敗した場合は、WinRM を使用してリモート PowerShell セッションを確立できます。

  1. 同じ VPC 内の別の Windows Server インスタンスに接続します。

  2. PowerShell を開きます。

  3. リモート PowerShell セッションを確立します。VM_NAME は、アップグレードするインスタンスの名前に置き換えます。

    Enter-PSSession -ComputerName VM_NAME -UseSSL -SessionOption (New-PsSessionOption -SkipCACheck) -Credential (Get-Credential)
    
  4. 認証情報の入力を求められたら、管理者ユーザー アカウントのユーザー名とパスワードを入力します。

  5. リモート PowerShell セッションを使用して、Windows セットアップのログファイルイベントログを確認します。

ログファイルをオフラインで分析する

Windows リモート管理(WinRM)を使用してインスタンスに接続できない場合は、アップグレードをキャンセルして、別の VM インスタンスからログファイルを分析できます。その手順は次のとおりです。

  1. VM インスタンスを停止します。

    Windows Server が応答しない場合は、数分かかることがあります。

  2. インスタンスからブートディスクを切断します。

  3. 新しい一時的な Windows Server インスタンスを作成し、元のインスタンスのブートディスクを追加ディスクとして接続します。

  4. 一時的な Windows Server インスタンスを使用して、アップグレードしようとしたインスタンスのセットアップ ログファイルとイベント ログファイルを分析します。

  5. 分析が完了したら、ディスクを一時的なインスタンスから切断し、元の VM インスタンスにブートディスクとして再接続します。

RDP のトラブルシューティング

RDP のトラブルシューティングについては、RDP のトラブルシューティングをご覧ください。

Windows Server インスタンスのトラブルシューティング

Windows Server インスタンスのトラブルシューティングについては、Windows インスタンスのヒントとトラブルシューティングをご覧ください。

クリーンアップ

このプロセスの完了後に請求が発生しないようにするには、インストール ディスクを削除します。

インストール ディスクを削除する

インストール ディスクは、Google が提供するイメージに基づいていつでも作成できます。同じゾーンでさらに VM インスタンスをアップグレードする予定がない場合は、インストール ディスクを削除します。

  • Cloud Shell で、前に作成した win-installers ディスクを削除します。

    gcloud compute disks delete win-installers
    

次のステップ