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サービスを再起動します。

次の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"
<!--NeedCopy-->

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

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

$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Export-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
<!--NeedCopy-->

複数サーバー展開を管理している場合、この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"
<!--NeedCopy-->

Restore-STFStoreSubscriptions の詳細については、https://developer-docs.citrix.com/en-us/storefront-powershell-sdk/current-release/Restore-STFStoreSubscriptions/ を参照してください。

単一StoreFrontサーバーでのデータの復元

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

StoreFrontサーバーグループでのデータの復元

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

3台のStoreFrontサーバーを含むサーバーグループ展開の例。

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

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

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

$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Import-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
<!--NeedCopy-->

Import-STFStoreSubscriptions の詳細については、https://developer-docs.citrix.com/en-us/storefront-powershell-sdk/current-release/Import-STFStoreSubscriptions/ を参照してください。

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

サブスクリプションデータファイルは、ユーザーサブスクリプションごとに1行を含むテキストファイルです。各行はタブ区切りの値のシーケンスです。

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

ここで:

  • <user-identifier> - 必須。ユーザーを識別する文字のシーケンス。この識別子は、ユーザーのWindowsセキュリティ識別子です。
  • <resource-id> - 必須。サブスクライブされたリソースを識別する文字のシーケンス。
  • <subscription-id> - 必須。サブスクリプションを一意に識別する文字のシーケンス。この値は使用されません(ただし、データファイルには値が存在する必要があります)。
  • <subscription-status> - 必須。サブスクリプションのステータス: subscribed(サブスクライブ済み)または unsubscribed(サブスクライブ解除済み)。
  • <property-name> および <property-value> - オプション。プロパティ名/値のペアのゼロ以上のシーケンス。これらは、StoreFrontクライアント(通常はCitrix Workspaceアプリ)によってサブスクリプションに関連付けられたプロパティを表します。複数の値を持つプロパティは、同じ名前を持つ複数の名前/値のペアで表されます(例: 「… MyProp A MyProp B …」は、値A、Bを持つプロパティMyPropを表します)。

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

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

レコード数 サイズ (MB)
0 6.02
1,000 7.02
10,000 40.00
100,000 219.00
200,000 358.00
500,000 784.00
800,000 1213.02
1,000,000 1597.15
1,300,000 1919.15
1,500,000 2205.15
2,000,000 2915.15

インポートおよびエクスポート .txt ファイルのサイズ

レコード数 サイズ (MB)
0 0.00
1,000 0.13
10,000 1.30
100,000 12.80
200,000 25.60
500,000 64.10
800,000 102.00
1,000,000 128.00
1,300,000 166.00
1,500,000 192.00
1,700,000 218.00
2,000,000 256.00

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

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"
<!--NeedCopy-->