ストアのサブスクリプションデータの管理

PowerShellコマンドレットを使用してストアのサブスクリプションデータを管理します。

注:

StoreFront管理コンソールまたはPowerShellのどちらかを使用して、StoreFrontを管理します。両方を同時に使用しないでください。StoreFront構成を変更する場合、StoreFront管理コンソールを閉じてからPowerShellを使用してください。既存のサブスクリプションデータを変更する時は、変更前の状態にロールバックできるようにバックアップを作成しておくことをお勧めします。

サブスクリプションデータの完全消去

サブスクリプションデータを格納するフォルダーおよびデータストアは、既存の環境の各ストアに存在します。

  1. StoreFrontサーバー上で、Citrix Subscriptions Storeサービスを停止します。Citrix Subscriptions Storeサービスの実行中は、ストアのサブスクリプションデータを削除できません。
  2. StoreFrontサーバー上で、サブスクリプションストアフォルダーを開きます: C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_<StoreName>
  3. サブスクリプションストアフォルダー内のすべてのファイルを削除します。フォルダー自体は削除しないでください。
  4. StoreFrontサーバー上で、Citrix Subscriptions Storeサービスを再起動します。

StoreFront 3.5以降では、以下のPowerShellスクリプトを使用して、ストアのサブスクリプションデータを完全消去できます。サービスを停止または開始したり、ファイルを削除したりできる管理者権限でこのPowerShellを実行します。このPowerShellスクリプトは、上記で説明した手動の手順と同様に機能します。

コマンドレットを問題なく実行するには、サーバー上でCitrix Subscriptions Storeサービスが実行されている必要があります。

function Remove-SubscriptionData

{
        [CmdletBinding()]

        [Parameter(Mandatory=$False)][String]$Store = "Store"

        $SubsService = "Citrix Subscriptions Store"

        # Path to Subscription Data in StoreFront version 2.6 or later

        $SubsPath = "C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_$Store*"

        Stop-Service -displayname $SubsService

        Remove-Item $SubsPath -Force -Verbose

        Start-Service -displayname $SubsService

        Get-Service -displayname $SubsService
}

    Remove-SubscriptionData -Store "YourStore"

サブスクリプションデータのエクスポート

PowerShellコマンドレットを使用して、ストアサブスクリプションデータのバックアップをタブ区切りのTXTファイル形式で取得できます。

$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"

Export-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"

複数サーバー展開環境を管理している場合、このPowerShellコマンドレットを、StoreFrontサーバーグループ内の任意のサーバー上で実行できます。サーバーグループの各サーバーは、ピアから同期されたサブスクリプションデータの同一コピーを保持します。Storefrontサーバー間でサブスクリプションの同期に問題がある場合、グループのすべてのサーバーからデータをエクスポートして、比較してください。

サブスクリプションデータの復元

既存のサブスクリプションデータを上書きするには、Restore-STFStoreSubscriptionsを使用します。前述のように、Export-STFStoreSubscriptionsを使用して作成したタブ区切りのTXTファイル形式のバックアップから、ストアのサブスクリプションデータを復元できます。

$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"

Restore-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"

Restore-STFStoreSubscriptionsについて詳しくは、次を参照してください。https://developer-docs.citrix.com/projects/storefront-powershell-sdk/en/latest/Restore-STFStoreSubscriptions/

1つのStoreFrontサーバー上でデータを復元する

単一のサーバー展開環境で、Subscriptions Storeサービスをシャットダウンする必要はありません。また、サブスクリプションデータの復元前に既存のサブスクリプションデータを消去する必要もありません。

StoreFrontサーバーグループ上でデータを復元する

サーバーグループにサブスクリプションデータを復元するには、次の手順に従う必要があります。

例:3つのStoreFrontサーバーを含むサーバーグループ環境。

  • StoreFrontA
  • StoreFrontB
  • StoreFrontC
  1. 3つのサーバーのいずれかから、既存のサブスクリプションデータのバックアップを作成します。
  2. サーバーStoreFrontBおよびStoreFrontCでSubscriptions Storeサービスを停止します。この操作によって、StoreFrontAの更新中、サーバーはサブスクリプションデータを送受信することができなくなります。
  3. サーバーStoreFrontBおよびStoreFrontCからサブスクリプションデータを完全消去します。これによって、復元されたサブスクリプションデータの不一致が発生しないようにします。
  4. Restore-STFStoreSubscriptionsコマンドレットでStoreFrontA上にデータを復元します。Subscriptions Storeサービスを停止したり、StoreFrontAでサブスクリプションデータを完全消去する必要はありません(復元操作中に上書きされます)。
  5. サーバーStoreFrontBおよびStoreFrontC上で、Subscriptions Storeサービスを再起動します。これで、このサーバーはStoreFrontAからデータのコピーを受信できます。
  6. すべてのサーバー間で同期が開始されるのを待ちます。このために必要な時間は、StoreFrontAに存在するレコード数によって異なります。すべてのサーバーがローカルネットワーク接続であれば、通常同期は迅速に行われます。WAN接続でのサブスクリプションの同期には、多少時間がかかる場合があります。
  7. StoreFrontBおよびStoreFrontCからデータをエクスポートして、同期が完了したことを確認します。またはストアサブスクリプションカウンターを表示します。

サブスクリプションデータのインポート

ストアにサブスクリプションデータがない場合、Import-STFStoreSubscriptionsを使用します。このコマンドレットによって、サブスクリプションデータをストア間で転送したり、サブスクリプションデータを新しくプロビジョニングされたStoreFrontサーバーにインポートしたりできます。

$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"

Import-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"

Import-STFStoreSubscriptionsについて詳しくは、次を参照してください。https://developer-docs.citrix.com/projects/storefront-powershell-sdk/en/latest/Import-STFStoreSubscriptions/

サブスクリプションデータファイルの詳細

サブスクリプションデータファイルは、各行に1つのユーザーサブスクリプションが記載されたテキストファイルです。各行には、以下の値がタブで区切られて記載されます。

<user-identifier> <resource-id> <subscription-id> <subscription-status> <property-name> <property-value> <property-name> <property-value> ...

各項目の意味は次の通りです:

  • <user-identifier>:必須キーで、ユーザーを識別する文字列です。この識別子には、ユーザーのWindowsセキュリティIDが使用されます。
  • <resource-id>:必須キーで、サブスクライブされるリソースを識別する文字列です。
  • <subscription-id>:必須キーで、サブスクリプションを一意に識別する文字列です。この値は使用されません(ただし、データファイル内に値が存在する必要はあります)。
  • <subscription-status>:必須キーで、サブスクリプションの状態(subscribedまたはunsubscribed)です。
  • <property-name>および<property-value> - オプション。0個以上のプロパティ名/値の組み合わせです。StoreFrontクライアント(通常はCitrix Workspaceアプリ)によるサブスクリプションのプロパティを表します。複数の値を持つプロパティは、同じ名前の複数の「<property-name> <property-value>」ペアで示されます(MyPropが2つの値AとBを持つ場合は「… MyProp A MyProp B …」など)。

S-0-0-00-0000000000-0000000000-0000000000-0000 XenApp.Excel 21EC2020-3AEA-4069-A2DD-08002B30309D Subscribed dazzle:position 1

StoreFrontサーバーのディスク上にあるサブスクリプションデータのサイズ

StoreFrontサーバーのディスク上にあるサブスクリプションデータのサイズ

インポートおよびエクスポートするテキストファイルのサイズ

インポートおよびエクスポートするテキストファイルのサイズ

ストアのサブスクリプションカウンター

Microsoft Windowsパフォーマンスモニターカウンター([スタート]>[検索の開始]ボックスに「perfmon」 と入力)を使用して、サーバー上のサブスクリプションレコードの合計数、StoreFrontサーバーグループ間で同期されたレコード数などを表示できます。

PowerShellを使用したサブスクリプションカウンターの表示

Get-Counter -Counter "\Citrix Subscription Store(1__citrix_store)\Subscription Entries Count (including unpurged deleted records)"

Get-Counter -Counter "\Citrix Subscription Store Synchronization\Subscriptions Store Synchronizing"

Get-Counter -Counter "\Citrix Subscription Store Synchronization\Number Subscriptions Synchronized"

Get-Counter -Counter "\Citrix Subscription Store Synchronization\Number Subscriptions Transferred"