StoreFront構成のエクスポートとインポート
注:
インポートできるStoreFront構成は、ターゲットのStoreFrontインストールと同じStoreFrontバージョンであるものに限られます。
StoreFront展開の構成全体をエクスポートできます。これには、単一サーバー展開とサーバーグループ構成の両方が含まれます。インポート先のサーバーに既存の展開がすでに存在する場合、現在の構成は消去され、バックアップアーカイブに含まれる構成に置き換えられます。ターゲットサーバーが工場出荷時のクリーンなインストールである場合、バックアップに保存されているインポートされた構成を使用して新しい展開が作成されます。エクスポートされた構成バックアップは、暗号化されていない場合は単一の.zipアーカイブ形式、バックアップファイルの作成時に暗号化を選択した場合は.ctxzip形式になります。
構成のエクスポートとインポートが使用できるシナリオ
- 動作中の信頼できる状態にあるStoreFront展開のみをバックアップします。構成に変更を加える場合は、古いバックアップを置き換えるために新しいバックアップを作成する必要があります。バックアップ.zipファイルのファイルハッシュが変更を防止するため、既存のバックアップを変更することはできません。
- 災害復旧のためにStoreFrontをアップグレードする前にバックアップします。
- 既存のテスト用StoreFront展開をクローンして本番環境に移行します。
- 本番展開をテスト環境にクローンしてユーザー受け入れ環境を作成します。
- Windows Server 2019からWindows 2022へのホスティングのアップグレードなど、OS移行中にStoreFrontを移動します。インプレースOSアップグレードはサポートされていません。
- 複数のデータセンターを持つ大規模企業など、マルチジオ展開で追加のサーバーグループを構築します。
StoreFront構成のエクスポートとインポートに関する考慮事項
- 現在、Citrix®が公開している認証SDKの例(Magic Word認証やサードパーティ認証のカスタマイズなど)を使用していますか。その場合、追加の認証方法を含む構成をインポートする前に、すべてのインポート先サーバーにこれらのパッケージをインストールする必要があります。必要な認証SDKパッケージがインポート先サーバーのいずれにもインストールされていない場合、構成のインポートは失敗します。構成をサーバーグループにインポートする場合は、グループのすべてのメンバーに認証パッケージをインストールしてください。
- 構成バックアップを暗号化または復号化できます。エクスポートおよびインポートのPowerShellコマンドレットは、両方のユースケースをサポートしています。
- 暗号化されたバックアップ(.ctxzip)は後で復号化できますが、StoreFrontは暗号化されていないバックアップファイル(.zip)を再暗号化することはできません。暗号化されたバックアップが必要な場合は、選択したパスワードを含むPowerShell資格情報オブジェクトを使用してエクスポートを再度実行してください。
- StoreFrontが現在インストールされているIIS内のWebサイトのSiteID(エクスポート元サーバー)は、バックアップされたStoreFront構成を復元するIIS内のターゲットWebサイトのSiteID(インポート先サーバー)と一致する必要があります。
PowerShellコマンドレット
Export-STFConfiguration
| パラメーター | 説明 |
|---|---|
| -TargetFolder (String) | バックアップアーカイブへのエクスポートパス。例: “$env:userprofile\desktop\” |
| -Credential (PSCredential Object) | エクスポート中に暗号化された.ctxzipバックアップアーカイブを作成するための資格情報オブジェクトを指定します。PowerShell資格情報オブジェクトには、暗号化と復号化に使用するパスワードが含まれている必要があります。-Credentialを-NoEncryptionパラメーターと同時に使用しないでください。例: $CredObject |
| -NoEncryption (Switch) | バックアップアーカイブが暗号化されていない.zipであることを指定します。-NoEncryptionを-Credentialパラメーターと同時に使用しないでください。 |
| -ZipFileName (String) | StoreFront構成バックアップアーカイブの名前。ファイル拡張子(.zipや.ctxzipなど)は追加しないでください。ファイル拡張子は、エクスポート時に-Credentialまたは-NoEncryptionパラメーターが指定されているかどうかに応じて自動的に追加されます。例: “backup” |
| -Force (Boolean) | このパラメーターは、指定されたエクスポート場所にすでに存在する既存のバックアップファイルと同じファイル名を持つバックアップアーカイブを自動的に上書きします。 |
重要:
StoreFront 3.5にあったSiteIDパラメーターは、バージョン3.6で非推奨になりました。バックアップアーカイブに含まれるSiteIDが常に使用されるため、インポート時にSiteIDを指定する必要はなくなりました。SiteIDが、インポート先サーバーのIIS内にすでに構成されている既存のStoreFront Webサイトと一致していることを確認してください。SiteID 1からSiteID 2への構成インポートはサポートされていません。
Import-STFConfiguration
| パラメーター | 説明 |
|---|---|
| -ConfigurationZip (String) | インポートするバックアップアーカイブへのフルパス。これにはファイル拡張子も含まれている必要があります。暗号化されていない場合は.zip、暗号化されている場合は.ctxzipを使用します。例: $env:userprofile\desktop\backup.ctxzip
|
| -Credential (PSCredential Object) | インポート中に暗号化されたバックアップを復号化するための資格情報オブジェクトを指定します。例: $CredObject
|
| -HostBaseURL (String) | このパラメーターが含まれている場合、指定したホストベースURLは、エクスポート元サーバーのホストベースURLの代わりに使用されます。例: https://<importingserver>.example.com
|
Unprotect-STFConfigurationBackup
| パラメーター | 説明 |
|---|---|
| -TargetFolder (String)
-Credential (PSCredential Object) |
バックアップアーカイブへのエクスポートパス。例: $env:userprofile\desktop
このパラメーターを使用して、暗号化されたバックアップアーカイブの暗号化されていないコピーを作成します。復号化に使用するパスワードを含むPowerShell資格情報オブジェクトを指定します。例: $CredObject
|
| -EncryptedConfigurationZip (String) | 復号化する暗号化されたバックアップアーカイブのフルパス。ファイル拡張子.ctxzipを指定する必要があります。例: $env:userprofile\\desktop\\backup.ctxzip
|
| -OutputFolder (String)
-Force (Boolean) |
暗号化された(.ctxzip)バックアップアーカイブの暗号化されていない(.zip)コピーを作成するパス。元の暗号化されたバックアップのコピーは再利用できるように保持されます。暗号化されていないコピーのファイル名とファイル拡張子は指定しないでください。例: $env:userprofile\desktop
このパラメーターは、指定されたエクスポート場所にすでに存在する既存のバックアップファイルと同じファイル名を持つバックアップアーカイブを自動的に上書きします。 |
構成のエクスポートとインポートの例
現在のPowerShellセッションへのStoreFrontコマンドレットのインポート
StoreFrontサーバーでPowerShell Integrated Scripting Environment (ISE) を開き、以下を実行します。
$env:PSModulePath = [Environment]::GetEnvironmentVariable('PSModulePath','Machine')
$SDKModules = 'C:\Program Files\Citrix\Receiver StoreFront\PowerShellSDK\Modules\Citrix.StoreFront'
Import-Module "$SDKModules\Citrix.StoreFront.psd1" -verbose
Import-Module "$SDKModules.Authentication\Citrix.StoreFront.Authentication.psd1" -verbose
Import-Module "$SDKModules.Roaming\Citrix.StoreFront.Roaming.psd1" -verbose
Import-Module "$SDKModules.Stores\Citrix.StoreFront.Stores.psd1" -verbose
Import-Module "$SDKModules.WebReceiver\Citrix.StoreFront.WebReceiver.psd1" -verbose
<!--NeedCopy-->
単一サーバーのシナリオ
既存の構成の暗号化されていないバックアップをサーバーAで作成し、同じ展開に復元
バックアップするサーバーの構成をエクスポートします。
Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -NoEncryption
<!--NeedCopy-->
backup.zipファイルを安全な場所にコピーします。このバックアップは、災害復旧のためにサーバーを以前の状態に復元するために使用できます。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -HostBaseURL "https://storefront.example.com"
<!--NeedCopy-->
既存の構成をサーバーAでバックアップし、サーバーBに復元して既存のサーバーのクローンを作成
バックアップするサーバーの構成をエクスポートします。
Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -NoEncryption
<!--NeedCopy-->
backup.zipファイルをサーバーBのデスクトップにコピーします。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -HostBaseURL "https://serverB.example.com"
<!--NeedCopy-->
StoreFrontがIISのカスタムWebサイトにすでに展開されている場合の、別のカスタムWebサイト展開への構成の復元
サーバーAには、通常のIIS内のデフォルトWebサイトではなく、カスタムWebサイトの場所にStoreFrontが展開されています。IISで作成された2番目のWebサイトのIIS SiteIDは2です。StoreFront Webサイトの物理パスは、d:\などの別の非システムドライブ上、またはデフォルトのc:\システムドライブ上にある可能性がありますが、IIS SiteIDは1より大きいものを使用する必要があります。
IIS内にStoreFrontという新しいWebサイトが構成されており、SiteID = 2を使用しています。StoreFrontは、物理パスがd:\inetpub\wwwrootにあるIISのカスタムWebサイトにすでに展開されています。

- サーバーAの構成のコピーをエクスポートします。
- サーバーBで、IISにStoreFrontという新しいWebサイトを構成し、これもSiteID 2を使用します。
-
サーバーAの構成をサーバーBにインポートします。バックアップに含まれるサイトIDが使用され、StoreFront構成をインポートするターゲットWebサイトと一致する必要があります。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://serverB.example.com" <!--NeedCopy-->
サーバーグループのシナリオ
シナリオ1: 既存のサーバーグループ構成をバックアップし、後で同じサーバーグループ展開に復元
以前の構成バックアップは、2台のStoreFrontサーバー(2012R2-Aと2012R2-B)のみがサーバーグループのメンバーであったときに取得されました。バックアップアーカイブ内には、バックアップが取得された時点のCitrixClusterMembershipの記録があり、元の2台のサーバー2012R2-Aと2012R2-Bのみが含まれています。StoreFrontサーバーグループ展開は、ビジネス需要により元のバックアップが取得されて以来、サイズが増加しており、追加のノード2012R2-Cがサーバーグループに追加されています。バックアップに保持されているサーバーグループの基盤となるStoreFront構成は変更されていません。元のバックアップに元の2台のサーバーグループノードのみが含まれていても、現在の3台のサーバーのCitrixClusterMembershipは維持される必要があります。インポート中、現在のクラスターメンバーシップは保持され、構成がプライマリサーバーに正常にインポートされた後に書き戻されます。インポートは、元のバックアップが取得されて以来、サーバーグループからサーバーグループノードが削除された場合でも、現在のCitrixClusterMembershipを保持します。
-
サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、サーバーグループ1の構成をエクスポートします。

-
後で、既存のサーバーグループに2012R2-Cという追加のサーバーを追加します。

-
サーバーグループの構成は、既知の以前の動作状態に復元する必要があります。StoreFrontは、インポートプロセス中に3台のサーバーの現在のCitrixClusterMembershipをバックアップし、インポートが成功した後にそれを復元します。
-
サーバーグループ1の構成をノード2012R2-Aにインポートし直します。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup1.example.com" <!--NeedCopy--> -
新しくインポートされた構成をサーバーグループ全体に伝播し、インポート後にすべてのサーバーが整合性のある構成を持つようにします。
シナリオ2: サーバーグループ1から既存の構成をバックアップし、それを使用して別の工場出荷時のインストールに新しいサーバーグループを作成。その後、新しいプライマリサーバーに他の新しいサーバーグループメンバーを追加
2台の新しいサーバー、2012R2-Cと2012R2-Dを含むサーバーグループ2が作成されます。サーバーグループ2の構成は、既存の展開であるサーバーグループ1の構成に基づきます。サーバーグループ1には、2台のサーバー2012R2-Aと2012R2-Bも含まれています。バックアップアーカイブに含まれるCitrixClusterMembershipは、新しいサーバーグループを作成する際には使用されません。現在のCitrixClusterMembershipは常にバックアップされ、インポートが成功した後に復元されます。インポートされた構成を使用して新しい展開を作成する場合、CitrixClusterMembershipセキュリティグループには、追加のサーバーが新しいグループに参加するまで、インポート元サーバーのみが含まれます。サーバーグループ2は新しい展開であり、サーバーグループ1と共存することを意図しています。-HostBaseURLパラメーターを指定します。サーバーグループ2は、工場出荷時の新しいStoreFrontインストールを使用して作成されます。
-
サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、サーバーグループ1の構成をエクスポートします。
-
サーバーグループ1の構成をノード2012R2-Cにインポートします。これは、新しく作成されたサーバーグループ2を管理するために使用されるプライマリサーバーになります。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup2.example.com" <!--NeedCopy--> -
新しいサーバーグループ2展開の一部となる追加のサーバーを結合します。サーバーグループ1から新しくインポートされた構成のサーバーグループ2のすべての新しいメンバーへの伝播は、新しいサーバーが追加される際の通常の結合プロセスの一部であるため、自動的に行われます。
シナリオ3: サーバーグループAから既存の構成をバックアップし、それを使用して既存のサーバーグループBの構成を上書き
サーバーグループ1とサーバーグループ2は、すでに2つの異なるデータセンターに存在します。サーバーグループ1で多くのStoreFront構成変更が行われ、それらを別のデータセンターのサーバーグループ2に適用する必要があります。サーバーグループ1からサーバーグループ2に変更を移植できます。サーバーグループ2のバックアップアーカイブ内のCitrixClusterMembershipは使用しないでください。インポート時に-HostBaseURLパラメーターを指定します。これは、サーバーグループ2のホストベースURLを、サーバーグループ1で現在使用されているのと同じFQDNに変更すべきではないためです。サーバーグループ2は既存の展開です。
-
サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、サーバーグループ1の構成をエクスポートします。
-
サーバーグループ1の構成をノード2012R2-Cの工場出荷時のインストールにインポートします。これは、新しいサーバーグループ2のプライマリサーバーになります。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -NoEncryption -HostBaseURL "https://servergroup2.example.com" <!--NeedCopy-->
サーバー構成の暗号化されたバックアップの作成
PowerShell資格情報オブジェクトは、Windowsアカウントのユーザー名とパスワードの両方で構成されます。PowerShell資格情報オブジェクトは、パスワードがメモリ内で保護された状態を維持することを保証します。
注:
構成バックアップアーカイブを暗号化するには、暗号化と復号化を実行するためのパスワードのみが必要です。資格情報オブジェクト内に保存されているユーザー名は使用されません。エクスポート元サーバーとインポート先サーバーの両方で使用されるPowerShellセッション内に、同じパスワードを含む資格情報オブジェクトを作成する必要があります。資格情報オブジェクト内では、任意のユーザーを指定できます。
PowerShellでは、新しい資格情報オブジェクトを作成する際にユーザーを指定する必要があります。この例のコードは、便宜上、現在ログオンしているWindowsユーザーを取得します。
エクスポート元サーバーのPowerShellセッション内にPowerShell資格情報オブジェクトを作成します。
$User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$Password = "Pa55w0rd"
$Password = $Password | ConvertTo-SecureString -asPlainText -Force
$CredObject = New-Object System.Management.Automation.PSCredential($User,$Password)
<!--NeedCopy-->
構成を暗号化されたzipファイルであるbackup.ctxzipにエクスポートします。
Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -Credential $CredObject
<!--NeedCopy-->
インポート先サーバーのPowerShellセッション内に同一のPowerShell資格情報オブジェクトを作成します。
Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -Credential $CredObject -HostBaseURL "https://storefront.example.com"
<!--NeedCopy-->
既存の暗号化されたバックアップアーカイブの保護解除
$User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$Password = "Pa55w0rd"
$Password = $Password | ConvertTo-SecureString -asPlainText -Force
$CredObject = New-Object System.Management.Automation.PSCredential($User,$Password)
Unprotect-STFConfigurationExport -encryptedConfigurationZip "$env:userprofile\desktop\backup.ctxzip" -credential $CredObject -outputFolder "c:\StoreFrontBackups" -Force
<!--NeedCopy-->