Windowsイメージの使用

Windowsを使用してデスクトッププールを作成するには、独自のライセンスを持ち込む必要があります。

ノート

  • Oracleには、セキュア・デスクトップで使用するために事前構成された汎用Windowsベース・イメージが用意されています。これらのイメージのいずれかをリクエストするサービス・リクエストを開きます。詳細は、サポートされているイメージを参照してください。
  • OCIは、Windows 10またはWindows 11のイメージまたはライセンスを提供していません。Windowsイメージを使用するには、Microsoftライセンス契約を遵守する必要があります。Oracle Cloud InfrastructureのMicrosoftライセンスを参照してください。

カスタムWindowsイメージのインポート

コンピュート・サービスでは、Oracle Cloud Infrastructureの外部で作成されたWindowsイメージをインポートすることができます。たとえば、オンプレミスの物理マシンまたは仮想マシン(VM)、またはOracle Cloud Infrastructure Classicで実行されている仮想マシンで実行されているイメージをインポートできます。その後、インポートしたイメージをコンピュート仮想マシンで起動できます。

注意

  • カスタム・オペレーティング・システムからインスタンスを起動する際のOracle Cloud Infrastructureからのサポートでは、そのインスタンスがオペレーティング・システム・ベンダーでもサポートされるかどうかは保証されていません。
  • Windows 10/11では、独自のライセンスを持ち込む(BYOL)必要があります。これを有効にするには、カスタム・イメージでWindowsオペレーティング・システムを指定する必要があります。
  • デフォルトでは、WindowsデスクトップはDedicated Virtual Machine Hosts (DVH)にプロビジョニングされます。使用許諾契約書でクラウド環境での Windows 10/11デスクトップの仮想化が許可されている場合は、デスクトッププールの作成に使用されるイメージに適切なタグを追加することで、DVHプロビジョニングを無効にできます。Secure Desktops Tagsを参照してください。

Windowsソース・イメージの要件

カスタム・イメージは、次の要件を満たす必要があります:

  • 最大イメージ・サイズは400 GBです。
  • イメージは、サポートされているブートタイプに対して設定する必要があります。
    • Windows 10イメージの場合は、UEFIまたはレガシーBIOSブートタイプを使用します。
    • Windows 11イメージの場合は、UEFIブートタイプのみを使用します。
  • ブート・プロセスで、起動が正常に行われるためには、追加のデータ・ボリュームが存在していてはなりません。
  • ディスク・イメージを暗号化できません。
  • ディスク・イメージはVMDKまたはQCOW2ファイルであることが必要です。
    • イメージ・ファイルは、スナップショットの作成ではなくソース・ボリュームをクローニングして作成します。
    • VMDKファイルは、単一拡張可能タイプ(monolithicSparse)かストリーム最適化タイプ(streamOptimized)のいずれかであることが必要です。どちらも1つのVMDKファイルで構成されます。その他すべてのVMDK形式(複数のファイルを使用するもの、ボリュームを分割するもの、スナップショットを含むものなど)はサポートされません。
  • ネットワーク・インタフェースは、DHCPを使ってネットワーク設定を検出する必要があります。カスタム・イメージをインポートするとき、既存のネットワーク・インタフェースが再作成されることはありません。既存のすべてのネットワーク・インタフェースは、インポート・プロセスの完了後に1つのNICで置換されます。インポートしたインスタンスの起動後に、追加のVNICをアタッチできます。
  • ネットワーク構成は、ネットワークインタフェースのMACアドレスをハードコードしてはいけません。
  • Windows 11イメージの場合、仮想化プラットフォームでサポートされていない場合(たとえば、VirtualBox)、イメージの作成時にSecure BootとTrusted Platform Module (TPM)の両方をWindowsで無効にする必要があります。インストールの前に、レジストリ・エディタを使用して新しいレジストリ・キーを追加します。
    • HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck DWORD (32ビット)値1。
    • HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassSecureBootCheck DWORD (32ビット)値1。
    • HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassTPMCheck DWORD (32ビット)値1。

インポートのためのWindows VMの準備

カスタムWindowsイメージをインポートする前に、イメージから起動されたインスタンスが正しく起動でき、ネットワーク接続が適切に機能するように、イメージを準備する必要があります。

この項で説明するタスクは、実行中のソース・システムで実行できます。ライブ・ソース・システムの変更に懸念がある場合は、イメージをそのままエクスポートし、Oracle Cloud Infrastructureにインポートしてから、カスタム・イメージに基づいてインスタンスを起動できます。その後、VNCコンソールを使用してインスタンスに接続し、準備ステップを実行できます。

重要

Windowsがインストールされているシステム・ドライブはOracle Cloud Infrastructureにインポートされます。このドライブ上のすべてのパーティションは、インポートされるイメージと同様に処理されます。他のドライブはインポートされません。インポート後にインスタンスで再作成する必要があります。その後、システム・ドライブ以外のドライブ上のデータを手動で移動する必要があります。

インポート用に Windows VMを準備するには、次のいずれかのオプションを使用します。

セキュア・デスクトップ・イメージ・ビルダーを使用したVMの準備

セキュア・デスクトップ・イメージ・ビルダーを使用して、セキュア・デスクトップで使用するイメージとしてVMを準備します。

このユーティリティは、要件を検証し、無人インストールを実行し、Oracle Cloud Infrastructureにアップロードできるイメージ(VMDK形式)を構成します。

ノート

  • このユーティリティーは、Windows 10または11 (64ビット) EnterpriseエディションまたはProfessionalエディションのイメージを作成します。評価バージョンはサポートされません。
  • このユーティリティには、Oracle VirtualBoxバージョン7.0.18を使用する必要があります。別の仮想化ソフトウェア・ソリューションを使用する場合は、手動の方法に従ってVMを準備します。
  • このユーティリティーは、Windows 11イメージのUEFIファームウェアを自動的に選択します。

Secure Desktops Image Builderを使用するには:

  1. 「OCI Secure Desktops: OCI Secure Desktops Image Builder (KB91837)を使用したOCI Secure Desktopsで使用するWindowsイメージの作成方法」を参照してください。
  2. 手順を確認し、必要なすべてのパッケージをローカルシステムにダウンロードします。
  3. アプリケーション・ファイル(ナレッジ記事に添付)をローカル・システムにダウンロードします。
  4. アプリケーション・ファイルを管理者として実行し、すべてのプロンプトに従います。
  5. プロセスが完了すると、ユーティリティによって、作成されたVMDKイメージ・ファイルの場所が表示されます。

次の手順:

Oracle Cloud InfrastructureにVMDKイメージ・ファイルをインポートします。

手動方式を使用したVMの準備

VMをセキュア・デスクトップで使用するイメージとして準備するには、手動の方法を使用します。

ノート

VirtualBoxを使用したVMの手動準備に関するガイダンスは、OCI Secure Desktops: Windows 10/11 for OCI preparation (KB60923)を参照してください。

Windows VMを手動で準備するには:

  1. 組織のセキュリティ・ガイドラインに従って、Windowsシステムが保護されていることを確認します。これには、次のタスクが含まれますが、これらに限定されるわけではありません:
    • オペレーティング・システムおよびインストールされているアプリケーションに対して最新のセキュリティ更新をインストールします。
    • ファイアウォールを有効にし、必要なルールのみを有効にするように構成します。
    • 不要な特権アカウントを無効にします。
    • すべてのアカウントで強力なパスワードを使用します。
  2. ライセンスアクティベーションサーバーを設定します。
    slmgr.vbs /skms <KMS_server_name_or_IP>:1688
  3. ルート・ボリュームのバックアップを作成します。
  4. VMにリモートでアタッチされたストレージ(NFSやブロック・ボリュームなど)がある場合は、このストレージに依存するすべてのサービスが手動で起動されるように構成してください。リモートでアタッチされた記憶域は、インポートされたインスタンスがOracle Cloud Infrastructureで初めてブートするときには使用できません。
  5. すべてのネットワーク・インタフェースでDHCPが使用され、MACアドレスとIPアドレスはハードコードされないことを確認します。システムのネットワーク構成を実行するステップは、システムのドキュメントを参照してください。
  6. Oracle Cloud Agentをインストールします。Oracle Cloud Agentのインストール・ファイルを取得するには、Oracleサポートに連絡してください。
  7. Oracle VirtIO Drivers for Microsoft Windowsをダウンロードします
  8. ドライバをインストール(「カスタム」インストール・タイプを選択)してから、インスタンスを再起動します。
  9. LockScreenを無効にします。
    try {
      Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -ErrorAction Stop 
    } catch {
     New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Force
    } try {
     New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Value 1 -PropertyType Dword -ErrorAction Stop
     Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "NoLockScreen" -Value 1  -ErrorAction Stop
    } catch {
     echo "done"
    }
  10. RDPを無効にする:
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 1
  11. タイム・サーバーをOCIに設定します。
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'Type' -Value NTP -Type String
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'AnnounceFlags' -Value 5 -Type DWord
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer' -Name 'Enabled' -Value 1 -Type DWord
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'NtpServer' -Value '169.254.169.254,0x9' -Type String
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient' -Name 'SpecialPollInterval' -Value 900 -Type DWord
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxPosPhaseCorrection' -Value 1800 -Type DWord
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxNegPhaseCorrection' -Value 1800 -Type DWord
  12. オプションで、ユーザーがアクセスできるようにする追加のソフトウェアをインストールします。
  13. Cloudbase-Initをインストールします。インストール中:
    • ユーザー名: Administrator
    • Cloudbase-InitサービスをLocalSystemとして実行するためのオプションは選択しないでください

      このオプションを使用すると、クラウドの初期化フェーズ中に特定のOS機能を使用できなくなり、デスクトップの起動時にデスクトップボリュームが失われる可能性があるため、attach_volume.ps1スクリプトを実行して問題を解決する必要があります。Missing desktop volume when open Windows desktopを参照してください。

    • Cloudbase-Init内でSysprepを実行するオプションを選択してシステムをシャットダウンしないでください

    インストールが完了したら、C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.confを編集してretry_count=100を追加します。

  14. PowerShellスクリプトC:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\enable_rdp.ps1を作成して、Cloudbase-Initの実行時にOracle Cloud InfrastructureでRDPを有効にします。
    #ps1_sysnative 
    # 
    # location C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\enable_rdp.ps1 
    # 
    $script_path=$Env:ProgramData+"\Oracle\OCI\Desktops"
    $log="$script_path\enable_rdp.txt" 
    Start-Transcript -Path $log -Append 
    Write-Host "Enabling rdp port" | Out-Default 
    Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -name fDenyTSConnections | Out-Default 
    date | Out-Default 
    Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -name fDenyTSConnections -Value 0 | Out-Default 
    Enable-NetFirewallRule -DisplayGroup "Remote Desktop" | Out-Default 
    # 
    Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -name fDenyTSConnections | Out-Default 
  15. インポートしたイメージを複数のVMインスタンスで起動する予定の場合は、ブート・ディスクの汎用イメージを作成してください。汎用イメージは、一意識別子などコンピュータ固有の情報を取り除いたものです。汎用イメージからインスタンスを作成するときに、一意識別子が再生成されます。これにより、同じイメージから作成される2つのインスタンスが同じ識別子で競合することを回避できます。
  16. OCI Secure Desktops Image Readiness Checkerを実行して、VMがSecure Desktopsで使用するイメージとして作成されるコンプライアンス要件を満たしているかどうかを確認します。

    このツールは、Network Time Protocol (NTP)、Remote Desktop Protocol (RDP)、およびSecure Desktops Windowsイメージに必要な画面設定をロックできます。

    このユーティリティの詳細およびアプリケーション・ファイルのダウンロードについては、OCI Secure Desktops: How To Confirm Compliance Using the OCI Secure Desktops Image Readiness Checker (KB100881)を参照してください

  17. 停止したVMをVMDKまたはQCOW2ファイルとしてクローニングします。手順については、仮想化環境に付属しているツールのドキュメントを参照してください。

次の手順:

VMDKまたはQCOW2イメージ・ファイルをOracle Cloud Infrastructureにインポートします

WindowsベースのVMのインポート

インポートのためにWindowsイメージを準備したら、イメージ・ファイルをアップロードしてイメージにインポートします。

  1. イメージ・ファイルをオブジェクト・ストレージ・バケットへアップロードします。コマンドライン・インタフェース(CLI)を使用して、次のコマンドを発行します。
    oci --profile <profile in $HOME/.oci/config> --region <region> os object put\
        -bn <name of bucket> \
        -ns <name space> \
        --name <The name of the object in the bucket> \
        --file <path to the QCOW2 or VMDK image>
  2. バケット内のアップロード済オブジェクトからカスタム・イメージを作成します:
    oci --profile <profile in $HOME/.oci/config> --region <region> \
       compute image import from-object \
       -ns <name space> \
       -bn <name of bucket> \
       --name <The name of the object in the bucket> \
       --compartment-id <The OCID of the compartment you want the custom image to be created in> \
       --display-name <A user-friendly name for the new custom image> \
       --launch-mode PARAVIRTUALIZED \
       --source-image-type QCOW2|VMDK

    インポートされたイメージがコンパートメントの「カスタム・イメージ」リストに「Importing」というステータスで表示されます。インポートが正常に完了すると、ステータスは「使用可能」に変更されます。

    ステータスが変わらなかった場合、または「カスタム・イメージ」リストにエントリが表示されない場合、インポートは失敗します。オブジェクト・ストレージ・オブジェクトへの読取りアクセス権があることと、サポートされるイメージがオブジェクトに含まれていることを確認してください。

  3. カスタム・イメージを更新して、Windowsオペレーティング・システムおよびWindows10またはWindows11オペレーティング・システムのバージョンを指定します。
    oci --profile <profile in $HOME/.oci/config> --region <region> \
       compute image update --image-id <custom image ocid> \
       --operating-system Windows \
       --operating-system-version <Windows10 or Windows11>
  4. カスタム・イメージが正しいブート・モードに設定されていることを確認します。
    • Windows 10イメージの場合は、UEFIまたはレガシーBIOSブートタイプを使用します。
    • Windows 11イメージの場合は、UEFIブートタイプのみを使用します。

    ブートモードを調整するには:

    1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「カスタム・イメージ」をクリックします。
    2. 関心のあるカスタム・イメージをクリックします。
    3. 「アクション」をクリックして「イメージ機能の編集」を選択します。「Firmware」で、適切なブートモードを選択します。
    4. 「変更の保存」をクリックします。
  5. (Windows 11)保護インスタンスのカスタム・イメージを構成します。

    Windows 11には、保護インスタンスのサポートが含まれています。保護インスタンスは、セキュア・ブート、測定ブートおよびTrusted Platform Module (TPM)を組み合せて使用し、ファームウェア・セキュリティを強化して、悪意のあるブート・レベル・ソフトウェアから保護します。

    • セキュア・ブートは、認可されていないブート・ローダーやオペレーティング・システムのブートを阻止するUnified Extensible Firmware Interface (UEFI)の機能です。
    • 測定ブートは、ブートローダー、ドライバ、オペレーティング・システムなどのブート・コンポーネントの測定を格納することで、ブート・セキュリティを強化します。
    • Trusted Platform Module (TPM)は、ブート測定を格納するために測定ブートによって使用される特殊なセキュリティーヒントです。測定されたブートを仮想マシンに対して有効にすると、TPMが自動的に有効になります。

    保護インスタンスを有効にするには:

    1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「カスタム・イメージ」をクリックします。
    2. 関心のあるカスタム・イメージをクリックします。
    3. 「アクション」をクリックして「イメージ機能の編集」を選択します。次の項目を設定します。
      • ファームウェアの場合は、UEFI-64のみが選択されていることを確認します。
      • セキュア・ブートが有効になっていることを確認します。
    4. 「変更の保存」をクリックします。

    その結果、このイメージを使用してデスクトッププールを作成すると、Secure Desktopsはこのイメージ設定を検出し、保護デスクトップインスタンスを自動的に有効にします。

  6. セキュア・デスクトップでイメージを使用できるようにする前に、イメージを使用してコンピュート・インスタンスを手動で作成し、コンソール接続を確立して、イメージをテストすることをお薦めします。インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。
  7. イメージをセキュア・デスクトップで使用できるようにするには、必要なイメージ・タグを追加します。

    oci:desktops:is_desktop_image=true

    Secure Desktops Tagsを参照してください。