レイヤーの更新
OS、プラットフォーム、またはアプリレイヤーのソフトウェアを更新する手順は、実質的に同じです。レイヤーにバージョンを追加し、パッケージングマシンにアップグレードまたはパッチをインストールし、検証してから、レイヤーを確定します。更新後、新しいレイヤーバージョンを展開しますが、これはレイヤーの種類によって異なります。
プラットフォームレイヤーは最も優先度の高いレイヤーであり、特にネットワークなどのデバイスに関して、イメージの展開に不可欠です。インフラストラクチャソフトウェアを更新するたびに、プラットフォームレイヤーに新しいバージョンを追加する必要があります。
新しいOSレイヤーをベースとして使用して、プラットフォームレイヤーにバージョンを追加します。パッケージングマシンが起動したら、確定のためにマシンをシャットダウンします。プラットフォームレイヤーは、新しいOSレイヤーバージョンから重要なコンポーネントを収集し、OSバージョンと一致するようにプラットフォームでそれらを更新します。
レイヤーにバージョンを追加する
たとえば、OSレイヤーにバージョンを追加するには、次の手順を実行します。
-
バージョン詳細で:
-
パッケージングディスクのファイル名を入力し、コネクタ構成の代わりにアプライアンスのファイル共有を使用している場合は、使用するディスク形式を選択します。このディスクは、アプリケーションをインストールするパッケージングマシン(仮想マシン)に使用されます。
次に、このOSレイヤーバージョン用のパッケージングマシンを展開できます。
ハイパーバイザーにパッケージングマシンを展開する
パッケージングマシンは、レイヤーに含める更新プログラムやアプリケーションをインストールする仮想マシンです。パッケージングマシンは、OSレイヤーが最終処理されると削除される一時的な仮想マシンです。
タスクの説明には、このレイヤーのパッケージングマシンが作成されたハイパーバイザー内の場所に移動するための指示が含まれています。
-
ハイパーバイザーにパッケージングマシンを作成するには、ステップ2に示されている展開されたパッケージングディスクタスクから始めます。
-
ハイパーバイザークライアントにログインします。
-
管理コンソールに戻り、展開されたパッケージングディスクタスクの指示を使用して、パッケージングマシンに移動します。
OSの更新プログラムをインストールする
-
パッケージングマシンにリモートログインします。OSの作成に使用したユーザーアカウントでログインしてください。
-
Windows Update、Windowsストアアプリの更新、Microsoft Edgeの更新、ウイルス対策アプリケーションなど、新しいOSレイヤーバージョンに含めたい更新プログラムやアプリケーションをインストールします。
-
アプリケーションのインストールにシステムの再起動が必要な場合は、手動で再起動してください。パッケージングマシンは自動的に再起動しません。
-
パッケージングマシンがユーザーにとって望ましい状態になっていることを確認します。
-
インストールしたアプリケーションにインストール後のセットアップやアプリケーション登録が必要な場合は、今すぐそれらの手順を完了してください。
-
パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションを削除します。
-
次に、パッケージングマシンをシャットダウンし、レイヤーが最終処理の準備ができていることを確認します。
注記:
Windows 10をあるメジャーバージョンから別のメジャーバージョン(例えば1703から1709)にアップグレードする場合、以前のWindowsインストールはC:\Windows.oldフォルダーに残されます。App Layeringでは、このフォルダーを削除してはいけません。アップグレードが完全に完了すると、当社のソフトウェアはドライバーやその他のファイルをWindows.oldからWindowsにコピーする必要があります。OSレイヤーをファイナライズする際に、Windows.oldをクリーンアップします。
レイヤーを検証し、パッケージングマシンをシャットダウンする
次のステップは、レイヤーがファイナライズの準備ができていることを確認することです。ファイナライズの準備をするには、再起動やMicrosoft
ngen プロセスなど、必要なインストール後の処理がすべて完了している必要があります。
未処理のプロセスがすべて完了していることを確認するには、パッケージングマシンのデスクトップに表示されるShutdown For Finalizeツール(以下のアイコン)を実行します。
Shutdown For Finalizeツールを使用するには:
-
パッケージングマシンにログインしていない場合は、マシンを作成したユーザーとしてリモートログインします。
-
Shutdown For Finalizeアイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
-
レイヤーをファイナライズする前に完了する必要がある未処理の操作がある場合、完了するように求められます。例えば、Microsoft
ngen操作を完了する必要がある場合、以下に詳述するように、ngen操作を迅速化することができます。 -
保留中の操作がすべて完了したら、Shutdown For Finalizeアイコンをもう一度ダブルクリックします。これにより、パッケージングマシンがシャットダウンされます。
レイヤーはファイナライズの準備ができています。
選択したコネクタ構成がオフロードコンポジティングに設定されている場合、レイヤーは自動的にファイナライズされます。そうでない場合、次のステップは、次の手順で説明するように、レイヤーを手動でファイナライズすることです。
レイヤー整合性メッセージ
以下のレイヤー整合性メッセージは、レイヤーがファイナライズの準備ができる前に完了する必要があるキューに入れられた操作を示します。
-
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)..
レイヤー整合性メッセージの意味とデバッグ方法の詳細については、「Debugging Layer Integrity Problems in Citrix App Layering 4.x and later」を参照してください。
マシンをシャットダウンしても、レイヤー整合性メッセージをバイパスすることはできません。App Layeringソフトウェアは停止し、プロセスが完了するまでパッケージングマシンに戻されます。
Microsoft
ngen操作が進行中の場合、次のセクションで説明するように、それを迅速化できる場合があります。
必要に応じて、Microsoft Ngen.exe操作を迅速化する
すべてのソフトウェアアップデートがインストールされたら、
Ngen.exeが.NETバイトコードをネイティブイメージに再コンパイルし、それらを管理するためのレジストリエントリを構築できるようにする必要があります。
Ngen.exeはMicrosoft Native Image Generatorであり、.NETシステムの一部です。Windowsは、インストールされているソフトウェアと、構成でWindowsが検出するものに基づいて、Ngen.exeを実行するタイミングを決定します。
重要:
Ngen.exeが実行されている間は、完了させる必要があります。中断されたNgen.exe操作は、機能しない.NETアセンブリや、.NETシステム内のその他の問題を引き起こす可能性があります。
通常、
Ngen.exeはフォアグラウンドアクティビティがあるときに一時停止するバックグラウンド操作です。Ngen.exe操作を迅速化したい場合は、タスクをフォアグラウンドに移動して、できるだけ早く完了させることができます。
タスクをフォアグラウンドに移動するには:
-
コマンドプロンプトを管理者として開きます。
-
現在使用中のバージョンの
Microsoft.NET\Frameworkディレクトリに移動します。cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX -
.NET Framework 3以降を使用している場合は、次の
Ngen.exeコマンドを入力して、キュー内のすべての項目を実行します。このコマンドは、アセンブリをビルドする前に、キューに入れられたコンポーネントのインストールを処理します。ngen eqi 3Ngen.exeタスクがコマンドプロンプトでフォアグラウンドに移動し、コンパイル中のアセンブリを一覧表示します。コンパイルメッセージが表示されても問題ありません。すべてのNgen.exeプロセスが完了したことを確認します。タスクマネージャーを使用して、MSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。実行されている場合は、完了させるか、ngen eqi 3を実行してください。注意: タスクを停止するために再起動しないでください。タスクが完了するまで待ってください! -
.NET Framework 2以前を使用している場合は、次の
Ngen.exeコマンドを入力して、キュー内の項目を実行します。ngen update /forceこれにより、ngenタスクがコマンドプロンプトでフォアグラウンドに移動し、コンパイル中のアセンブリを一覧表示します。注: コンパイル失敗のメッセージが表示されても問題ありません。 タスクマネージャーでMSWORD.EXEのインスタンスが実行されているかどうかを確認してください。実行されている場合は、完了させるか、'ngen update /force` を再実行する必要があります。タスクを停止するために再起動しないでください。完了するまで待ってください。Ngen.exe操作のステータスを確認するには、管理者としてコマンドプロンプトを開き、次のコマンドを実行します:ngen queue status注意: タスクを停止するために再起動しないでください。タスクが完了するまで待ってください! -
すべての操作が完了したら、デスクトップにある Shutdown For Finalize ショートカットを使用して仮想マシンをシャットダウンします。
レイヤーを手動で確定する
パッケージングマシンが作成され、アプリや更新がインストールされたら、レイヤーを確定できます。
注: OSレイヤーの新しいバージョンを確定すると、システムは追加コストが発生しないようにパッケージングマシンを削除します。
レイヤーを確定する準備ができたら:
-
管理コンソールに戻ります。
-
レイヤーモジュールで、レイヤーを選択します。
-
アクションバーでFinalizeを選択します。
-
タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認します。