App Layering

Citrix Hypervisor、Hyper-V、またはvSphereでレイヤー化するためのOSイメージの準備

開始する前に、 要件を満たしていることを確認してください。イメージの準備中に、 時間がかかりすぎると思われる場合は、必要に応じて Microsoft Ngen.exe の操作を迅速に実行することができます

Windows 10を使用している場合は、Citrix Provisioning、マシン作成、またはVMware Viewを実行していない限り 、デスクトップの開始時間を短縮できます。この状況では、 Windows 10 の組み込みアプリケーションを削除できます。OS イメージ自体ではなく、 新しいバージョンの OS 層でアプリを削除することをお勧めします。

仮想マシンへの OS のインストール

ISO から新しくインストールされた OS から、できればHypervisor から起動することが重要です。

この手順では、インストールする Windows のバージョンに固有の手順と注意事項に従ってください。

  1. Hypervisor ークライアントにログインします。
  2. オペレーティングシステムの種類に応じて、適切な CPU、RAM、ハードドライブ、およびネットワーク設定を持つ仮想マシンを作成します。ガイダンス:

    • Citrix Hypervisor仮想マシン: ネットワークが1つだけ選択されていることを確認します。
    • vSphere 仮想マシン:
      • ネットワーク: (必須) VMXNET 3 ネットワークアダプタを選択します

      重要: ネットワークデバイスを 1 つだけ持つことができ、E1000 NIC は決して使用しないでください。デフォルトの E1000 アダプタ (または E1000 アダプタから Ghost NIC が残った場合でも) は、仮想マシンでカスタマイズのタイムアウトエラーが発生する可能性があります。

      • シンプロビジョニング: [ シンプロビジョニング] を選択します。
    • すべてのハイパーバイザー:
      • ハードドライブ: 作成したハードドライブにアプライアンスがアクセスできることを確認します。
  3. ISO を接続し、オペレーティングシステムをインストールします。このマシンはドメインに参加してはいけませんドメイン参加はプラットフォームレイヤーで実行する必要があり、ドメイングループメンバーシップの変更はグループポリシーを使用して行う必要があります。
  4. Layer をパッケージ化するプラットフォーム用のHypervisor ツールをインストールします。複数のハイパーバイザーをサポートしている場合は、イメージの公開に使用するHypervisor のツールを Platform レイヤーに配置します。

    Hyper-V:

    Microsoft Windows統合サービスセットアップディスクを使用して Hyper-V 統合サービスをインストールします。

サーバー OS を使用している場合は、リモートデスクトップセッションホスト機能をインストールします

Windows Server を使用する場合は、 リモートデスクトップセッションホスト機能をインストールする必要がありますリモートデスクトップセッションホストの役割が OS 層にインストールされると、Windows の一部として更新されます。必要に応じて、代わりにVDAを使用してプラットフォームレイヤーに役割をインストールできます。

RDS を OS レイヤーにインストールする場合は、ローカル GPO を使用して RDS ライセンスサーバーを定義する必要があります。そうしないと、パッケージングマシンへのログオン機能が失われます。

セッション・ホスト機能をインストールするには、次の手順で行います。

  1. サーバーマネージャーで、[ 役割と機能の追加] を選択します。
  2. [ インストールの種類] で、[ 役割ベース ] または [ 機能ベースのインストール ] を選択します。
  3. サーバーの役割で 、[リモートデスクトップサービス] > [リモートデスクトップセッションホスト (インストール済み)] を選択します。これにより 、C++ ライブラリと RDS ロールがインストールされます。
  4. サーバーの役割を追加するプロセスを完了します。

正しいバージョンの.NET Frameworkがインストールされていることを確認します(Windows 7、Windows 10、Windows Server 2016)

.NET Framework(.NET Framework)は、Microsoftが提供するソフトウェアフレームワークである。多くのサードパーティ製アプリケーションを実行するために必要とされる。

  • /.NET フレームワーク 4.5: Windows 7 では必須です。
  • /.NET Framework 3.5: Windows 10 および Windows Server 2016 で必要となる。

.NET フレームワークをインストールするには、次の手順に従います。

  1. [スタート] メニューで、[ コントロールパネル] > [プログラムと機能] の順に選択します
  2. 左側のパネルで、[ Windows の機能の有効化または無効を切り替える] を選択します。ウィンドウが開きます。
  3. .NET Framework の正しいバージョンを選択し、 「OK」をクリックして、インストールが完了するまで待ちます。

    重要:

    .NET がすでにインストールされていても、以降の手順を続行します。

  4. コントロールパネルを終了します。
  5. タスクバーの右側にある [通知] で、[ すべての設定] をクリックし、Windows 10 の設定アプリを開きます。
  6. [ 設定] > [更新とセキュリティ] を選択します。
  7. 更新プログラムを確認し、利用可能なすべての更新プログラムをインストールします。
  8. [設定] を終了します。

Windows の更新プログラムをインストールする

すべてのWindows更新プログラムをインストールしてください。

  1. すべての重要な更新プログラムをインストールします。
  2. 仮想マシンの再起動後に、更新を再確認します。一部のアップデートは、他のアップデートをインストールした後にのみ利用可能になりました。
  3. 必要なサービスパックをすべてインストールします。
    • Citrix ProvisioningまたはHorizon ViewでWindows 2008を使用している場合は、Windows Server 2008 R2サービスパック1(SP1)をインストールします。

      注: KB3125574 がインストールされている場合は、この Service Pack をインストールする前にアンインストールしてください。

  4. ローカルグループポリシーエディター gpedit.msc を使用して、 Windows の自動更新をクリアし、Windows システムの復元を無効にします 。システムは復元ポイントを処理します。レイヤバージョンでは、更新を実行するタイミングを指定できます。
  5. Windows 10: 次のコマンドを入力して、休止状態をクリアします。

    powercfg.exe /hibernate off
    <!--NeedCopy-->
    
  6. 組み込み管理者を有効にして、[ パスワードの有効期限なし] を選択します。
  7. キー管理サービス (KMS) ライセンスを使用する場合は、管理者としてコマンドウィンドウを実行し、次のコマンドを入力します。

    slmgr /skms <kmsserverhost>
    slmgr /rearm
    reboot
    slmgr /ipk XXXX-YOUR-KMS-KEY-XXXX
    slmgr /ato
    <!--NeedCopy-->
    
  8. サーバーOSを使用している場合は、PowerShellで次のコマンドを実行します。

    Set-ExecutionPolicy Unrestricted
    Enable-PSRemoting <!--NeedCopy-->
    

必要に応じて、Microsoft Ngen.exe の操作を迅速化できます

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

Ngen.exeは、 .NET システムの一部であるMicrosoft ネイティブイメージジェネレータです。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コマンドのこのバリエーションはテストされており、App Layering でこの状況で機能するバリエーションです。

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

    タスクマネージャを使用してMSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。そうであれば、それを完了するか、 ngen eqi 3を実行することを許可します。

    注意: タスクを停止するために再起動しないでください。タスクの完了を許可します。

  4. すべてのNgen.exeプロセスが完了するまで実行されていることを確認します。

イメージ上でApp Layering OSマシンツールを実行する

レイヤーで実行する OS イメージを準備するには、イメージ上で OS Machine Tools ファイルを実行します。この実行可能ファイルは、GPO セットアップスクリプト (gposetup.cmd) と、キー管理サービス (KMS) のバージョンを設定するスクリプトを実行します。スクリプトはSetKMSVersion.htaと呼ばれています。

  1. OSイメージに次のzipファイルをダウンロードします。 app_Layering_citrix_app_Layering_OS_machine_tools_20.x.zip
  2. ファイルを展開する場所:

    c:\windows\setup\scripts <!--NeedCopy-->

    注: ファイルはディレクトリに展開する必要があります。ディレクトリを変更しないでください。

KMS を使用している場合は、ライセンスのアクティベーションを構成します

キー管理サービス (KMS) スクリプトが抽出されると、 SetKMSVersion ユーティリティは KMS ライセンスを使用するかどうかを選択するよう求められます。

注: KMS と Active Directory ベースのアクティブ化 (ADBA) の両方が同時に使用されている環境にイメージを公開すると、ライセンス認証に問題が発生します。

  1. 表示されるダイアログボックスで、キー管理サービス (KMS) ライセンスを使用するかどうかを選択します。

    KMS バージョンイメージの設定

KMS 用のスクリプトを構成するには、次の手順を実行します。

  1. 次の場所に移動します。

    c:\windows\setup\scripts

  2. SetkmsVersion.hta を管理者として実行し、c:\windows\setup\scripts\kmsdir folderにスクリプトを作成します。

オペレーティングシステムが起動すると、適切な KMS ライセンス認証スクリプトが実行されます。

App Layering サービスをインストールする

  1. c:\windows\setup\scripts フォルダで setup_x86.exe (32 ビット) または setup_x64.exe (64 ビット)を実行します。

これで、新しい OS レイヤーにイメージをインポートする準備が整いました