作成プロセス中にインスタント クローン仮想マシンをカスタマイズするには、VMware ClonePrep と Microsoft Sysprep の 2 つのオプションがあります。
ClonePrep は、インスタント クローンの展開中に実行される VMware のカスタマイズ プロセスで、親イメージから作成された各デスクトップ クローンをパーソナライズします。
Sysprep は、基本イメージから構成されたオペレーティング システムを展開する Microsoft ツールです。これにより、応答スクリプトに基づいてデスクトップをカスタマイズできます。
ClonePrep と Sysprep の違いについては、仮想デスクトップのカスタマイズでの ClonePrep または Sysprep の選択を参照してください。
ClonePrep でのゲストのカスタマイズ
ClonePrep は、インスタント クローンがすべて Active Directory ドメインに参加することを確約します。クローンのコンピュータ セキュリティ ID (SID) は、ゴールド イメージと同じものになります。ClonePrep は、アプリケーションのグローバル一意識別子 (GUID) も保持します。ただし、一部のアプリケーションではカスタマイズ中に新しい GUID が生成されます。
インスタントクローン デスクトップ プールを追加すると、クローン作成後にすぐにスクリプトを実行し、クローンがパワーオフされる前に別のスクリプトを実行するよう指定できます。
- ClonePrep でのスクリプトの実行方法
ClonePrep は、スクリプトを実行するために Windows CreateProcess API を使用します。スクリプトは、CreateProcess API で作成できる任意のプロセスを呼び出すことができます。たとえば、cmd、vbscript、exe、およびバッチ ファイル プロセスは、この API で動作します。
特に、ClonePrep は、スクリプトのパスを 2 番目のパラメータとして CreateProcess API に渡し、最初のパラメータを
NULL
に設定します。たとえば、スクリプト パスが c:\myscript.cmd の場合、CreateProcess の呼び出しは CreateProcess(NULL,c:\myscript.cmd,...) となります。 - ClonePrep スクリプトへのパスの指定
デスクトップ プールを作成または編集するときに、そのスクリプトを指定できます。スクリプトは、ゴールド イメージに配置する必要があります。ネットワーク共有の UNC パスは使用できません。
スクリプトの実行にインタープリタが必要なスクリプト言語を使用する場合は、スクリプト パスをインタープリタの実行可能形式で始める必要があります。たとえば、C:\script\myvb.vbs ではなく、C:\windows\system32\cscript.exe c:\script\myvb.vbs と指定する必要があります。
重要: 許可されていないアクセスを防止するために、ClonePrep カスタマイズ スクリプトを安全なフォルダに入れてください。 - ClonePrep スクリプトのタイムアウト制限
デフォルトでは、ClonePrep はスクリプトの実行が 20 秒を超える場合に、スクリプトを終了します。このタイムアウトの上限は引き上げることができます。詳細については、ClonePrep カスタマイズ スクリプトのタイムアウト制限の引き上げを参照してください。
あるいは、別のスクリプトを実行するスクリプトまたは実行に長時間かかるプロセスを指定できます。
- ClonePrep スクリプト アカウント
ClonePrep は、VMware Horizon Instant Clone Agent サービスが使用するアカウントと同じアカウントを使用してスクリプトを実行します。デフォルトでは、このアカウントはローカル システムです。このログイン アカウントを変更しないでください。変更すると、クローンは起動に失敗します。
- ClonePrep プロセスの権限
セキュリティ上の理由により、Windows オペレーティング システムの一部の権限は、ClonePrep カスタマイズ スクリプトを実行する VMware Horizon Instant Clone Agent プロセスから取り除かれます。そのスクリプトは、これらの権限を必要とするアクションを実行できません。
ClonePrep スクリプトを実行するプロセスには、次の権限がありません。
- SeCreateTokenPrivilege
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
- SeSystemEnvironmentPrivilege
- SeLoadDriverPrivilege
- SeSystemtimePrivilege
- SeUndockPrivilege
- SeManageVolumePrivilege
- SeLockMemoryPrivilege
- SeIncreaseBasePriorityPrivilege
- SeCreatePermanentPrivilege
- SeDebugPrivilege
- SeAuditPrivilege
- ClonePrep スクリプトのログ
ClonePrep は、C:\ProgramData\VMware\VDM\Logs にあるログ ファイルにメッセージを書き込みます。
Sysprep によるゲストのカスタマイズ
-
Windows 10 の一部の古いバージョンで Sysprep を実行するには、すべてのユーザーにインストールされている Appx パッケージを削除する必要があります。Windows 10 の一部の新しいアップデートでは、Sysprep はこれらのパッケージを自動的に削除します。手動で削除する必要はありません。Appx パッケージの削除手順については、Microsoft サポート サイトを参照してください。
- 保留中の Windows 更新があると Sysprep が失敗する可能性があります。この問題を回避するには、ゴールド イメージ仮想マシンで Microsoft Windows の更新を実行し、インスタント クローンの Microsoft Windows 更新サービスを無効にすることを検討してください。また、Windows の更新ページを確認して、保留中の更新またはエラーがないことを確認することもできます。
- デフォルトでは、Sysprep の一般化により、組み込みの管理者アカウントが無効になります。ゴールド イメージ仮想マシンに他のユーザー アカウントがなく、クローンのカスタマイズに失敗した場合、ユーザーはデバッグ情報を収集するためにクローン仮想マシンにログインできません。ローカル管理者としてログインしようとすると、ログイン画面に「アカウントが無効になりました。システム管理者に問い合わせてください。」というメッセージが表示されます。この問題を解決するには、Microsoft サポート サイトの手順に従って、ゴールド イメージ仮想マシンに新しいユーザー アカウントを作成します。
- ClonePrep または Microsoft Sysprep によるゲストのカスタマイズを使用して、vTPM デバイスをインスタント クローンに追加できます。Sysprep によるカスタマイズを使用していて、スマート プロビジョニングが有効になっている場合または親仮想マシンが無効になっている場合(モード B)は、クラスタ内のすべてのホストが ESXi 7.0 Update 3f 以降を実行している必要があります。