管理商店的收藏夹
您可以使用 PowerShell cmdlet 管理商店的订阅数据(收藏夹)。
注意:
使用 StoreFront 管理控制台或 PowerShell 管理 StoreFront。请勿同时使用这两种方法。在使用 PowerShell 更改 StoreFront 配置之前,请务必关闭 StoreFront 管理控制台。Citrix 还建议您在进行更改之前备份现有订阅数据,以便可以回滚到以前的状态。
清除订阅数据
您的部署中每个商店都有一个包含订阅数据的文件夹和数据存储。
-
停止 StoreFront 服务器上的 Citrix Subscriptions Store 服务。如果 Citrix Subscriptions Store 服务正在运行,则无法删除任何商店的订阅数据。
-
在 StoreFront 服务器上找到订阅存储文件夹:
C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_<StoreName> -
删除订阅存储文件夹的内容,但不要删除文件夹本身。
-
重新启动 StoreFront 服务器上的 Citrix Subscriptions Store 服务。
在 StoreFront 3.5 或更高版本中,您可以使用以下 PowerShell 脚本清除商店的订阅数据。以具有停止或启动服务以及删除文件权限的管理员身份运行此 PowerShell 函数。此 PowerShell 函数可实现与上述手动步骤相同的结果。
要成功运行 cmdlet,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 cmdlet 获取商店订阅数据的备份,该备份采用制表符分隔的 .txt 文件形式。
$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Export-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
如果您正在管理多服务器部署,则可以在 StoreFront 服务器组中的任何服务器上运行此 PowerShell cmdlet。服务器组中的每个服务器都维护其对等服务器的订阅数据的相同同步副本。如果您认为 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/zh-cn/storefront-powershell-sdk/2402/Restore-STFStoreSubscriptions/>
在单个 StoreFront 服务器上恢复数据
在单个服务器部署中,无需关闭订阅存储服务。在恢复订阅数据之前,也无需清除现有订阅数据。
在 StoreFront 服务器组上恢复数据
要将订阅数据恢复到服务器组,需要执行以下步骤。
包含三个 StoreFront 服务器的示例服务器组部署。
-
StoreFrontA
-
StoreFrontB
-
StoreFrontC
-
备份来自这三台服务器中任何一台的现有订阅数据。
-
停止服务器 StoreFrontB 和 C 上的订阅存储服务。此操作可防止服务器在更新 StoreFrontA 期间发送或接收订阅数据。
-
清除服务器 StoreFrontB 和 C 上的订阅数据。这可以防止恢复的订阅数据不匹配。
-
使用 Restore-STFStoreSubscriptions cmdlet 在 StoreFrontA 上恢复数据。无需停止订阅存储服务,也无需清除 StoreFrontA 上的订阅数据(它将在恢复操作期间被覆盖)。
-
重新启动服务器 StoreFrontB 和 StoreFrontC 上的订阅存储服务。然后,这些服务器可以从 StoreFrontA 接收数据副本。
-
等待所有服务器之间发生同步。所需时间取决于 StoreFrontA 上存在的记录数量。如果所有服务器都通过本地网络连接,同步通常会很快发生。通过 WAN 连接进行订阅同步可能需要更长时间。
-
从 StoreFrontB 和 C 导出数据以确认同步已完成,或查看 Store 订阅计数器。
导入订阅数据
当 Store 没有订阅数据时,使用 Import-STFStoreSubscriptions。此 cmdlet 还允许将订阅数据从一个 Store 传输到另一个 Store,或者将订阅数据导入到新预配的 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/zh-cn/storefront-powershell-sdk/2402/Import-STFStoreSubscriptions/>
订阅数据文件详细信息
订阅数据文件是一个文本文件,其中每行包含一个用户订阅。每行都是一个由制表符分隔的值序列:
<user-identifier> <resource-id> <subscription-id> <subscription-status> <property-name> <property-value> <property-name> <property-value> ....
其中:
-
<user-identifier>- 必需。标识用户的字符序列。此标识符是用户的 Windows 安全标识符。 -
<resource-id>- 必需。标识已订阅资源的字符序列。 -
<subscription-id>- 必需。唯一标识订阅的字符序列。此值未使用(尽管数据文件中必须存在一个值)。 -
<subscription-status>- 必需。订阅的状态:已订阅或未订阅。 -
<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 已订阅 dazzle:位置 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"