XenApp and XenDesktop

XenApp 6.xからの移行

注: Citrix Smart Migrate製品をこのバージョンのXenAppおよびXenDesktopとともに使用することはできません。移行ツールは使用できます。

この記事で説明する移行ツールを使用して、XenApp 6.xからXenApp 7.6へ移行することができます。その後、XenApp 7.6からサポート対象のLTSRやCitrix Virtual Apps and Desktopsの現行リリースにアップグレードできます。

XenApp 6.x移行ツール

XenApp 6.xの移行ツールでは、いくつかのPowerShellスクリプトが実行されます。これらのスクリプトにより、XenApp 6.x(6.0または6.5)のポリシーおよびファームデータを移行するためのコマンドレットが実行されます。XenApp 6.x Controllerのサーバー上でエクスポートコマンドレットを実行して、データをXMLファイルにエクスポートします。その後でXenApp 7.6 Controller上でインポートコマンドレットを実行して、エクスポートされたデータに基づいてオブジェクトを作成します。

次のシーケンスは、移行プロセスの概要です。詳しくは、後述します。

  1. XenApp 6.0または6.5のController上で、以下の操作を行います。
    1. PowerShellのエクスポートモジュールをインポートします。
    2. エクスポートコマンドレットを実行して、ポリシーとファームのデータをXMLファイルにエクスポートします。
    3. エクスポートしたXMLファイルおよびアイコンフォルダー(エクスポート時にアイコンをXMLファイルに埋め込まなかった場合)をXenApp 7.6のControllerにコピーします。
  2. XenApp 7.6のController上で、以下の操作を行います。
    1. PowerShellのインポートモジュールをインポートします。
    2. インポートコマンドレットを実行して、ポリシーとファーム(アプリケーション)のデータをXMLファイルからインポートします。
  3. 移行後のタスクを完了します。

実際に移行を実行する前に、XenApp 6.xの設定をエクスポートしてからXenApp 7.6サイトでプレビューインポートを実行できます。これにより、問題が発生する可能性がある箇所を特定して、実際にインポートを実行する前に問題を修正できます。たとえば、新しいXenApp 7.6サイトに同じ名前のアプリケーションが既に存在していることが検出される場合があります。プレビューによって生成されるログファイルを実際の移行を実行するためのガイドとして使用することもできます。

特に明記されている場合を除き、6.xはXenApp 6.0または6.5を指します。

このリリースでの新機能

2014年12月のリリース(Version 20141125)には、以下の更新が含まれています。

  • XenApp 6.0ファームで移行ツールを使用するときに問題が発生する場合は、https://discussions.citrix.com/forum/1411-xenapp-7x/までご報告ください。
  • 新しいパッケージ - XAMigration.zipファイルには、ReadIMA.zipImportFMA.zipという2つのパッケージが含まれています。XenApp 6.xサーバーからのエクスポートでは、ReadIMA.zipのみが必要です。XenApp 7.6サーバーへのインポートでは、ImportFMA.zipのみが必要です。
  • Export-XAFarmコマンドレットに新しいパラメーター(EmbedIconData)が追加されました。これを使用すると、アイコンデータを別のファイルとしてコピーする必要がなくなります。
  • Import-XAFarmコマンドレットに以下の3つのパラメーターが追加されました:
    • MatchServer - 条件に一致する名前のサーバーからアプリケーションをインポートします。
    • NotMatchServer - 条件に一致しない名前のサーバーからアプリケーションをインポートします。
    • IncludeDisabledApps - 無効に設定されたアプリケーションをインポートします。
  • 事前起動アプリケーションはインポートされません。
  • Export-Policyコマンドレットは、XenDesktop 7.x上で機能します。

移行ツールのパッケージ

移行ツールのパッケージは、XenApp 7.6のCitrixダウンロードサイトから入手できます。XAMigration.zipファイルには、以下の2つのパッケージが含まれています:

  • ReadIMA.zip - XenApp 6.xファームからデータをエクスポートするためのファイルと、共有モジュールが含まれています。
モジュールまたはファイル 説明
ExportPolicy.psm1 XenApp 6.xのポリシーをXMLファイルにエクスポートするPowerShellスクリプトモジュール。
ExportXAFarm.psm1 XenApp 6.xのファーム設定をXMLファイルにエクスポートするPowerShellスクリプトモジュール。
ExportPolicy.psd1 スクリプトモジュールExportPolicy.psm1のPowerShellマニフェストファイル。
ExportXAFarm.psd1 スクリプトモジュールExportXAFarm.psm1のPowerShellマニフェストファイル。
LogUtilities.psm1 ログ機能を含んでいる共有PowerShellスクリプトモジュール。
XmlUtilities.psd1 スクリプトモジュールXmlUtilities.psm1のPowerShellマニフェストファイル。
XmlUtilities.psm1 XML機能を含んでいる共有PowerShellスクリプトモジュール。
  • ImportFMA.zip - XenApp 7.6ファームにデータをインポートするためのファイルと、共有モジュールが含まれています。
モジュールまたはファイル 説明
ImportPolicy.psm1 ポリシーをXenApp 7.6サイトにインポートするPowerShellスクリプトモジュール。
ImportXAFarm.psm1 アプリケーションをXenApp 7.6サイトにインポートするPowerShellスクリプトモジュール。
ImportPolicy.psd1 スクリプトモジュールImportPolicy.psm1のPowerShellマニフェストファイル。
ImportXAFarm.psd1 スクリプトモジュールImportXAFarm.psm1のPowerShellマニフェストファイル。
PolicyData.xsd ポリシーデータのXMLスキーマ。
XAFarmData.xsd XenAppファームデータのXMLスキーマ。
LogUtilities.psm1 ログ機能を含んでいる共有PowerShellスクリプトモジュール。
XmlUtilities.psd1 スクリプトモジュールXmlUtilities.psm1のPowerShellマニフェストファイル。
XmlUtilities.psm1 XML機能を含んでいる共有PowerShellスクリプトモジュール。

制限事項

  • 一部のポリシー設定はインポートされません。「インポートされないポリシー設定」を参照してください。サポートされない設定は無視され、ログファイルに記録されます。
  • エクスポートによりすべてのアプリケーションの詳細がXMLファイルにエクスポートされますが、サーバー上にインストールされたアプリケーションだけがXenApp 7.6サイトにインポートされます。つまり、公開アプリケーション、公開コンテンツ、および多くのストリーム配信アプリケーションはインポートされません。例外については、「手順:データのインポート」のImport-XAFarmコマンドレットのパラメーターを参照してください。
  • アプリケーションサーバーはインポートされません。
  • XenApp 6.xのIndependent Management Architecture(IMA)とXenApp 7.6のFlexCast Management Architecture(FMA)ではアーキテクチャが異なるため、アプリケーションプロパティの多くはインポートされません。「アプリケーションプロパティの対応」を参照してください。
  • インポートによりデリバリーグループは作成されません。インポートする項目を制限するためのパラメーターの使用については、「高度な使用方法」を参照してください。
  • AppCenter管理コンソールで作成されたCitrixポリシー設定のみがインポートされます。Windowsグループポリシーオブジェクト(GPO)で作成されたCitrixポリシーはインポートされません。
  • 移行スクリプトは、XenApp 6.xからXenApp 7.6への移行のみを対象としています。
  • Studioは複数階層で5レベルよりも深いフォルダーはサポートされず、インポートされません。アプリケーションフォルダー構造に5レベルより深いフォルダーがある場合、インポートを実行する前にフォルダーレベルの階層数を減らすことを検討してください。

セキュリティに関する注意事項

エクスポートスクリプトによって作成されるXMLファイルには環境と組織に関する機密情報(ユーザー名、サーバー名など)およびほかのファーム、アプリケーション、ポリシーの構成データが含まれることがあるため、安全な取り扱いが必要です。

ポリシーとアプリケーションをインポートする前に、XMLファイルが不正に変更されていないことを確認してください。

ポリシーの適用方法は、オブジェクトへのポリシーの割り当て(ポリシーフィルター)によって制御されます。ポリシーをインポートしたら、各ポリシーのオブジェクト割り当てをよく調べて、インポートに起因するセキュリティ上の脆弱性がないことを確認してください。インポートしたポリシーに別のユーザー、IPアドレス、またはクライアント名が割り当てられていることがあります。許可と禁止の設定の意味がインポート後に変わることもあります。

ログとエラー処理

スクリプトにより、コマンドレットのすべての実行、情報メッセージ、実行結果、警告、およびエラーについてのログが記録されます。

  • ほとんどのCitrix PowerShellコマンドレットでログが生成されます。インポートスクリプトで新しいサイトオブジェクトを作成するために実行されるすべてのPowerShellコマンドレットでもログが生成されます。
  • スクリプトの実行状況(処理中のオブジェクトなど)についてのログが記録されます。
  • 処理フローの状態に影響する主な操作のログが記録されます。これには、コマンドラインからのフローも含まれます。
  • コンソールに出力されるすべてのメッセージがログに記録されます。これには、警告やエラーも含まれます。
  • ログの各行には、ミリ秒までのタイムスタンプが記録されます。

Citrixではエクスポートおよびインポートのコマンドレットを実行するときは、常に個別のログファイルを指定することをお勧めします。

ログファイルの名前を指定しない場合、実行ユーザーの既存のホームフォルダー(PowerShellの$HOME変数で指定される)にログファイルが格納されます。それ以外の場合、ファイルはスクリプトの現在の実行フォルダーに格納されます。デフォルトでは、「XFarmYYYYMMDDHHmmSS-xxxxxx」というログファイルが生成されます。ここで、最後の6桁は乱数です。

デフォルトでは、すべての進捗情報が表示されます。表示されないようにするには、エクスポートコマンドレットとインポートコマンドレットでNoDetailsパラメーターを指定します。

通常、スクリプトでエラーが発生すると処理がそこで停止します。エラー状態を解決した後で、コマンドレットを再実行できます。

エラーとしてみなされない状態がログに記録されます。多くは警告として報告され、スクリプトの実行は続行されます。たとえば、アプリケーションの種類がサポートされない場合は警告として記録され、インポートから除外されます。XenApp 7.6サイトに既に存在するアプリケーションはインポートされません。XenApp 7.6でサポートされなくなったポリシー設定はインポートされません。

移行スクリプトでは多くのPowerShellコマンドレットが使用され、一部のエラーがログに記録されない場合があります。より多くの情報をログに記録するには、PowerShellのログ機能を使用してください。たとえば、PowerShellで画面上に出力されるすべての情報をログに記録できます。詳しくは、Start-TranscriptおよびStop-Transcriptコマンドレットのヘルプを参照してください。

要件、準備、およびベストプラクティス

移行には、Citrix XenApp 6.5 SDKを使用する必要があります。https://www.citrix.com/downloads/xenapp/sdks/powershell-sdk.htmlからこのSDKをダウンロードしてください。

移行を開始する前に、この記事全体をよくお読みください。

PowerShellの基本的な概念についての理解が必要です。スクリプトを作成するための専門知識は必要ありませんが、実行するコマンドレットについて理解しておく必要があります。事前にGet-Helpコマンドレットを使用して、各移行コマンドレットのヘルプを確認しておいてください。例:Get-Help -full Import-XAFarm

コマンドラインでログファイルを指定して、コマンドレットの実行後にそのログファイルを確認してください。スクリプトの処理に失敗した場合は、ログファイルを参照してエラーを解決し、コマンドレットを再実行してください。

ヒント:

  • 2つの環境(XenApp 6.xファームと新しいXenApp 7.6サイト)を実行している間のアプリケーション配信を容易にするには、StoreFrontまたはWeb Interfaceで両方の環境を集約します。製品ドキュメントで、使用するStoreFrontまたはWeb Interfaceリリースを参照してください(「管理」>「ストアの作成」)。
  • アプリケーションのアイコンデータは、以下のいずれかの方法で処理されます。
  • EmbedIconDataパラメーターを指定してExport-XAFarmコマンドレットを実行すると、アプリケーションのアイコンデータが埋め込まれたXMLファイルがエクスポートされます。
  • EmbedIconDataパラメーターを指定せずにExport-XAFarmコマンドレットを実行すると、エクスポートされたXMLファイルのベース名に文字列-iconsを追加した名前のフォルダーにアプリケーションのアイコンデータが格納されます。たとえば、XmlOutputFileパラメーターでFarmData.xmlを指定した場合は、FarmData-iconsというフォルダーが作成され、そこにアプリケーションアイコンが格納されます。

    このフォルダーに格納されるアイコンデータファイルは、その公開アプリケーションの表示名に基づく名前の.txtファイルです。これらのファイルは.txtファイルですが、エンコードされたバイナリアイコンデータが記述されており、インポートスクリプトがこれを読み込んでアプリケーションアイコンを再作成することができます。インポート時にXMLファイルと同じフォルダー内にアイコンフォルダーが見つからない場合、インポートした各アプリケーションで標準的なアイコンが使用されます。

  • スクリプトモジュール、マニフェストファイル、共有モジュール、およびコマンドレットには類似した名前が付けられています。Tabキーによる補完機能を使用して、入力エラーを避けることができます。たとえば、Export-XAFarmはコマンドレットです。ExportXAFarm.psd1ExportXAFarm.psm1は実行できないファイルです。
  • 後述の手順説明で、<string>パラメーターの値は二重引用符で囲んであります。値にスペースが含まれない場合、二重引用符で囲まなくても正しく処理されます。

XenApp 6.xサーバーからのエクスポート

  • エクスポートは、コントローラーモードとセッションホストモード(通常コントローラーと呼ばれます)で構成されたXenApp 6.xサーバー上で実行する必要があります。
  • エクスポートコマンドレットを実行するには、オブジェクトの読み取り権限を持つXenApp管理者である必要があります。また、PowerShellスクリプトを実行するためのWindows権限も必要です。設定方法は、後述の手順説明に記載されています。
  • エクスポートを開始する前に、XenApp 6.xファームのヘルス状態が良好であることを確認します。ファームデータベースをバックアップします。Citrix IMA Helperツール(CTX137461)を使用してファームの整合性を確認します。[IMA Datastore]タブでMaster Checkを実行します(実行後、DSCheckオプションを使用して無効なエントリを解決します)。移行前に問題を解決しておくと、エクスポートエラーを避けることができます。

    たとえば、ファームから不適切に削除されたサーバーがあると、データベースにそのサーバーのデータが残ってしまい、エクスポートスクリプトのコマンドレット(Get-XAServer -ZoneNameなど)の処理が失敗することがあります。コマンドレットの処理が失敗すると、スクリプトの処理も失敗します。

  • ファームにユーザーが接続している状態でもエクスポートコマンドレットを実行できます。エクスポートスクリプトでは、静的なファーム構成とポリシーデータのみが読み取られます。

XenApp 7.6サーバーへのインポート

  • XenApp 7.6環境(およびそれ以降の移行可能なバージョン)にデータをインポートできます。XenApp 6.xファームからエクスポートしたデータをインポートする前に、XenApp 7.6のControllerとStudioをインストールしてサイトを作成しておく必要があります。設定をインポートするためにVDAをインストールしておく必要はありませんが、インストールしておくとアプリケーションのファイルタイプが使用可能になります。
  • インポートコマンドレットを実行するには、オブジェクトの読み取り権限および作成権限を持つXenApp管理者である必要があります。すべての管理権限を実行できる管理者には必要な権限が付与されています。また、PowerShellスクリプトを実行するためのWindows権限も必要です。設定方法は、後述の手順説明に記載されています。
  • インポート時にほかのユーザーが接続しないようにしてください。インポートスクリプトにより多くのオブジェクトが作成されるため、ほかのユーザーが同時に構成を変更すると環境が正しく機能しなくなることがあります。

エクスポートしたデータを事前にテストするために、インポートコマンドレットに-Previewパラメーターを指定して実行することができます。これにより、実際にインポートを行わずにインポート内容を確認することができます。このパラメーターでは、実際のインポートにより実行される処理がログとして出力されます。ここでエラーが発生した場合は、それを解決してからインポートを行います。

手順:データのエクスポート

XenApp 6.x ControllerからXMLファイルにデータをエクスポートするには、次の手順に従います。

  1. Citrixのダウンロードサイトから移行ツールのパッケージXAMigration.zipをダウンロードします。XenApp 6.xファームおよびXenApp 7.6サイトの両方からアクセスできるネットワーク上の共有フォルダーにパッケージをダウンロードすると便利です。ネットワーク上の共有フォルダーでXAMigration.zipを展開します。ReadIMA.zipおよびImportFMA.zipの2つのzipファイルが展開されます。

  2. ファームに対する読み取り以上の権限と、PowerShellスクリプトを実行できるWindows権限を持つXenApp管理者としてXenApp 6.x Controllerにログオンします。

  3. 共有フォルダーのReadIMA.zipをXenApp 6.x Contorllerにコピーします。Controller上のReadIMA.zipを展開し、新規フォルダー(C:\XAMigrationなど)にスクリプトを展開します。

  4. PowerShellコンソールを開き、現在のディレクトリをスクリプトの場所に移動します(例:cd C:\XAMigration)。

  5. Get-ExecutionPolicyを実行して、スクリプトの実行ポリシーを確認します。

  6. スクリプトを実行するには、スクリプトの実行ポリシーをRemoteSignedまたはそれ以上(Set-ExecutionPolicy RemoteSignedなど)に設定する必要があります。

  7. モジュール定義ファイルExportPolicy.psd1およびExportXAFarm.psd1をインポートします:

    Import-Module .\ExportPolicy.psd1

    Import-Module .\ExportXAFarm.psd1

    ヒント:

    • 移行するデータがポリシーデータのみの場合は、モジュール定義ファイルExportPolicy.psd1のみをインポートできます。同様に、移行するデータがファームデータのみの場合は、ExportXAFarm.psd1のみをインポートできます。
    • モジュール定義ファイルをインポートすると、必要なPowerShellスナップインも追加されます。
    • スクリプトファイル(.psm1)をインポートしないでください。
  8. Export-Policyコマンドレットを実行して、ポリシーデータをエクスポートします。

    パラメーター 説明
    -XmlOutputFile “.xml" 出力するXMLファイルの名前。このファイルにエクスポートされたデータが記述されます。拡張子として「.xml」を指定する必要があります。既存のファイル名を指定しないでください。ただし、パスを指定する場合は既存のパスを指定してください。デフォルト:None。このパラメーターは必須です。
    -LogFile “" ログファイルの名前です。必要に応じて拡張子を指定します。指定したファイルが存在しない場合は新規に作成されます。ファイルが存在し、-NoClobberパラメーターも指定した場合はエラーが発生します。それ以外の場合は既存のファイルが上書きされます。デフォルト設定については「ログとエラー処理」を参照してください。
    -NoLog ログファイルを生成しません。このパラメーターを指定すると、-LogFileパラメーターが無視されます。デフォルト:false。ログファイルが生成されます。
    -NoClobber -LogFileパラメーターで指定した既存のログファイルの上書きを禁止します。指定したログファイルが存在しない場合、このパラメーターは無視されます。デフォルト:false。既存のログファイルが上書きされます。
    -NoDetails スクリプト実行の詳細なレポートをコンソールに表示しません。デフォルト:false。詳細なレポートがコンソールに表示されます。
    -SuppressLogo メッセージXenApp 6.x to XenApp/XenDesktop 7.6 Migration Tool Version #yyyyMMdd-hhmm#をコンソールに表示しません。このメッセージは、トラブルシューティング時にスクリプトのバージョンを確認する場合に役立ちます。そのため、このパラメーターは省略することをCitrixではお勧めします。デフォルト:false。上記のメッセージがコンソールに表示されます。

    例:次のコマンドレットを実行すると、MyPolicies.xmlという名前のXMLファイルにポリシー情報がエクスポートされます。この処理は、MyPolicies.logという名前のログファイルに記録されます。

    Export-Policy -XmlOutputFile ".\MyPolicies.XML" -LogFile ".\MyPolicies.Log"
    <!--NeedCopy-->
    
  9. Export-XAFarmコマンドレットを実行して、ファームデータをエクスポートします。

パラメーター 説明
-XmlOutputFile “.xml" 出力するXMLファイルの名前。このファイルにエクスポートされたデータが記述されます。拡張子として「.xml」を指定する必要があります。既存のファイル名を指定しないでください。ただし、パスを指定する場合は既存のパスを指定してください。デフォルト:None。このパラメーターは必須です。
-LogFile “" ログファイルの名前です。必要に応じて拡張子を指定します。指定したファイルが存在しない場合は新規に作成されます。ファイルが存在し、-NoClobberパラメーターも指定した場合はエラーが発生します。それ以外の場合は既存のファイルが上書きされます。デフォルト設定については「ログとエラー処理」を参照してください。
-NoLog ログファイルを生成しません。このパラメーターを指定すると、-LogFileパラメーターが無視されます。デフォルト:false。ログファイルが生成されます。
-NoClobber -LogFileパラメーターで指定した既存のログファイルの上書きを禁止します。指定したログファイルが存在しない場合、このパラメーターは無視されます。デフォルト:false。既存のログファイルが上書きされます。
-NoDetails スクリプト実行の詳細なレポートをコンソールに表示しません。デフォルト:false。詳細なレポートがコンソールに表示されます。
-SuppressLogo メッセージXenApp 6.x to XenApp/XenDesktop 7.6 Migration Tool Version #yyyyMMdd-hhmm#をコンソールに表示しません。このメッセージは、トラブルシューティング時にスクリプトのバージョンを確認する場合に役立ちます。そのため、このパラメーターは省略することをCitrixではお勧めします。デフォルト:false。上記のメッセージがコンソールに表示されます。
-IgnoreAdmins 管理者情報をエクスポートから除外します。使用方法については、「高度な使用方法」を参照してください。デフォルト:false。管理者情報がエクスポートされます。
-IgnoreApps アプリケーション情報をエクスポートから除外します。使用方法については、「高度な使用方法」を参照してください。デフォルト:false。アプリケーション情報がエクスポートされます。
-IgnoreServers サーバー情報をエクスポートから除外します。デフォルト:false。サーバー情報がエクスポートされます。
-IgnoreZones ゾーン情報をエクスポートから除外します。デフォルト:false。ゾーン情報がエクスポートされます。
-IgnoreOthers そのほかの情報(構成ログ、負荷評価基準、負荷分散ポリシー、プリンタードライバー、およびワーカーグループ)をエクスポートから除外します。デフォルト:false。前述の情報がエクスポートされます。:このスイッチにより、エクスポートまたはインポートに使用中の実データには影響がないエラーが生じた場合に、エクスポート処理が可能になります。
-AppLimit エクスポートするアプリケーションの数を指定します。使用方法については、「高度な使用方法」を参照してください。デフォルト:すべてのアプリケーションがエクスポートされます。
-EmbedIconData アプリケーションのアイコンデータをXMLファイル内に埋め込みます。デフォルト:アイコンデータは埋め込まれず、別フォルダー内に格納されます。詳しくは、「要件、準備、およびベストプラクティス」を参照してください。
-SkipApps エクスポートを省略するアプリケーションの数を指定します。使用方法については、「高度な使用方法」を参照してください。デフォルト:アプリケーションは省略されません。
Example: The following cmdlet exports farm information to the XML file named MyFarm.xml. The operation is logged to the file MyFarm.log. A folder named "MyFarm-icons" is created to store the application icon data files. This folder is at the same location as MyFarm.XML.

`Export-XAFarm -XmlOutputFile ".\MyFarm.XML" -LogFile ".\MyFarm.Log"`

エクスポートスクリプトの処理が完了すると、コマンドラインで指定したXMLファイルにポリシーとXenAppファームのデータが含まれています。アプリケーションアイコンファイルにはアイコンデータが含まれ、ログファイルにはエクスポート処理の内容が記述されます。

手順:データのインポート

エクスポートしたデータを事前にテストするために、Import-PolicyまたはImport-XAFarmコマンドレットにPreviewパラメーターを指定して実行することができます。その後、実際にインポートを行う前に、ログファイルで内容を確認することができます。

エクスポートで生成されたXMLファイルの情報をXenApp 7.6サイトにインポートするには、次の手順に従います。

  1. サイトに対する読み取り/書き込み権限と、PowerShellスクリプトを実行できるWindows権限を持つ管理者としてXenApp 7.6のControllerにログオンします。

  2. 移行ツールのパッケージXAMigrationをネットワーク上の共有フォルダーに展開します。共有フォルダーのImportFMA.zipをXenApp 7.6のContorllerにコピーします。Controller上のImportFMA.zipを展開し、新規フォルダー(C:\XAMigrationなど)にスクリプトを展開します。

  3. XenApp 6.x ControllerでエクスポートされたXMLファイルを、XenApp 7.6 ControllerのImportFMA.zipの展開先フォルダー(つまりC:\XAMigrationなど)にコピーします。

    Export-XAFarmコマンドレット実行時にアプリケーションのアイコンデータをXMLファイルに埋め込まなかった場合は、XenApp 7.6 Controllerのアプリケーションデータおよび展開したImportFMA.zipファイルが含まれるXMLファイルのコピー先フォルダー(つまりC:\XAMigrationなど)にアイコンデータのフォルダーおよびファイルをコピーします。

  4. PowerShellコンソールを開き、現在のディレクトリをスクリプトの場所に移動します(例:cd C:\XAMigration)。

  5. Get-ExecutionPolicyを実行して、スクリプトの実行ポリシーを確認します。

  6. スクリプトを実行するには、スクリプトの実行ポリシーをRemoteSignedまたはそれ以上(Set-ExecutionPolicy RemoteSignedなど)に設定する必要があります。

  7. PowerShellモジュール定義ファイルImportPolicy.psd1およびImportXAFarm.psd1をインポートします:

    Import-Module .\ImportPolicy.psd1

    Import-Module .\ImportXAFarm.psd1

    ヒント:

    • 移行するデータがポリシーデータのみの場合は、モジュール定義ファイルImportPolicy.psd1のみをインポートできます。同様に、移行するデータがファームデータのみの場合は、ImportXAFarm.psd1のみをインポートできます。
    • モジュール定義ファイルをインポートすると、必要なPowerShellスナップインも追加されます。
    • スクリプトファイル(.psm1)をインポートしないでください。
  8. エクスポートしたポリシーデータが含まれるXMLファイルを指定してImport-Policyコマンドレットを実行して、ポリシーデータをインポートします。

    パラメーター 説明
    -XmlInputFile “.xml" 入力するXMLファイルの名前です。このファイルには、Export-Policyコマンドレットで収集されたデータが記述されています。拡張子.xmlが必要です。デフォルト:None。このパラメーターは必須です。
    -XsdFile “" XSDファイルの名前です。インポートスクリプトでは、このファイルにより入力XMLファイルの構文が検証されます。使用方法については、「高度な使用方法」を参照してください。デフォルト:PolicyData.XSD。
    -LogFile “" ログファイルの名前です。エクスポート時に生成されたログファイルもController上にコピーしてある場合は、異なるログファイル名を指定してください。デフォルト設定については「ログとエラー処理」を参照してください。
    -NoLog ログファイルを生成しません。このパラメーターを指定すると、-LogFileパラメーターが無視されます。デフォルト:false。ログファイルが生成されます。
    -NoClobber -LogFileパラメーターで指定した既存のログファイルの上書きを禁止します。指定したログファイルが存在しない場合、このパラメーターは無視されます。デフォルト:false。既存のログファイルが上書きされます。
    -NoDetails スクリプト実行の詳細なレポートをコンソールに表示しません。デフォルト:false。詳細なレポートがコンソールに表示されます。
    -SuppressLogo メッセージXenApp 6.x to XenApp/XenDesktop 7.6 Migration Tool Version #yyyyMMdd-hhmm#をコンソールに表示しません。このメッセージは、トラブルシューティング時にスクリプトのバージョンを確認する場合に役立ちます。そのため、このパラメーターは省略することをCitrixではお勧めします。デフォルト:false。上記のメッセージがコンソールに表示されます。
    -Preview プレビューインポートを実行します。この処理では、入力XMLファイルからデータが読み込まれますが、サイトへのオブジェクトのインポートは実行されません。プレビューインポートにより、実際のインポートで実行される処理内容がログファイルおよびコンソールに出力されます。これにより、管理者はインポートの問題を事前に解決できます。デフォルト:false。実際のインポートが実行されます。

    例:次のコマンドレットを実行すると、MyPolcies.xmlという名前のXMLファイルからポリシーデータがインポートされます。この処理は、MyPolicies.logという名前のログファイルに記録されます。

    Import-Policy -XmlInputFile ".\MyPolicies.XML"
    -LogFile ".\MyPolicies.Log"
    <!--NeedCopy-->
    
  9. エクスポートしたファームデータが含まれるXMLファイルを指定してImport-XAFarmコマンドレットを実行して、アプリケーションをインポートします。

    パラメーター 説明
    -XmlInputFile “.xml" 入力するXMLファイルの名前です。このファイルには、Export-XAFarmコマンドレットで収集されたデータが記述されています。拡張子として「.xml」を指定する必要があります。デフォルト:None。このパラメーターは必須です。
    -XsdFile “" XSDファイルの名前です。インポートスクリプトでは、このファイルにより入力XMLファイルの構文が検証されます。使用方法については、「高度な使用方法」を参照してください。デフォルト:XAFarmData.XSD。
    -LogFile “" ログファイルの名前です。エクスポート時に生成されたログファイルもController上にコピーしてある場合は、異なるログファイル名を指定してください。デフォルト設定については「ログとエラー処理」を参照してください。
    -NoLog ログファイルを生成しません。このパラメーターを指定すると、-LogFileパラメーターが無視されます。デフォルト:false。ログファイルが生成されます。
    -NoClobber -LogFileパラメーターで指定した既存のログファイルの上書きを禁止します。指定したログファイルが存在しない場合、このパラメーターは無視されます。デフォルト:false。既存のログファイルが上書きされます。
    -NoDetails スクリプト実行の詳細なレポートをコンソールに表示しません。デフォルト:false。詳細なレポートがコンソールに表示されます。
    -SuppressLogo メッセージXenApp 6.x to XenApp/XenDesktop 7.6 Migration Tool Version #yyyyMMdd-hhmm#をコンソールに表示しません。このメッセージは、トラブルシューティング時にスクリプトのバージョンを確認する場合に役立ちます。そのため、このパラメーターは省略することをCitrixではお勧めします。デフォルト:false。上記のメッセージがコンソールに表示されます。
    -Preview プレビューインポートを実行します。この処理では、入力XMLファイルからデータが読み込まれますが、サイトへのオブジェクトのインポートは実行されません。プレビューインポートにより、実際のインポートで実行される処理内容がログファイルおよびコンソールに出力されます。これにより、管理者はインポートの問題を事前に解決できます。デフォルト:false。実際のインポートが実行されます。
    -DeliveryGroupName “" インポートされるすべてのアプリケーションのデリバリーグループです。使用方法については、「高度な使用方法」を参照してください。デフォルト:” -デリバリーグループ”
    -MatchFolder “" にマッチする名前のフォルダー内のアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -NotMatchFolder “" にマッチしない名前のフォルダー内のアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -MatchServer “" にマッチする名前のサーバーからのアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。
    -NotMatchServer “" にマッチしない名前のサーバーからのアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -MatchWorkerGroup “" にマッチする名前のワーカーグループに公開されたアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -NotMatchWorkerGroup “" にマッチしない名前のワーカーグループに公開されたアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -MatchAccount “" にマッチする名前のユーザーアカウントに公開されたアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -NotMatchAccount “" にマッチしない名前のユーザーアカウントに公開されたアプリケーションのみをインポートします。使用方法については、「[高度な使用方法](/ja-jp/xenapp-and-xendesktop/7-15-ltsr/upgrade-migrate/xenapp-worker-upgrade.html)」を参照してください。デフォルト:の指定なし。
    -IncludeStreamedApps アプリケーションの種類StreamedToClientOrServerInstalledをインポートします。(他のストリーミング配信されるアプリケーションはインポートされません。)デフォルト:ストリーミング配信されるアプリケーションはインポートされません。
    -IncludeDisabledApps 無効に設定されたアプリケーションをインポートします。デフォルト:無効に設定されたアプリケーションはインポートされません。

    例:次のコマンドレットを実行すると、MyFarm.xmlという名前のXMLファイルからアプリケーションデータがインポートされます。この処理は、MyFarm.logという名前のログファイルに記録されます。

    Import-XAFarm -XmlInputFile ".\MyFarm.XML"
    -LogFile ".\MyFarm.Log"
    
    <!--NeedCopy-->
    
  10. インポート処理が正しく完了したら、移行後のタスクを行います。

移行後のタスク

XenApp 6.xのポリシーおよびファール設定をXenApp 7.6サイトにインポートしたら、以下のタスクを行ってインポート内容を確認します。

ポリシーおよびポリシーの設定項目

ポリシーのインポートでは、ポリシー情報が単にコピーされます。ただし。廃止予定のポリシーや設定項目はコピーされません。移行後の検証タスクは、本質的に移行前後の比較になります。

  1. ログファイルには、インポートされたり無視されたりしたすべてのポリシーおよび設定項目が記録されます。まず、ログファイルを参照してインポートされなかったポリシーおよび設定項目を確認します。

  2. XenApp 6.xのポリシーとXenApp 7.6にインポートされたポリシーを比較します。同じ設定値を保持します(次の手順で説明する廃止予定の設定項目を除く)。

    • 移行したポリシーの数が多くない場合は、XenApp 6.xのAppCenterとXenApp 7.6のStudioの両方でポリシーを並べて表示して視覚的に比較できます。
    • ポリシーの数が多い場合、視覚的に比較することは困難です。この場合、ポリシーのエクスポートコマンドレット(Export-Policy)を使用してXenApp 7.6のポリシーを別名のXMLファイルにエクスポートして、テキストファイルの比較ツール(windiffなど)を使用してXenApp 6.xからエクスポートしたファイルと比較します。
  3. インポートされないポリシー設定」セクションを参照して、インポート時に変更された可能性のある設定項目を確認します。XenApp 6.xのポリシーに廃止予定の設定項目のみが含まれる場合、そのポリシーはインポートされません。たとえば、XenApp 6.xで[サーバーヘルス監視テスト]設定のみが構成されたポリシーがある場合、対応する設定項目がXenApp 7.6にないため、そのポリシーは無視されます。

    一部のXenApp 6.xポリシー設定はサポートされなくなりましたが、同等の機能がXenApp 7.6に実装されています。たとえば、XenApp 7.6では、デリバリーグループを編集してサーバーOSマシンの再起動スケジュールを構成できます。この機能は、以前はポリシー設定で実装されていました。

  4. XenApp 7.6サイトとXenApp 6.xファームでのポリシーの適用フィルターの動作について確認します。XenApp 6.xファームとXenApp 7.6サイトとの差異が大きい場合、フィルターの効果に差がでることがあります。

フィルター

各ポリシーに適用されるフィルター(割り当て先)を慎重に確認してください。XenApp 6.xでの元のフィルター設定がXenApp 7.6でも正しく適用するようにするには、設定の変更が必要になる場合があります。

フィルター 注意事項
アクセス制御 通常は、XenApp 6.xからインポートしたアクセス制御フィルターには元の設定と同じ値が適用されており、変更は不要です。
Citrix CloudBridge 単純なブール値。通常は変更は不要です。(この製品は現在NetScaler SD-WANと呼ばれています。)
クライアントIPアドレス クライアントIPアドレス範囲の一覧表示。範囲ごとに、許可または禁止に設定されます。インポートしたフィルターには元の設定と同じ値が適用されていますが、XenApp 7.6のVDAマシンに接続するクライアントが異なる場合は変更が必要です。
クライアント名 クライアントのIPアドレスと同様、インポートしたフィルターには元の設定と同じ値が適用されていますが、XenApp 7.6のVDAマシンに接続するクライアントが異なる場合は変更が必要です。
組織単位 インポート時に組織単位の解決が可能な場合は元の設定と同じ値が保持されます。特にXenApp 6.xとXenApp 7.6のマシンが異なるドメインに属している場合は、このフィルターの内容を確認してください。適切な値が設定されていない場合、ポリシーが不正な組織単位に適用されてしまいます。組織単位は名前でのみ解決されます。このため、XenApp 6.xドメインの組織単位とは異なるメンバーシップを持つ組織単位に解決される可能性もあります。組織単位フィルターのいくつかの値が保持されている場合も、すべての値を確認してください。
ユーザーまたはグループ インポート時にアカウントの解決が可能な場合は元の設定と同じ値が保持されます。組織単位フィルターと同様、アカウントは名前でのみ解決されます。このため、XenApp 7.6サイトに同名のドメインおよびユーザーが存在する場合、XenApp 6.xドメインのユーザーとは異なるユーザーに解決される場合があります。フィルターの値を確認して適切に変更しないと、ポリシーが不正なアカウントに適用されてしまいます。
ワーカーグループ XenApp 7.6では、ワーカーグループはサポートされません。XenApp 7.6サイトでは、デリバリーグループ、デリバリーグループの種類、およびタグを使用してポリシーを割り当ててください(これらのフィルターはXenApp 6.xでは使用できません)。デリバリーグループ: ポリシーを適用するデリバリーグループを指定します。このフィルターでは、既存のデリバリーグループを選択して許可または禁止を指定します。デリバリーグループの種類: ポリシーを適用するデリバリーグループの種類を指定します。このフィルターでは、デリバリーグループの種類を選択して許可または禁止を指定します。タグ: ポリシーを適用するVDAマシンのタグを指定します。このフィルターでは、既存のタグを選択して許可または禁止を指定します。

XenApp 6.xファームとXenApp 7.6サイトのドメインが異なる場合は、特にドメインユーザーの変更による影響を受けるフィルターについて詳細に確認してください。インポートスクリプトでは、ドメインやユーザーの名前が文字列でのみ解決され、移行先ドメインのユーザーが決定されます。このため、一部のアカウントのみが解決されます。異なるドメインでドメイン名やユーザー名が同一であることはまれですが、これらのフィルターの値が正しく移行されていることを確認してください。

アプリケーション

アプリケーションインポートスクリプトは、アプリケーションをインポートするだけではありません。デリバリーグループなどのオブジェクトも作成されます。アプリケーションを複数回に分けてインポートすると、元のアプリケーションフォルダーの構造が大幅に変更されている場合があります。

  1. まず、移行ログファイルを確認して、インポートおよび除外されたアプリケーションと、アプリケーションの作成に使用されたコマンドレットの詳細を確認します。
  2. 各アプリケーションについて、以下を確認します。
    • 基本的なプロパティが正しく保持されていることを視覚的に確認します。「アプリケーションプロパティの対応」セクションを参照して、変更されずにインポートされるプロパティ、インポートから除外されるプロパティ、またはXenApp 6.xのアプリケーションデータで初期化されるプロパティについて確認します。
    • ユーザーの一覧を確認します。インポートスクリプトにより、指定ユーザーの一覧がXenApp 7.6の「表示の制限」のユーザー一覧としてインポートされます。この一覧で各ユーザーが正しく保持されていることを確認してください。
  3. アプリケーションサーバーはインポートされません。このため、インポートした直後のアプリケーションにユーザーがアクセスすることはできません。ユーザーがアクセスできるようにするには、これらのアプリケーションを含んでいるデリバリーグループを、アプリケーションの実行可能イメージを含んでいるマシンカタログに割り当てる必要があります。各アプリケーションについて、以下を確認します。
    • 実行可能ファイルの名前と作業ディレクトリが、そのデリバリーグループのマシンカタログで割り当てられているマシン上に存在すること。
    • コマンドラインパラメーター(ファイル名、環境変数、または実行可能ファイル名など)を確認します。そのデリバリーグループのマシンカタログで割り当てられているすべてのマシン上で、それらのパラメーターが有効である必要があります。

ログファイル

ログファイルには、エクスポートおよびインポートの処理に関する重要な情報が記録されています。既存のログファイルがデフォルトで上書きされず、固有のファイル名で生成される仕様になっているのはこのためです。

前の「ログとエラー処理」で説明したように、PowerShellのStart-TranscriptコマンドレットおよびStop-Transcriptコマンドレットを使って入出力のすべてを記録する場合は、その記録とログファイルを参照することでエクスポートおよびインポートの詳細を確認することができます。

ログファイルに記録されるタイムスタンプは、特定の問題について診断するときに便利です。たとえば、エクスポートまたはインポートに時間がかかった場合は、データベース接続に問題があったかどうか、またはユーザーアカウントの解決に時間がかかったのかどうかを確認できます。

ログファイルに記録されたコマンドにより、移行するオブジェクトがどのように読み取られ、作成されたかを判断できます。たとえば、デリバリーグループを作成するときにはいくつかのコマンドにより、デリバリーグループオブジェクトだけでなく、そのデリバリーグループにアプリケーションオブジェクトを割り当てるためのアクセスポリシー規則などのオブジェクトも作成されます。

エクスポートやインポートに失敗した場合もログファイルが役に立ちます。通常、ログファイルの最後の行を参照すると問題の原因が判断できます。ログファイルには、エラーメッセージも記録されます。XMLファイルとログファイルを参照して、問題発生時に処理されていたオブジェクトを特定できます。

移行内容を確認してテストした後で、以下のタスクを行います。

  1. XenApp 6.5のワーカーサーバーを最新のVirtual Delivery Agent(VDA)にアップグレードします。これを行うには、ワーカーサーバー上でXenApp 7.6のインストーラーを実行します。これにより、XenApp 6.5がアンインストールされ、最新のVDAがインストールされます。手順については、「XenApp 6.5ワーカーのVDA for Windows Server OSへのアップグレード」を参照してください。

    XenApp 6.0のワーカーサーバーでは、手作業でXenApp 6.0をアンインストールします。その後でXenApp 7.6のインストーラーを使用して最新のVDAをインストールします。XenApp 7.6のインストーラーを実行してXenApp 6.0をアンインストールすることはできません。

  2. 新しいXenAppサイトのStudioを使用して、そのワーカーのマシンカタログを作成(または既存のマシンカタログを編集)します。

  3. そのマシンカタログを使用してデリバリーグループを作成し、アップグレードしたマシンおよびそれらのマシン上のアプリケーションをユーザーに提供します。

高度な使用方法

デフォルトでは、Export-PolicyコマンドレットによりすべてのポリシーデータがXMLファイルにエクスポートされます。同様に、Export-XAFarmコマンドレットによりすべてのファームデータがXMLファイルにエクスポートされます。ここでは、コマンドラインパラメーターを使用してエクスポートおよびインポートするオブジェクトを制御する方法について説明します。

一部のアプリケーションのみをエクスポートする

移行するアプリケーションの数が多い場合は、1つのXMLファイルにエクスポートするアプリケーションの数を制御できます。これを行うには、以下のパラメーターを使用します:

  • AppLimit - エクスポートするアプリケーションの数を指定します。
  • SkipApps - 指定した数のアプリケーションのエクスポートが省略され、その数以降のアプリケーションからエクスポートされます。

これらのパラメーターを使用して、アプリケーションをいくつかのグループに分けてエクスポートできます。たとえば、1回目のExport-XAFarmの実行時に最初の200個のアプリケーションをエクスポートするには、AppLimitパラメーターを次のように指定します。

Export-XAFarm -XmlOutputFile "Apps1-200.xml"
-AppLimit "200"
<!--NeedCopy-->

2回目のExport-XAFarmの実行時に残りのアプリケーションのうちの100個をエクスポートするとします。そのためには、エクスポート済みの最初の200個のアプリケーションをエクスポートから除外するためのSkipAppsパラメーターと、その後の100個をエクスポートするためのAppLimitパラメーターを次のように指定します。

Export-XAFarm -XmlOutputFile "Apps201-300.xml"
-AppLimit "100" -SkipApps "200"
<!--NeedCopy-->

エクスポートから除外するオブジェクトを指定する

インポートされないオブジェクトなど、一部のオブジェクトはエクスポート時に無視されます。「インポートされないポリシー設定」および「アプリケーションプロパティの対応」を参照してください。以下のパラメーターを使用すると、特定の種類のオブジェクトをエクスポートから除外できます:

  • IgnoreAdmins - 管理者オブジェクトをエクスポートから除外します。
  • IgnoreServers - サーバーオブジェクトをエクスポートから除外します。
  • IgnoreZones - ゾーンオブジェクトをエクスポートから除外します。
  • IgnoreOthers - そのほかのオブジェクト(構成ログ、負荷評価基準、負荷分散ポリシー、プリンタードライバー、ワーカーグループ)をエクスポートから除外します。
  • IgnoreApps - アプリケーションをエクスポートから除外します。このパラメーターを使用すると、アプリケーション以外のデータとアプリケーションを別のXMLファイルにエクスポートする場合に使用します。

これらのパラメーターは、エクスポート時の問題を回避するときに使用することもできます。たとえば、ゾーン内に不適切なサーバーがあるとエクスポートが失敗する場合があります。この場合は、IgnoreZonesパラメーターを使用してほかのオブジェクトをエクスポートできます。

デリバリーグループ名

インポートするアプリケーションを複数のデリバリーグループ内に分けて追加する場合(異なるユーザーグループに提供する場合や異なるサーバーグループで公開する場合など)、Import-XAFarmコマンドレットを複数に分けて実行し、異なるアプリケーションとデリバリーグループを指定します。移行後にPowerShellコマンドレットを使ってアプリケーションをほかのデリバリーグループに移動することもできますが、インポート時にデリバリーグループを指定しておくと、後でアプリケーションを移動する手間が省けます。

  • DeliveryGroupNameパラメーターを指定してImport-XAFarmコマンドレットを実行します。これにより、指定されたデリバリーグループが存在しない場合は作成されます。
  • 以下のパラメーターで正規表現を使用して、アプリケーションを特定のフォルダー、ワーカーグループ、ユーザーアカウント、サーバー名に基づいて特定のデリバリーグループにインポートします。正規表現の部分を引用符または二重引用符で囲むことをお勧めします。正規表現について詳しくは、https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expressionsを参照してください。

    • MatchWorkerGroupおよびNotMatchWorkerGroup - たとえば、ワーカーグループに公開されたアプリケーションに対して次のコマンドレットを実行すると、Productivity Appsという名前のワーカーグループ内のアプリケーションがXenApp 7.6の同じ名前のデリバリーグループにインポートされます。

       Import-XAFarm –XmlInputFile XAFarm.xml –LogFile XAFarmImport.log –MatchWorkerGroup ‘Productivity Apps’ –DeliveryGroupName ‘Productivity Apps
       <!--NeedCopy-->
      
    • MatchFolderおよびNotMatchFolde - たとえば、アプリケーションフォルダーで分類されたアプリケーションに対して次のコマンドレットを実行すると、Productivity Appsという名前のフォルダー内のアプリケーションがXenApp 7.6の同じ名前のデリバリーグループにインポートされます。

       Import-XAFarm –XmlInputFile XAFarm.xml –LogFile XAFarmImport.log –MatchFolder ‘Productivity Apps’ –DeliveryGroupName ‘Productivity Apps’
       <!--NeedCopy-->
      

      たとえば、次のコマンドレットを実行すると、MS Office Appsという文字列を含んでいる名前のフォルダーからすべてのアプリケーションがデフォルトのデリバリーグループにインポートされます。

       Import-XAFarm -XmlInputFile .\THeFarmApps.XML -MatchFolder ".\*/MS Office Apps/.\*"
       <!--NeedCopy-->
      
    • MatchAccountおよびNotMatchAccount- たとえば、Active Directoryのユーザーまたはユーザーグループに公開されたアプリケーションに対して次のコマンドレットを実行すると、Finance Groupという名前のユーザーグループに公開されたアプリケーションがXenApp 7.6のFinance.という名前のデリバリーグループにインポートされます。

       Import-XAFarm –XmlInputFile XAFarm.xml –LogFile XAFarmImport.log –MatchAccount ‘DOMAIN\Finance Group’ –DeliveryGroupName ‘Finance’
       <!--NeedCopy-->
      
    • MatchServerおよびNotMatchServer - たとえば、サーバー単位で公開されたアプリケーションに対して次のコマンドを実行すると、名前がCurrentでないサーバーに関連付けられたアプリケーションがLegacy.という名前のXenAppデリバリーグループにインポートされます。

       Import-XAFarm -XmlInputFile XAFarm.xml -LogFile XAFarmImport.log -NotMatchServer 'Current' -DeliveryGroupName 'Legacy'
       <!--NeedCopy-->
      

カスタマイズ

PowerShellのプログラミング知識がある場合は、カスタムのツールを作成できます。たとえば、エクスポートスクリプトをインベントリツールとして使用して、XenApp 6.xファームの変更履歴を追跡できます。また、XSDファイルを編集したり新しく作成したりして、XMLファイルに記述されるデータを追加したり、記述形式を変更したりできます。各インポートコマンドレットに非デフォルトのXSDファイルを指定できます。

特定の移行要件に応じてスクリプトファイルを編集することができますが、その場合はサポート対象外になります。Citrixのテクニカルサポートは、スクリプトを元の状態に戻したうえで正しい動作を確認することをお推奨し、必要な場合サポートを提供します。

トラブルシューティング

  • PowerShell Verison 2.0を使用する環境で、Add-PSSnapInコマンドレットを使用してCitrix Group Policy PowerShellプロバイダースナップインまたはCitrix Common Commandsスナップインを追加した場合、エクスポートまたはインポートコマンドレットの実行時にObject reference not set to an instance of an objectというエラーメッセージが表示されることがあります。このエラーメッセージはスクリプトの実行に影響せず、無視して構いません。
  • Citrix Group Policy PowerShellプロバイダースナップインはエクスポートおよびインポートのスクリプトモジュールにより自動的に追加されるため、これらのスクリプトモジュールを使用するコンソールセッション上にこのスナップインを追加したり削除したりすることは避けてください。このスナップインを事前に追加したり削除したりすると、以下のエラーメッセージが表示されることがあります。

    • A drive with the name 'LocalGpo' already exists. このエラーメッセージは、スナップインを2回追加すると表示されます。スナップインのロード時にドライブ「LocalGpo」のマウントが試行されるため、このメッセージが表示されます。
    • A parameter cannot be found that matches parameter name 'Controller'. このエラーメッセージは、スナップインが追加されていないにもかかわらずドライブのマウントが試行されると表示されます。この問題は、スナップインが事前に削除されていると発生します。コンソールを閉じて新しいセッションを起動してください。新しいセッションでスクリプトモジュールをインポートします。事前にスナップインを追加したり削除したりしないでください。
  • モジュールをインポートする場合、.psd1ファイルを右クリックして [開く] または [PowerShellで開く] を選択するとすぐにPowerShellコンソールウィンドウが開き、プロセスを停止する場合に閉じることができます。この問題を防ぐには、PowerShellコンソールのウィンドウにPowerShellスクリプトモジュールの名前を直接入力してください(「Import-Module .\ExportPolicy.psd1」など)。
  • エクスポートまたはインポートの実行時にアクセス権に関するエラーが発生した場合は、オブジェクトの読み取り権限(エクスポート時)または読み取りおよび作成権限(インポート)を持つXenApp管理者アカウントを使用していることを確認してください。また、PowerShellスクリプトを実行するためのWindows権限も必要です。
  • エクスポートに失敗した場合は、XenApp 6.xファームのヘルス状態が良好であることを確認してください。これを行うには、XenApp 6.x Controllerのサーバー上でDSMAINTおよびDSCHECKコマンドを使用します。
  • プレビューインポートを実行した後で実際のインポートを実行しても何もインポートされない場合は、インポートコマンドレットから-Previewパラメーターを削除したことを確認してください。

インポートされないポリシー設定

以下のコンピューターポリシー設定とユーザーポリシー設定は、サポートされていないためインポートされません。フィルターを適用していないポリシーはインポートされません。これらの設定項目をサポートする機能やコンポーネントが新しいテクノロジやコンポーネントに置き換えられたか、アーキテクチャやプラットフォームの変更によって適用されなくなりました。

インポートされないコンピューターポリシー設定

  • 接続のアクセス制御
  • サーバーの CPU 最適化レベル
  • DNS アドレス解決
  • ファーム名
  • アイコンの完全キャッシュ
  • サーバーヘルス監視、サーバーヘルス監視テスト
  • ライセンスサーバーのホスト名、ライセンスサーバーポート
  • ユーザーセッションの制限、管理者アカウントの接続も制限する
  • 負荷評価基準名
  • ログオン数制限のログ
  • ログオン制御できる最大サーバー数(%)
  • メモリの最適化、メモリ最適化のアプリケーション除外一覧、メモリの最適化の間隔、メモリの最適化のスケジュール:月間、メモリの最適化のスケジュール:週間、メモリの最適化のスケジュール:時間
  • オフラインアプリケーションへの再認証なしでの再接続、オフラインアプリケーションのログ、オフラインライセンスの有効期間、オフラインアプリケーションユーザー
  • パスワードを要求する
  • カスタムの再起動警告、カスタムの再起動警告メッセージ、再起動前のログオンの無効化、再起動スケジュールの頻度、再起動スケジュールのランダム化間隔、再起動スケジュールの開始日、再起動スケジュールの時間、再起動警告の間隔、再起動警告の開始時間、ユーザーへの再起動警告、スケジュールによる再起動
  • シャドウ機能 *
  • XML要求を信頼する(StoreFrontで構成)
  • 仮想IPアダプターアドレスフィルター、仮想IP互換プログラム一覧、仮想IP拡張互換性、仮想IPアダプターアドレスフィルタープログラム一覧
  • ワークロード名
  • XenApp製品エディション、XenApp製品モデル
  • XML Service のポート

* Windowsリモートアシスタンス機能に置き換えられています

インポートされないユーザーポリシー設定

  • クライアントCOMポートを自動接続する、クライアントLPTポートを自動接続する
  • クライアントCOMポートリダイレクト、クライアントLPTポートリダイレクト
  • クライアントプリンター名
  • 同時接続数の制限
  • シャドウする側からの入力 *
  • 残留セッションの切断タイマー、残留セッションの終了タイマー
  • シャドウイベントをログに記録する *
  • シャドウ要求をシャドウされる側のユーザーに通知する *
  • 事前起動セッションの切断タイマー、事前起動セッションの終了タイマー
  • セッションの重要度
  • Single Sign-On、Single Sign-On中央ストア
  • ほかのユーザーをシャドウできるユーザー、ほかのユーザーをシャドウできないユーザー *

* Windowsリモートアシスタンス機能に置き換えられています

インポートされないアプリケーションの種類

以下の種類のアプリケーションはインポートされません。

  • サーバーのデスクトップ
  • コンテンツ
  • ストリーム配信アプリケーション(アプリケーションのストリーム配信にはApp-Vを使用します)

アプリケーションプロパティの対応

ファームデータのインポートスクリプトでは、アプリケーションのみがインポートされます。以下のアプリケーションプロパティは変更されずにインポートされます。

IMAのプロパティ FMAのプロパティ
AddToClientDesktop ShortcutAddedToDesktop
AddToClientStartMenu ShortcutAddedToStartMenu
ClientFolder ClientFolder
CommandLineExecutable CommandLineExecutable
CpuPriorityLevel CpuPriorityLevel
説明 説明
DisplayName PublishedName
有効 有効
StartMenuFolder StartMenuFolder
WaitOnPrinterCreation WaitForPrinterCreation
WorkingDirectory WorkingDirectory
FolderPath AdminFolderName

IMAとFMAでは、フォルダー名の長さの制限が異なります。IMAでのフォルダー名は256文字以下、FMAでは64文字以下である必要があります。フォルダーパスに64文字を超えるフォルダー名が含まれる場合、そのフォルダー内のアプリケーションはインポートされません。この制限はフォルダーパスに含まれるフォルダー名に対するものです。フォルダーパス全体ではこの制限より長くなることがあります。アプリケーションが正しくインポートされるように、アプリケーションのフォルダー名の長さを確認し、必要な場合は短くしてからエクスポートしてください。

以下のアプリケーションプロパティには、デフォルトで初期化されるものと初期化されないものがあります。また、XenApp 6.xのデータで指定された値が設定されるものもあります。

FMAのプロパティ
名前 フルパス名に初期化されます。フルパスには、IMAプロパティのFolderPathおよびDisplayNameが含まれ、先頭の「Applications\」の部分は削除されます。
ApplicationType HostedOnDesktop
CommandLineArguments XenApp 6.xのコマンドライン引数で初期化されます。
IconFromClient 初期化されずにデフォルト値のfalseになります。
IconUid XenApp 6.xアイコンデータで作成されたアイコンオブジェクトに初期化されます。
SecureCmdLineArgumentsEnabled 初期化されずにデフォルト値のtrueになります。
UserFilterEnabled 初期化されずにデフォルト値のfalseになります。
UUID 読み取り専用でControllerにより割り当てられます。
Visible 初期化されずにデフォルト値のtrueになります。

以下のアプリケーションプロパティは、一部のみ移行されます。

IMAのプロパティ コメント
FileTypes 新しいXenAppサイトに存在するファイルタイプのみが移行されます。新しいサイトに存在しないファイルタイプは無視されます。ファイルタイプは、新しいサイトのファイルタイプが更新された後でインポート可能になります。
IconData エクスポートされたアプリケーションのアイコンデータが提供されている場合は新しいアイコンオブジェクトが作成されます。
アカウント アプリケーションのユーザーアカウントはデリバリーグループとアプリケーションのユーザー一覧に分類されます。指定ユーザーのアカウントはアプリケーションのユーザー一覧を初期化するために使用されます。さらに、ユーザーアカウントが属するドメインのDomain Usersアカウントがデリバリーグループのユーザー一覧に追加されます。

以下のXenApp 6.xプロパティはインポートされません。

IMAのプロパティ コメント
ApplicationType 無視されます。
HideWhenDisabled 無視されます。
AccessSessionConditions デリバリーグループのアクセスポリシーに置き換えられます。
AccessSessionConditionsEnabled デリバリーグループのアクセスポリシーに置き換えられます。
ConnectionsThroughAccessGatewayAllowed デリバリーグループのアクセスポリシーに置き換えられます。
OtherConnectionsAllowed デリバリーグループのアクセスポリシーに置き換えられます。
AlternateProfiles FMAはストリーム配信アプリケーションをサポートしません。
OfflineAccessAllowed FMAはストリーム配信アプリケーションをサポートしません。
ProfileLocation FMAはストリーム配信アプリケーションをサポートしません。
ProfileProgramArguments FMAはストリーム配信アプリケーションをサポートしません。
ProfileProgramName FMAはストリーム配信アプリケーションをサポートしません。
RunAsLeastPrivilegedUser FMAはストリーム配信アプリケーションをサポートしません。
AnonymousConnectionsAllowed 認証が不要なユーザー(匿名ユーザー)の接続は、FMAでは別の方法でサポートされています。
ApplicationId、SequenceNumber IMA固有のデータです。
AudioType FMAはクライアント接続の詳細オプションをサポートしません。
EncryptionLevel SecureICAの有効/無効はデリバリーグループで設定します。
EncryptionRequired SecureICAの有効/無効はデリバリーグループで設定します。
SslConnectionEnabled FMAでは別の方法でTLSが実装されています。
ContentAddress FMAは公開コンテンツをサポートしません。
ColorDepth FMAはウィンドウ表示の詳細オプションをサポートしません。
MaximizedOnStartup FMAはウィンドウ表示の詳細オプションをサポートしません。
TitleBarHidden FMAはウィンドウ表示の詳細オプションをサポートしません。
WindowsType FMAはウィンドウ表示の詳細オプションをサポートしません。
InstanceLimit FMAはアプリケーション数の制限をサポートしません。
MultipleInstancesPerUserAllowed FMAはアプリケーション数の制限をサポートしません。
LoadBalancingApplicationCheckEnabled 負荷分散は、FMAでは別の方法でサポートされています。
PreLaunch セッションの事前起動は、FMAでは別の方法でサポートされています。
CachingOption セッションの事前起動は、FMAでは別の方法でサポートされています。
ServerNames FMAでは別の方法が使用されています。
WorkerGroupNames FMAはワーカーグループをサポートしません。
XenApp 6.xからの移行