App Layering

プラットフォームレイヤーの作成

プラットフォームレイヤーには、レイヤーとレイヤー化されたイメージが環境内で完璧に動作するために必要なプラットフォームソフトウェアと設定が含まれます。

プラットフォームレイヤーは、次の2つの目的で作成できます。

  • レイヤーの作成とパッケージ化: レイヤーを作成するハイパーバイザーとは異なるハイパーバイザーからOSをインポートした場合、このタイプのプラットフォームレイヤーを使用してアプリレイヤーを作成します。

  • レイヤー化されたイメージの公開: このタイプのプラットフォームレイヤーをイメージテンプレートで使用すると、公開されたレイヤー化されたイメージが環境内で完璧に動作します。

レイヤーのパッケージ化またはレイヤー化されたイメージの公開のためのプラットフォームレイヤー

プラットフォームレイヤーが必要かどうかを判断するには、次の表を使用してください。この表は、プラットフォームレイヤーが必要な場合に、そこにインストールするソフトウェアも示します。

  レイヤーのパッケージ化 レイヤー化されたイメージの公開
プラットフォームレイヤーは必要か OSイメージが別のハイパーバイザーで作成された場合に必要です。アプリがエージェントまたはSSOソフトウェアを必要とする場合、そのレイヤーの作成と更新のために、専用のプラットフォームレイヤーを作成できます。 プロビジョニングサーバーに公開し、接続ブローカーを使用する場合に必要です。
インストールするもの OSが別のハイパーバイザーで作成された場合のハイパーバイザーツール。アプリレイヤーの作成に必要であれば、SSOまたはエージェントソフトウェア。 プロビジョニングおよび接続ブローカーのソフトウェアと設定。OSが作成されたハイパーバイザーとは異なるハイパーバイザーに公開する場合は、ハイパーバイザーツールを含めます。
選択する値 ハイパーバイザーを選択します。 ハイパーバイザー、プロビジョニングソフトウェア、および接続ブローカーを選択します。
必要なもの ハイパーバイザーのインストーラー プロビジョニングソフトウェアおよび接続ブローカーのインストーラー。

プラットフォームレイヤーに含めるその他のソフトウェアと設定

上記のプラットフォームソフトウェアに加えて、プラットフォームレイヤーには次の設定とソフトウェアを含める必要があります。

  • ドメイン参加
  • NVIDIAドライバー(該当する場合)
  • Citrix Receiver™(シングルサインオンコンポーネント用)
  • Citrix Workspace™ Environment Management (WEM) エージェント

    注:

    Citrix WEMによって生成されたRSAキーは、展開されたイメージでWEMを使用する際に問題を引き起こします。レイヤーの最終処理時にRSAキーが存在する場合、次のパスで始まるRSAキーファイルを削除する必要があることを示すメッセージが表示されます: C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\fb8cc9e38d3e60ab60c17cdfd6dd6d99_

  • Citrix® uberAgent®
  • ログオンスタックに影響を与えるソフトウェア(例: Imprivata)
  • Hyper-V上のCitrix Provisioning™: PXEブートにはレガシーネットワークアダプターが必要です。
  • Microsoft System Center Configuration Manager (SCCM) ソフトウェア(使用している場合)

プラットフォームレイヤーの作成プロセス

プラットフォームレイヤーを作成する手順は次のとおりです。

  1. 管理コンソールでプラットフォームレイヤーを作成します。
  2. パッケージングマシンに接続してログオンします。
  3. プロビジョニングおよび接続ブローカーソフトウェアをインストールします。
  4. アプライアンスは、レイヤーを作成してイメージを公開するハイパーバイザーとは異なるハイパーバイザーで実行されていますか。はいの場合、ハイパーバイザーツールもインストールすることをお勧めします。
  5. レイヤーを検証し、パッケージングマシンをシャットダウンします。
    • コネクター構成で Offload Compositing を使用するように設定されている場合、レイヤーは自動的に最終処理されます。
    • コネクター構成が Offload Compositing に設定されていない場合、この記事の詳細な手順で説明されているように、レイヤーを手動で最終処理します

プラットフォームレイヤーの更新時期

プラットフォームレイヤーは最も優先度の高いレイヤーです。特にネットワークデバイスの場合、イメージの展開に不可欠です。インフラストラクチャソフトウェアを更新するたびに、プラットフォームレイヤーにバージョンを追加します。

OSレイヤーを更新すると、イメージで起動の問題が発生する場合があります。この問題を解決するには、新しいOSレイヤーを使用してプラットフォームレイヤーにバージョンを追加します。パッケージングマシンが起動したら、最終処理のためにマシンをシャットダウンします。プラットフォームレイヤーは、新しいOSレイヤーバージョンから重要なコンポーネントを収集し、OSバージョンと一致するようにプラットフォームでそれらを更新します。

要件

プラットフォームレイヤーを作成する際、ソフトウェアインストーラーはパッケージングマシンがアクセスできる場所に配置されている必要があります。たとえば、プロビジョニングサーバーと接続ブローカーソフトウェアにアクセスできる必要があります。アプライアンスが別のハイパーバイザーで実行されている場合は、ハイパーバイザーツールも含まれている必要があります。

詳細な要件については、レイヤーを作成またはイメージを公開する環境を選択してください。

最適化について

プラットフォームレイヤーは最も優先度の高いレイヤーです。最適化を含めるのに最適な場所だと考えるかもしれません。しかし、Windows 10では、Windowsアプリを削除する最適化はOSレイヤーでのみ機能します。WindowsアプリはWindows Storeと統合されており、OSレイヤーでのみ変更できます。

Citrixは、Citrix Optimizerと呼ばれる優れた最適化ユーティリティを提供しています。Citrix Optimizerは必要に応じて最適化を元に戻すことができるため、App Layeringに付属のオプティマイザーではなく、このユーティリティを使用することをお勧めします。

ユーザーのログオンを高速化するには、ネットワークユーザーアカウントを使用してログオンし、デスクトップを再起動します。次に、管理者としてログオンし、作成されたプロファイルを削除します。最初のネットワークユーザーがログオンすると、一部のシステムファイルが更新され、通常、ログオンパフォーマンスが向上します。

新しいプラットフォームレイヤーの開始

プラットフォームレイヤーを作成するには、次の手順に従います。

  • Create Platform Layer を使用してレイヤーを準備します。
  • 環境にパッケージングマシンを展開します。
  • 環境のツールをインストールし、設定を構成します。
  • レイヤーを最終処理します。

アクションバーから開始して、次の手順に従います。

  1. Layers > Platform Layers を選択します。次に、Create Platform Layer を選択します。

  2. [Layer Details] タブで、必須値である Layer NameVersion を入力します。オプションで、他の値を入力することもできます。

  3. [Version Details] タブで:

    1. (必須)新しいバージョン名を入力します。たとえば、ソフトウェアバージョンやその他の識別情報を入力します。
    2. 既存のレイヤーにバージョンを追加する場合、Base Version フィールドで開始点として使用するバージョンを選択できます。デフォルトの選択肢は最新バージョンです。
  4. [OS layer] タブで、このプラットフォームレイヤーに関連付けるOSレイヤーを選択します。

  5. [Connector] タブで、このレイヤーを作成するプラットフォームの Connector Configuration を選択します。

  6. [Platform Types] タブで、This platform will be used for publishing layered images または This platform will be used for packaging を選択します。次に、レイヤー化されたイメージを公開するハイパーバイザー、プロビジョニングソフトウェア、および接続ブローカーを選択します。 注: プロビジョニングまたは接続ブローカーを使用しない場合は、これらのオプションのそれぞれについて None を選択します。

  7. [Packaging Disk] タブで、パッケージングディスクの ファイル名 を入力します。このディスクは、ツールをインストールするパッケージングマシン(仮想マシン)に使用されます。

  8. [Icon Assignment] タブで、レイヤーに割り当てるアイコンを選択します。このアイコンは、[Layers] モジュールでレイヤーを表します。

    • 既存のイメージを使用するには、イメージボックスでイメージを選択します。
    • 新しいイメージをインポートするには、Browse をクリックし、PNGまたはJPG形式のイメージを選択します。
    • レイヤーが提供されているアイコンのいずれかを使用し、Offload Compositing が選択されたコネクターを使用している場合、パッケージングマシンはレイヤーの内容に基づいてアイコンを割り当てます。
  9. [Confirm and Complete] タブで、アプリレイヤーの詳細を確認し、必要に応じてコメントを入力し、Create Layer をクリックします。入力したコメントは、Audit HistoryInformation ビューに表示されます。

  10. Tasks ページを選択し、Packaging Disk タスクをクリックします。情報アイコンをクリックして、タスクの完全な説明を表示します。

    パッケージングディスクが作成されると、タスクバーに環境内のパッケージングディスクの場所が表示されます。

次に、レイヤーのパッケージングマシンを展開できます。

パッケージングマシンの展開

App Layeringシステムは、コネクター構成で定義された場所にパッケージングマシンを作成します。パッケージングマシンは、レイヤーのソフトウェアをインストールするための一時的なVMです。レイヤーを最終処理すると、パッケージングマシンは削除されます。

XenServer®、Hyper-V、Nutanix AHV、VMware vSphere

アプライアンスは、コネクター構成で定義された場所にパッケージングマシンを作成します。

  1. App Layering管理コンソールに移動し、Tasks ページを選択します。
  2. [Create Platform layer] タスクを開いて、パッケージングマシンの名前を取得します。
  3. ハイパーバイザー管理コンソール(例: XenServer、Azure、Hyper-V、Nutanix、またはVMware)にログオンします。
  4. ハイパーバイザーマネージャーコンソールからパッケージングマシンに移動します。パッケージングマシンがまだ電源オンになっていない場合は、今すぐ電源をオンにします。

Hyper-V用Citrix Provisioning: 2つのネットワークカードの構成

デュアルネットワークカードを使用し、Hyper-V用Citrix Provisioningを実行している場合、プラットフォームレイヤーの新しいバージョンごとに、次のようにカードを構成する必要があります。

プロビジョニングソフトウェアがインストールされ、必要な再起動が完了したら:

  1. パッケージングマシンで管理者コマンドプロンプトを開きます。
  2. コマンド ipconfig /all を実行します。
  3. ストリーミングNIC(Hyper-Vのレガシーネットワークアダプター)のIPアドレスを正しいアダプター名と一致させます。
  4. ストリーミングNICのDHCPリースを更新します。
  5. 再度、管理者コマンドプロンプトで ipconfig /release *adapter-name* に続けて ipconfig /renew *adapter-name* を実行します。このコマンドにより、App Layeringドライバーがこのアダプターを「プライマリNIC」として強制的に選択します。
  6. Shutdown for Finalize を実行し、通常どおりレイヤーを最終処理します。

重要:

Shutdown for Finalize を選択した後で、何らかの理由でマシンを再度オンにする必要がある場合は、release および renew コマンドを再実行する必要があります。

Azure

  1. App Layering管理コンソールに移動し、Tasks ページを選択します。[Create App layer] タスクを開き、情報アイコンをクリックして詳細を表示します。
  2. タスクの詳細にあるリンクを使用して、Azureのパッケージングマシンに移動します。[Custom deployment] パネルが開きます。
  3. Azureポータル (https://portal.azure.com) にログオンします。
  4. Azureパラメーターを設定します。
    • Packaging Machine Name - Azure仮想マシンの名前要件に準拠している必要があります。
    • Size – 仮想マシンのサイズ。
    • Virtual Network and Subnet - パッケージングマシンの展開用。 重要: Resource group location の値が、コネクター構成で構成した Storage account location と一致していることを確認してください。これらの場所が同じでない場合、パッケージングマシンは展開に失敗します。展開が失敗した場合は、リンクをブラウザーに再度貼り付けてやり直すことができます。
  5. パッケージングマシンの電源がオンになったら、レイヤーに含めるアプリケーションをインストールできます。

その他のハイパーバイザー(ネットワークファイル共有経由)

  1. ネットワークファイル共有上の次のディレクトリでパッケージングディスクを見つけます。 \Unidesk\Packaging Disks

  2. パッケージングディスクをハイパーバイザー上の別の場所にコピーします。ディスクを別の場所に置くことで、新しい仮想マシンを作成する際にハイパーバイザーによって生成されるファイルのスペースが確保されます。

    重要: 最終処理の準備が整うまで、ディスクをFinalizeフォルダーにコピーしないでください。Finalizeフォルダー内のディスクは、次に作成する新しい仮想マシンにアタッチできません。

  3. パッケージングディスクをブートディスクとして使用して仮想マシンを作成します。

  4. パッケージングマシンの電源をオンにします。

パッケージングマシンの電源がオンになったら、レイヤーにプラットフォームツールをインストールできます。

パッケージングマシンへのプラットフォームツールのインストール

次に、レイヤー化されたイメージを公開するプラットフォーム用のソフトウェアをインストールします。プラットフォームツールには、ターゲット環境でレイヤー化されたイメージが必要とするプロビジョニングおよび接続ブローカーソフトウェアが含まれます。レイヤーを最終処理する際のソフトウェアの状態が、イメージが使用する状態になることに注意してください。

  1. パッケージングマシンにリモートでログオンします。OSの作成に使用したユーザーアカウントを使用してログオンしてください。
  2. レイヤー化されたイメージが実行するように構成されているツールをインストールします。たとえば、プロビジョニング、接続ブローカー、およびハイパーバイザーツールを含めます。ドライバー、ブートレベルのアプリケーション、および必要なファイルを忘れないでください。
  3. インストールにシステム再起動が必要な場合は、手動で再起動します。パッケージングマシンは自動的に再起動しません。
  4. イメージが起動したときにパッケージングマシンが目的の状態になっていることを確認します。
    • インストールするツールにインストール後のセットアップまたは登録が必要な場合は、今すぐそれらの手順を完了します。
    • パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションを削除します。
  5. (オプション)ELMからMCSに展開する前に展開されたイメージをカスタマイズするには、次の手順に従います。
    1. OSリビジョン2308以降でマスタートールをアップグレードします。
    2. 次に、ファイルを作成します。 c:\windows\setup\scripts\kmsdir\Admin_Controlled_Shutdown.txt

      注:

      ファイルの内容は重要ではありません。

    3. ELMからイメージが展開されると、起動されたイメージは実行状態のままであり、カスタマイズを行うことができます。再起動してもマシンの状態には影響しません。
    4. カスタマイズが完了したら、コマンドを実行します。 c:\windows\setup\scripts\kmsdir\CompleteDeployment.cmd. この時点で、マシンはシャットダウンし、展開タスクが完了します。これにより、マシンをMCSに展開できます。

レイヤーの検証とパッケージングマシンのシャットダウン

パッケージングマシンにツールがインストールされたら、レイヤーが最終処理の準備ができていることを確認できます。必要なインストール後の処理はすべて完了している必要があります。たとえば、再起動やMicrosoft ngen プロセスが完了する必要がある場合があります。

未処理のプロセスが完了していることを確認するには、Shutdown For Finalize ツールを実行します。パッケージングマシンのデスクトップで Shutdown For Finalize アイコンを探してください。

レイヤーを最終処理するためのパッケージングマシンのシャットダウン

  1. パッケージングマシンにログオンしていない場合は、OSレイヤー作成時に設定したアカウントを使用してリモートログオンします。
  2. Shutdown For Finalize アイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
  3. 未処理の操作がある場合、プロセスを完了するように求められます。たとえば、Microsoft ngen 操作を完了する必要がある場合、最終処理プロセス中のレイヤー整合性メッセージのセクションで詳述されているように、ngen 操作を迅速化できます。
  4. 未処理の操作が完了したら、Shutdown For Finalize アイコンを再度ダブルクリックします。

レイヤーはこれで最終処理の準備ができました。

  • コネクター構成で Offload Compositing が選択されている場合、レイヤーは自動的に最終処理されます。
  • Offload Compositing を使用していない場合、レイヤーを手動で最終処理します

最終処理プロセス中のレイヤー整合性メッセージ

次のレイヤー整合性メッセージは、レイヤーが最終処理の準備ができる前に完了する必要があるキューに入れられた操作を示します。

  • RunOnceスクリプトが未処理です - パッケージングマシンを確認して再起動してください。
  • インストール後の再起動が保留中です - パッケージングマシンを確認して再起動してください。
  • Microsoft ngen操作がバックグラウンドで進行中です。- MSIインストール操作が進行中です - パッケージングマシンを確認してください。
  • ブートディスクのドライバーを更新するための再起動が保留中です - パッケージングマシンを確認して再起動してください。
  • Microsoft ngen操作が必要です。
  • Software Center Clientは実行するように構成されていますが、SMSCFG.INIがまだ存在します。 仮想環境でのSCCMの展開の詳細については、Microsoft TechNetの記事「Implementing SCCM in a XenDesktop VDI environment」を参照してください。

レイヤー整合性メッセージの意味とデバッグ方法の詳細については、「Debugging Layer Integrity Problems in Citrix App Layering 4.x and later」を参照してください。

マシンをシャットダウンしても、レイヤー整合性メッセージをバイパスすることはできません。App Layeringソフトウェアは、プロセスが完了するまでパッケージングマシンに戻します。

Microsoft ngen 操作が進行中の場合、次のセクションで説明されているように、それを迅速化することができます。

必要に応じてMicrosoft Ngen.exe 操作を迅速化

すべてのソフトウェア更新がインストールされたら、Ngen.exe が実質的に.NETバイトコードをネイティブイメージに再コンパイルし、それらを管理するためのレジストリエントリを構築できるようにする必要があります。

Ngen.exe 実行可能ファイルは、.NETシステムの一部であるMicrosoft Native Image Generatorです。Windowsは、インストールされているソフトウェアと構成で検出された内容に基づいて、Ngen.exe をいつ実行するかを決定します。

重要: Ngen.exe が実行されている間は、完了させる必要があります。中断された Ngen.exe 操作は、機能しない.NETアセンブリや.NETシステム内のその他の問題を引き起こす可能性があります。

通常、Ngen.exe はフォアグラウンドアクティビティがあるときに一時停止するバックグラウンド操作です。Ngen.exe 操作を迅速化するには、タスクをフォアグラウンドに移動して完了させます。

タスクをフォアグラウンドに移動するには:

  1. 管理者としてコマンドプロンプトを開きます。
  2. 現在使用中のバージョンの Microsoft.NET\Framework ディレクトリに移動します。

    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy-->

  3. キューに入れられたすべての項目を実行するために、次の Ngen.exe コマンドを入力します。このコマンドは、アセンブリを構築する前に、キューに入れられたコンポーネントのインストールを処理します。

    ngen eqi 3 <!--NeedCopy-->

    Ngen.exe タスクはコマンドプロンプトでフォアグラウンドに移動し、コンパイルされているアセンブリを一覧表示します。コンパイルメッセージが表示されても問題ありません。

    タスクマネージャーを使用して、MSCORSVW.EXE のインスタンスが実行されているかどうかを確認できます。実行されている場合は、完了させるか、ngen eqi 3 を実行してください。

    注意:

    タスクを停止するために再起動しないでください。タスクが完了するまで待ってください。

  4. すべての Ngen.exe プロセスが完了していることを確認します。
  5. 完了したら、デスクトップにある Shutdown For Finalize ショートカットを使用して仮想マシンをシャットダウンします。

レイヤーの手動最終処理

レイヤーの最終処理は、テスト済みのハイパーバイザーのいずれかでコネクターを使用すると最も高速です。詳細については、次のセクションを参照してください。

ネットワークファイル共有を使用して、他のハイパーバイザーでレイヤーを最終処理することもできます。この記事の最後のセクションを参照してください。

XenServer、Azure、Hyper-V、Nutanix AHV、VMware vSphere

レイヤーが検証され、シャットダウンされたので、最終処理の準備ができました。

Hyper-V:

Offload Compositing が選択されたコネクターを使用している場合、この最終処理プロセスは自動化されており、これらの手動手順を実行する必要はありません。

  1. 管理コンソールに戻ります。
  2. Layers > Platform layers を選択し、準備した Version Information タブのレイヤーバージョンを選択します。
  3. Finalize をクリックして、レイヤーの作成を完了します。
  4. タスクバーを監視して、アクションが正常に完了したことを確認します。

レイヤーが検証されると、使用されるストレージスペースを最小限に抑えるためにパッケージングマシンは削除されます。

その他のハイパーバイザー(ネットワークファイル共有経由)

レイヤーが検証され、シャットダウンされたので、最終処理の準備ができました。

  1. パッケージングマシンファイルを含むフォルダーから、ネットワークファイル共有上のFinalizeフォルダーにパッケージングディスクをコピーします。 \Unidesk\Finalize

  2. 管理コンソールに戻ります。

  3. Layers > Platform Layers を選択します。

  4. アクションバーで Finalize を選択します。

  5. タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認します。