Windowsイメージの使用

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

ノート

OCIでは、Windows 10またはWindows 11のイメージまたはライセンスは提供されません。Windowsイメージを使用するには、Microsoftライセンス契約に従う必要があります。Oracle Cloud InfrastructureのMicrosoftライセンスを参照してください。

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

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

警告

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

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

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

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

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

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

重要

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

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

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

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

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

ノート

  • このユーティリティは、Windows 11 (64-bit) ProfessionalまたはEnterprise Editionsのイメージを作成します。評価バージョンはサポートされません。Windows 10イメージを作成するには、手動方法に従ってVMを準備します。
  • このユーティリティでは、Oracle VirtualBoxを使用する必要があります。別の仮想化ソフトウェア・ソリューションを使用している場合は、手動方法に従ってVMを準備します。
  • このユーティリティーは、Windows 11イメージのUEFIファームウェアを自動的に選択します。
セキュア・デスクトップ・イメージ・ビルダーを使用するには:
  1. OCIセキュア・デスクトップ: OCIセキュア・デスクトップ・イメージ・ビルダー(3004854.1)を使用してOCIセキュア・デスクトップで使用するためにWindowsイメージを作成する方法を参照してください。
  2. 手順を確認し、必要なすべてのパッケージをローカルシステムにダウンロードします。
  3. アプリケーション・ファイル(ナレッジ記事に添付)をローカル・システムにダウンロードします。
  4. 管理者としてアプリケーション・ファイルを実行し、すべてのプロンプトに従います。
  5. プロセスが完了すると、ユーティリティによって、作成されたVMDKイメージ・ファイルの場所が表示されます。
  6. Oracle Cloud InfrastructureにVMDKイメージ・ファイルをインポートします。

手動による方法を使用したVMの準備

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

ノート

VirtualBoxを使用したVMの手動準備に関するガイダンスは、OCIセキュア・デスクトップ: OCI準備用のWindows 10/11 (2953657.1)を参照してください。
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スクリプトを実行する必要があります。Windowsデスクトップの起動時にデスクトップボリュームがないを参照してください。

    • 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セキュア・デスクトップ・イメージ・レディネス・チェッカを実行して、VMがセキュア・デスクトップで使用するイメージとして作成されるコンプライアンス要件を満たしているかどうかを確認します。

    このツールは、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 (3010275.1)を参照してください。

  17. 停止したVMをVMDKまたはQCOW2ファイルとしてクローニングします。ステップは、ご使用の仮想環境で提供されているツールのドキュメントを参照してください。
  18. 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. オペレーティング・システムrdaaswを指定して、バケット内のアップロード済オブジェクトからカスタム・イメージを作成します:
    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> \
       --operating-system rdaasw \
       --operating-system-version <Windows10 or Windows11> \
       --launch-mode PARAVIRTUALIZED \
       --source-image-type QCOW2|VMDK

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

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

  3. カスタム・イメージが正しいブート・モードに設定されていることを確認します。
    • Windows 10イメージの場合は、UEFIまたはレガシーBIOSブートタイプを使用します。
    • Windows 11イメージの場合は、UEFIブートタイプのみを使用します。

    次のようにイメージを編集します。

    1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「カスタム・イメージ」をクリックします。
    2. イメージをクリックします。
    3. Edit Image Details」をクリックし、「Firmware」で適切なブートモードを選択します。
    4. 「変更の保存」をクリックします
  4. Windows 11イメージを使用している場合は、保護インスタンス用にイメージを構成する必要があります。

    次のようにイメージを編集します。

    1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「カスタム・イメージ」をクリックします。
    2. イメージをクリックします。
    3. 「イメージ詳細の編集」をクリックし、次を設定します:
      • 「ファームウェア」で、UEFIのみが選択されていることを確認します。
      • 「セキュア・ブート」で、セキュア・ブートの優先ステータスとして「有効」を選択します。
    4. 「変更の保存」をクリックします。
  5. イメージをセキュア・デスクトップで使用できるようにする前に、イメージを使用してコンピュート・インスタンスを手動で作成し、コンソール接続を確立して、イメージをテストすることをお薦めします。インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。
  6. イメージをセキュア・デスクトップで使用できるようにするために必要なタグを追加します。Secure Desktops Tagsを参照してください。