サブスクリプションデータの管理
ローカルデータベースを使用している場合、PowerShell コマンドレットを使用してストアのお気に入りを管理できます。
サブスクリプションデータのパージ
展開内の各ストアには、お気に入りデータを含むフォルダーとデータストアが存在します。
- StoreFront サーバーで Citrix Subscriptions Store サービスを停止します。Citrix Subscriptions Store サービスが実行中の場合、いずれのストアのサブスクリプションデータも削除できません。
- StoreFront サーバーでサブスクリプションストアフォルダーを見つけます:
C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_<StoreName> - サブスクリプションストアフォルダーの内容を削除しますが、フォルダー自体は削除しないでください。
- 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-->
複数サーバー展開を管理している場合、StoreFront サーバーグループ内の任意のサーバーでこの PowerShell コマンドレットを実行できます。サーバーグループ内の各サーバーは、ピアからサブスクリプションデータの同一の同期コピーを保持します。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/2507/Restore-STFStoreSubscriptions/ を参照してください。
単一のStoreFrontサーバーでのデータ復元
単一サーバー展開では、Subscriptions Store サービスをシャットダウンする必要はありません。また、サブスクリプションデータを復元する前に、既存のサブスクリプションデータをパージする必要もありません。
StoreFrontサーバーグループでのデータ復元
サーバーグループにサブスクリプションデータを復元するには、以下の手順が必要です。
3台のStoreFrontサーバーを含むサーバーグループ展開の例。
- StoreFrontA
- StoreFrontB
- StoreFrontC
- 3台のサーバーのいずれかから既存のサブスクリプションデータをバックアップします。
- StoreFrontB および C サーバーで Subscriptions Store サービスを停止します。この操作により、StoreFrontA の更新中にサーバーがサブスクリプションデータの送受信を行うのを防ぎます。
- StoreFrontB および C サーバーからサブスクリプションデータをパージします。これにより、復元されたサブスクリプションデータの不一致を防ぎます。
- Restore-STFStoreSubscriptions コマンドレットを使用して StoreFrontA のデータを復元します。Subscriptions Store サービスを停止したり、StoreFrontA のサブスクリプションデータをパージしたりする必要はありません (復元操作中に上書きされます)。
- StoreFrontB および StoreFrontC サーバーで Subscriptions Store サービスを再起動します。これにより、サーバーは StoreFrontA からデータのコピーを受信できます。
- すべてのサーバー間で同期が行われるのを待ちます。必要な時間は、StoreFrontA に存在するレコードの数によって異なります。すべてのサーバーがローカルネットワーク接続上にある場合、同期は通常迅速に行われます。WAN 接続を介したサブスクリプションの同期には、より時間がかかる場合があります。
- 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/2507/Import-STFStoreSubscriptions/ を参照してください。
サブスクリプションデータファイルの詳細
サブスクリプションデータファイルは、ユーザーサブスクリプションごとに1行を含むテキストファイルです。各行はタブ区切りの値のシーケンスです。
<ユーザー識別子> <リソースID> <サブスクリプションID> <サブスクリプションステータス> <プロパティ名> <プロパティ値> <プロパティ名> <プロパティ値> ...
ここで、
-
<ユーザー識別子>- 必須。ユーザーを識別する文字のシーケンス。この識別子は、ユーザーの Windows セキュリティ識別子です。 -
<リソースID>- 必須。サブスクライブされたリソースを識別する文字のシーケンス。 -
<サブスクリプションID>- 必須。サブスクリプションを一意に識別する文字のシーケンス。この値は使用されません (ただし、データファイルには値が存在する必要があります)。 -
<サブスクリプションステータス>- 必須。サブスクリプションのステータス: subscribed (サブスクライブ済み) または unsubscribed (サブスクライブ解除済み)。 -
<プロパティ名>および<プロパティ値>- オプション。プロパティ名/値のペアがゼロ個以上続くシーケンス。これらは、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-->