レイヤーの更新

OS、プラットフォーム、またはアプリレイヤーのソフトウェアを更新する手順は、実質的に同じです。レイヤーにバージョンを追加し、パッケージングマシンにアップグレードまたはパッチをインストールし、検証してから、レイヤーを最終処理します。更新後、新しいレイヤーバージョンを展開しますが、これはレイヤーの種類によって異なります。

プラットフォームレイヤーは最も優先度の高いレイヤーであり、特にネットワークなどのデバイスに関するイメージの展開にとって重要です。インフラストラクチャソフトウェアを更新するたびに、プラットフォームレイヤーに新しいバージョンを追加する必要があります。

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

レイヤーへのバージョンの追加

たとえば、OSレイヤーにバージョンを追加するには、次の手順を実行します。

  1. Citrix App Layering™ 管理コンソールで、「レイヤー > OSレイヤー」を選択します。
  2. OSレイヤーを選択し、「バージョン情報」タブで「バージョンの追加」をクリックします。
  3. 「バージョン詳細」で、次の操作を行います。
    1. ベースバージョン」には、新しいレイヤーバージョンのベースとして使用するバージョンを選択します。デフォルトは最新バージョンです。
    2. 新しいバージョン」の名前を入力します。これはOSバージョンまたはその他の識別情報にすることができます。
  4. レイヤーを作成するハイパーバイザーの「コネクタ構成」を選択します。
  5. アプライアンスのファイル共有を使用している場合(コネクタ構成を使用しない場合)は、パッケージングディスクのファイル名を入力し、使用するディスク形式を選択します。このディスクは、アプリケーションをインストールするパッケージングマシン(仮想マシン)に使用されます。
  6. 設定を確認し、「バージョンの追加」をクリックします。これにより、OSバージョンを作成するタスクが実行されます。タスクが完了すると、「アクションが必要」のステータスが表示されます。タスクを選択して「詳細の表示」をクリックすると、次のテキストが表示されます。

「パッケージングディスクが公開されました。仮想マシン「<…>」は、データセンター「<…>」のフォルダー「<…>」にあります。この仮想マシンをパワーオンしてアプリケーションをインストールします。インストールが完了したら、アクションバーの「最終処理」をクリックする前に仮想マシンをパワーオフしてください。」

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

ハイパーバイザーへのパッケージングマシンの展開

パッケージングマシンは、レイヤーに含めるアップデートまたはアプリケーションをインストールする仮想マシンです。パッケージングマシンは一時的な仮想マシンであり、OSレイヤーが最終処理されると削除されます。

タスクの説明には、このレイヤーのパッケージングマシンが作成されたハイパーバイザー内の場所に移動するための指示が含まれています。

  1. ハイパーバイザーでパッケージングマシンを作成するには、手順2に示されている展開されたパッケージングディスクタスクから始めます。
  2. ハイパーバイザークライアントにログインします。
  3. 管理コンソールに戻り、展開されたパッケージングディスクタスクの指示を使用してパッケージングマシンに移動します。

OSアップデートのインストール

  1. パッケージングマシンにリモートログインします。OSの作成に使用したユーザーアカウントでログインしていることを確認してください。
  2. Windows Updateやウイルス対策アプリケーションなど、新しいOSレイヤーバージョンに含めるすべてのアップデートまたはアプリケーションをインストールします。
  3. アプリケーションのインストールにシステムの再起動が必要な場合は、手動で再起動します。パッケージングマシンは自動的に再起動しません。
  4. パッケージングマシンがユーザーにとって望ましい状態になっていることを確認します。
    1. インストールするアプリケーションにインストール後のセットアップやアプリケーション登録が必要な場合は、今すぐそれらの手順を完了します。
    2. パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションを削除します。

次に、パッケージングマシンをシャットダウンし、レイヤーが最終処理の準備ができていることを確認します。

注:

Windows 10をあるメジャーバージョンから別のメジャーバージョン(たとえば、1703から1709)にアップグレードすると、以前のWindowsインストールはC:\Windows.oldフォルダーに残ります。App Layeringでは、このフォルダーを削除してはなりません。アップグレードが完全に完了した後、当社のソフトウェアはドライバーやその他のファイルをWindows.oldからWindowsにコピーする必要があります。OSレイヤーを最終処理する際に、Windows.oldをクリーンアップします。

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

次のステップは、レイヤーが最終処理の準備ができていることを確認することです。最終処理の準備が整うためには、再起動やMicrosoft ngenプロセスなど、必要なインストール後の処理がすべて完了している必要があります。

未処理のプロセスがすべて完了していることを確認するには、パッケージングマシンのデスクトップに表示される「最終処理のためのシャットダウン」ツール(下のアイコン)を実行します。

「最終処理のためのシャットダウン」ツールを使用するには、次の手順を実行します。

  1. パッケージングマシンにログインしていない場合は、マシンを作成したユーザーとしてリモートログインします。
  2. 「最終処理のためのシャットダウン」アイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
  3. レイヤーを最終処理する前に完了する必要がある未処理の操作がある場合は、それを完了するように求められます。たとえば、Microsoft ngen操作を完了する必要がある場合は、以下に詳述するようにngen操作を迅速化できます。
  4. 保留中の操作がすべて完了したら、「最終処理のためのシャットダウン」アイコンをもう一度ダブルクリックします。これにより、パッケージングマシンがシャットダウンされます。

レイヤーは最終処理の準備ができています。

選択したコネクタ構成が「オフロードコンポジティング」に設定されている場合、レイヤーは自動的に最終処理されます。そうでない場合は、次の手順で説明するように、レイヤーを手動で最終処理します。

レイヤー整合性メッセージ

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

  • A RunOnce script is outstanding - please check and reboot the Packaging Machine.
  • A post-installation reboot is pending - please check and reboot the packaging machine.
  • A Microsoft ngen operation is in progress in the background. - An MSI install operation is in progress - please check the packaging machine.
  • A reboot is pending to update drivers on the boot disk - please check and reboot the packaging machine.
  • A Microsoft ngen operation is needed.
  • Software Center Client is configured to run, but the SMSCFG.INI is still present. To learn more about deploying SCCM in a virtual environment, see the Microsoft TechNet article, [Implementing SCCM in a XenDesktop VDI environment](https://social.technet.microsoft.com/wiki/contents/articles/23923.implementing-sccm-in-a-xendesktop-vdi-environment.aspx).

レイヤー整合性メッセージの意味とデバッグ方法の詳細については、「Citrix App Layering 4.x以降でのレイヤー整合性問題のデバッグ」を参照してください。

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

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

必要に応じたMicrosoft Ngen.exe操作の迅速化

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

Ngen.exeは、.NETシステムの一部であるMicrosoft Native Image Generatorです。Windowsは、インストールされているソフトウェアと構成で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. .NET Framework 3以降を使用している場合は、次のNgen.exeコマンドを入力して、キューに入れられたすべての項目を実行します。このコマンドは、アセンブリをビルドする前に、キューに入れられたコンポーネントのインストールを処理します。

    ngen eqi 3 <!--NeedCopy-->

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

    すべてのNgen.exeプロセスが完了するまで実行されたことを確認します。「タスクマネージャー」を使用して、MSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。実行されている場合は、完了するまで待つか、ngen eqi 3を実行します。

    注意:

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

  4. .NET Framework 2以前を使用している場合は、次のNgen.exeコマンドを入力して、キューに入れられた項目を実行します。

    ``` ngen update /force

    
    これにより、`ngen`タスクがコマンドプロンプトでフォアグラウンドに移動し、コンパイルされているアセンブリが一覧表示されます。
    
    > **注:**
    >
    > 「**コンパイル失敗**」メッセージが表示されても問題ありません。
    タスクマネージャーで`MSWORD.EXE`のインスタンスが実行されているかどうかを確認します。実行されている場合は、完了するまで待つか、`ngen update /force`を再実行する必要があります。タスクを停止するために再起動しないでください。完了するまで待ってください。
    
    管理者としてコマンドプロンプトを開き、次のコマンドを実行して`Ngen.exe`操作のステータスを確認します。 ```ngen queue status<!--NeedCopy-->
    

    注意:

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

  5. すべての操作が完了したら、デスクトップにある「最終処理のためのシャットダウン」ショートカットを使用して仮想マシンをシャットダウンします。

レイヤーの手動最終処理

パッケージングマシンが作成され、アプリやアップデートがインストールされたら、レイヤーを最終処理できます。

注: OSレイヤーの新しいバージョンを最終処理すると、システムは追加コストが発生しないようにパッケージングマシンを削除します。

レイヤーが最終処理の準備ができたら、次の手順を実行します。

  1. 管理コンソールに戻ります。
  2. 「レイヤー」モジュールで、レイヤーを選択します。
  3. アクションバーで「最終処理」を選択します。
  4. タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認します。
レイヤーの更新