SDK 和 API
Citrix DaaS™ 远程 PowerShell SDK
远程 PowerShell SDK 可自动执行复杂且重复的任务。它提供了一种无需使用 Studio 即可设置和管理 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops™ 服务)环境的机制。
- Cmdlet 详细信息在 Citrix DaaS SDK 中提供。
- 支持的模块列在支持和限制中。该部分还列出了在此 SDK 中禁用的 cmdlet。
- 远程 PowerShell SDK 可从 Citrix 网站下载。
本产品支持 PowerShell 版本 3 到 7.3。
注意:
目前,对 PowerShell 7.4 版本的支持处于技术预览阶段。
此 SDK 与客户管理的部署的 SDK 有何不同
在由客户管理员安装和管理的 Citrix Virtual Apps™ and Desktops 部署中,这些管理员在包含 VDA 和 Delivery Controller 的站点中运行 cmdlet 和脚本,这些站点位于通用域结构中。相比之下,Citrix DaaS 将 VDA 和 Controller 分别拆分为资源位置和控制平面。这种拆分意味着原始的 Citrix Virtual Apps and Desktops PowerShell SDK 无法在 Citrix DaaS 环境中工作。它无法跨越从资源位置到控制平面的安全边界。
解决方案是 Citrix DaaS 远程 PowerShell SDK。在资源位置运行时,远程 PowerShell SDK 访问控制平面,就像它是本地的一样。这提供了与单个 Citrix Virtual Apps and Desktops 站点相同的功能。只有最低的不可见通信层,经过增强,可在单个本地站点或云环境中工作。cmdlet 相同,并且大多数现有脚本保持不变。
Get-XdAuthentication
cmdlet 提供跨越安全资源位置到控制平面边界的授权。默认情况下,Get-XdAuthentication
会提示用户输入 CAS 凭据,并且必须在每个 PowerShell 会话中执行一次。或者,用户可以使用在 Citrix Cloud™ 控制台中创建的 API 访问安全客户端来定义身份验证配置文件。在这两种情况下,安全信息都会持久保存,以供后续 PowerShell SDK 调用使用。如果未显式运行此 cmdlet,则它将由第一个 PowerShell SDK cmdlet 调用。
先决条件
要使用 Citrix DaaS 远程 PowerShell SDK,请将以下 URL 列入白名单:
商业版
https://*.cloud.com
https://*.citrixworkspacesapi.net/[customerid]
https://[customerid].xendesktop.net:443
日本
https://*.citrixcloud.jp
https://*.citrixworkspacesapi.jp/[customerid]
https://[customerid].apps.citrixworkspacesapi.jp:443
政府版
hhttps://*.cloud.us
https://*.citrixworkspacesapi.us/[customerid]
https://[customerid].xendesktop.us:443
安装和使用远程 PowerShell SDK
要求和注意事项:
注意:
请勿在 Citrix Cloud Connector™ 计算机上安装远程 PowerShell SDK。它可以安装在同一资源位置内的任何已加入域的计算机上。
Citrix® 不支持在 Cloud Connector 上运行此 SDK 的 cmdlet。SDK 的操作不涉及 Cloud Connector。
如果您还有 Citrix Virtual Apps and Desktops 部署(除了 Citrix DaaS),请勿在本地 Delivery Controller 上安装远程 PowerShell SDK。由于 Citrix Studio(基于 MMC)是作为 Delivery Controller 的一部分安装的,因此您也无法在运行 Citrix Studio 的服务器上安装 SDK。
- 安装 Microsoft Edge WebView2。
- 确保计算机上安装了 PowerShell 3.0、4.0、5.0、6.0 或 7.0。
- 如果尚未安装 .NET Framework 4.8(或更高支持版本),SDK 安装程序将下载并安装它。
- 如果计算机上已安装 Citrix Virtual Apps and Desktops SDK,请在安装远程 PowerShell SDK 之前将其(从 Windows 程序和功能中)删除。
- 对于自动化环境,请使用
-quiet
参数安装 SDK,无需用户输入。
要安装远程 PowerShell SDK:
- 从下载页面下载 Virtual Apps and Desktops 远程 PowerShell SDK。
- 安装并运行 SDK。
安装日志在 %TEMP%\CitrixLogs\CitrixPoshSdk
中创建。日志有助于解决安装问题。
在该资源位置内的已加入域的计算机上运行 SDK:
- 打开 PowerShell 命令提示符。您无需以管理员身份运行。
- 如果要使用管理单元(而不是模块),请使用
Add-PSSnapin
(或asnp
)cmdlet 添加管理单元。 - 您可以使用
Get-XdAuthentication
cmdlet 显式进行身份验证。或者,运行您的第一个远程 PowerShell SDK 命令,该命令会提示您进行与Get-XdAuthentication
相同的身份验证。如果您正在使用代理,则必须向代理进行身份验证才能使用Get-XdAuthentication
cmdlet。有关详细信息,请参阅将远程 PowerShell SDK 与代理结合使用。 - 要绕过身份验证提示,您可以使用
Set-XdCredentials
cmdlet 创建默认身份验证配置文件,方法是使用在 Citrix Cloud 控制台中创建的安全客户端。 - 继续运行 PowerShell SDK cmdlet 或 PowerShell SDK 自动化脚本。请参阅示例。
要卸载远程 PowerShell SDK,请从 Windows 的“删除或更改程序”功能中,选择 Citrix Virtual Apps and Desktops Remote PowerShell SDK。右键单击并选择卸载。按照对话框进行操作。
将远程 PowerShell SDK 与代理结合使用
如果您正在使用代理,则可能无法使用 Get-xdAuthentication
cmdlet,因为代理会阻止该 cmdlet 发出的 HTTP 请求。
有两种方法可以向代理进行身份验证。您可以使用 ProxyUseDefault
参数,也可以使用 ProxyUsername
和 ProxyPassword
参数:
-
ProxyUseDefault
参数通过使用默认代理凭据启用对代理的身份验证。例如:Get-XdAuthentication -ProxyUseDefault <!--NeedCopy-->
-
ProxyUsername
和ProxyPassword
参数在 PowerShell 会话中启用对代理的身份验证。例如:$secureString = ConvertTo-SecureString -String "password" -AsPlainText -Force Get-XdAuthentication -ProxyUsername user1 -ProxyPassword $secureString <!--NeedCopy-->
注意:
如果您在远程 PowerShell SDK 中运行带有
XDHyp:\
的命令,则会收到错误。要解决此问题:
- 运行带有
Hyp
的命令。例如:Get-HypServiceStatus
- 运行带有
XDHyp:\
的命令。例如:Get-ChildItem XDHyp:\Connections\
示例活动
常见活动包括设置计算机目录、应用程序和用户。示例如下所示。
$users = "xd.local\Domain Users"
$TSVDACatalogName = "TSVDA"
$TSVDADGName = "TSVDA"
$TSVDAMachineName = "xd\ds-tsvda2"
#Create TSVDA Catalog
$brokerUsers = New-BrokerUser -Name $users
$catalog = New-BrokerCatalog -Name $TSVDACatalogName -AllocationType "Random" -Description $TSVDACatalogName -PersistUserChanges "OnLocal" -ProvisioningType "Manual" -SessionSupport "MultiSession" -MachinesArePhysical $true
#Add TSVDA Machine to Catalog
$BrokeredMachine = New-BrokerMachine -MachineName $TSVDAMachineName -CatalogUid $catalog.uid
#Create new desktops & applications delivery group
$dg = New-BrokerDesktopGroup -Name $TSVDADGName -PublishedName $TSVDADGName -DesktopKind "Shared" -SessionSupport "MultiSession" -DeliveryType DesktopsAndApps -Description $TSVDADGName
#Create notepad application
New-BrokerApplication -ApplicationType HostedOnDesktop -Name "Notepad" -CommandLineExecutable "notepad.exe" -DesktopGroup $dg
#Assign users to desktops and applications
New-BrokerEntitlementPolicyRule -Name $TSVDADGName -DesktopGroupUid $dg.Uid -IncludedUsers $brokerUsers -description $TSVDADGName
New-BrokerAccessPolicyRule -Name $TSVDADGName -IncludedUserFilterEnabled $true -IncludedUsers $brokerUsers -DesktopGroupUid $dg.Uid -AllowedProtocols @("HDX","RDP")
New-BrokerAppEntitlementPolicyRule -Name $TSVDADGName -DesktopGroupUid $dg.Uid -IncludedUsers $brokerUsers -description $TSVDADGName
#Add machine to delivery group
Add-BrokerMachine -MachineName $TSVDAMachineName -DesktopGroup $dg
<!--NeedCopy-->
支持和限制
远程 PowerShell SDK 支持以下操作系统:
- Windows 11
- Windows 10
- Windows 10 IoT Enterprise LTSC x32 2019
- Windows 10 IoT Enterprise LTSC x64 2019
- Windows 10 IoT Enterprise 21h1 x64
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
此版本支持以下 Citrix Virtual Apps and Desktops PowerShell 模块:
- Broker
- Active Directory (AD) Identity
- Machine creation
- Configuration
- Configuration logging
- Host
- Delegated administration
- Analytics
有关 cmdlet 的详细信息,请参阅 Citrix Virtual Apps and Desktops SDK。
身份验证后,远程访问在当前 PowerShell 会话中保持 24 小时有效。在此时间之后,您必须输入凭据。
远程 PowerShell SDK 必须在资源位置内的计算机上运行。
以下 cmdlet 在远程操作中被禁用,以维护 Citrix Cloud 控制平面的完整性和安全性。
Citrix.ADIdentity.Admin.V2:
- Copy-AcctIdentityPool
- Get-AcctDBConnection
- Get-AcctDBSchema
- Get-AcctDBVersionChangeScript
- Get-AcctInstalledDBVersion
- Remove-AcctServiceMetadata
- Reset-AcctServiceGroupMembership
- Set-AcctDBConnection
- Set-AcctServiceMetadata
- Set-AcctADAccountUserCert
- Test-AcctDBConnection
Citrix.Analytics.Admin.V1:
- Get-AnalyticsDBConnection
- Get-AnalyticsDBSchema
- Get-AnalyticsDBVersionChangeScript
- Get-AnalyticsInstalledDBVersion
- Import-AnalyticsDataDefinition
- Remove-AnalyticsServiceMetadata
- Reset-AnalyticsServiceGroupMembership
- Set-AnalyticsDBConnection
- Set-AnalyticsServiceMetadata
- Set-AnalyticsSite
- Set-AnalyticsDBConnection
Citrix.DelegatedAdmin.Admin.V1:
- Add-AdminRight
- Get-AdminDBConnection
- Get-AdminDBSchema
- Get-AdminDBVersionChangeScript
- Get-AdminInstalledDBVersion
- Import-AdminRoleConfiguration
- New-AdminAdministrator
- Remove-AdminAdministrator
- Remove-AdminAdministratorMetadata
- Remove-AdminRight
- Remove-AdminServiceMetadata
- Reset-AdminServiceGroupMembership
- Set-AdminAdministrator
- Set-AdminAdministratorMetadata
- Set-AdminDBConnection
- Set-AdminServiceMetadata
- Test-AdminDBConnection
Citrix.Broker.Admin.V2:
- Get-BrokerDBConnection
- Get-BrokerDBSchema
- Get-BrokerDBVersionChangeScript
- Get-BrokerInstalledDBVersion
- Get-BrokerLease
- Get-BrokerController
- New-BrokerMachineConfiguration
- Remove-BrokerControllerMetadata
- Remove-BrokerLease
- Remove-BrokerLeaseMetadata
- Remove-BrokerMachineConfigurationMetadata
- Remove-BrokerMachineConfiguration
- Remove-BrokerSiteMetadata
- Remove-BrokerUserFromApplication
- Reset-BrokerLicensingConnection
- Reset-BrokerServiceGroupMembership
- Set-BrokerControllerMetadata
- Set-BrokerDBConnection
- Set-BrokerLeaseMetadata
- Set-BrokerMachineConfiguration
- Set-BrokerMachineConfigurationMetadata
- Set-BrokerSiteMetadata
- Test-BrokerDBConnection
- Test-BrokerLicenseServer
- Update-BrokerBrokerLocalLeaseCache
Citrix.Configuration.Admin.V2:
- Export-ConfigFeatureTable
- Get-ConfigDBConnection
- Get-ConfigDBSchema
- Get-ConfigDBVersionChangeScript
- Get-ConfigInstalledDBVersion
- Get-ConfigServiceGroup
- Import-ConfigFeatureTable
- Register-ConfigServiceInstance
- Remove-ConfigRegisteredServiceInstanceMetadata
- Remove-ConfigServiceGroup
- Remove-ConfigServiceGroupMetadata
- Remove-ConfigServiceMetadata
- Remove-ConfigSiteMetadata
- Reset-ConfigServiceGroupMembership
- Set-ConfigDBConnection
- Set-ConfigRegisteredServiceInstance
- Set-ConfigRegisteredServiceInstanceMetadata
- Set-ConfigServiceGroupMetadata
- Set-ConfigServiceMetadata
- Set-ConfigSite
- Set-ConfigSiteMetadata
- Test-ConfigDBConnection
- Unregister-ConfigRegisteredServiceInstance
Citrix.Host.Admin.V2:
- Get-HypDBConnection
- Get-HypDBSchema
- Get-HypDBVersionChangeScript
- Get-HypInstalledDBVersion
- Remove-HypServiceMetadata
- Reset-HypServiceGroupMembership
- Set-HypDBConnection
- Set-HypServiceMetadata
- Test-HypDBConnection
Citrix.ConfigurationLogging.Admin.V1:
- Get-LogDBConnection
- Get-LogDBSchema
- Get-LogDBVersionChangeScript
- Get-LogInstalledDBVersion
- Remove-LogOperation
- Remove-LogServiceMetadata
- Remove-LogSiteMetadata
- Reset-LogDataStore
- Reset-LogServiceGroupMembership
- Set-LogDBConnection
- Set-LogServiceMetadata
- Set-LogSite
- Set-LogSiteMetadata
- Test-LogDBConnection
Citrix.MachineCreation.Admin.V2:
- Get-ProvDBConnection
- Get-ProvDBSchema
- Get-ProvDBVersionChangeScript
- Get-ProvInstalledDBVersion
- Get-ProvServiceConfigurationData
- Remove-ProvServiceConfigurationData
- Remove-ProvServiceMetadata
- Reset-ProvServiceGroupMembership
- Set-ProvDBConnection
- Set-ProvServiceMetadata
- Test-ProvDBConnection
Citrix.EnvTest.Admin.V1:
- Get-EnvTestDBConnection
- Get-EnvTestDBSchema
- Get-EnvTestDBVersionChangeScript
- Get-EnvTestInstalledDBVersion
- Remove-EnvTestServiceMetadata
- Reset-EnvTestServiceGroupMembership
- Set-EnvTestDBConnection
- Set-EnvTestServiceMetadata
- Test-EnvTestDBConnection
Citrix.Monitor.Admin.V1:
- Get-MonitorConfiguration
- Get-MonitorDBConnection
- Get-MonitorDBSchema
- Get-MonitorDBVersionChangeScript
- Get-MonitorDataStore
- Get-MonitorDataStore
- Get-MonitorInstalledDBVersion
- Remove-MonitorServiceMetadata
- Reset-MonitorDataStore
- Reset-MonitorServiceGroupMembership
- Set-MonitorConfiguration
- Set-MonitorDBConnection
- Set-MonitorServiceMetadata
- Test-MonitorDBConnection
Citrix.Storefront.Admin.V1:
- Build-SfCluster
- Get-SfClusters
- Get-SfDBConnection
- Get-SfDBSchema
- Get-SfDBVersionChangeScript
- Get-SfInstalledDBVersion
适用于 App-V 程序包和服务器的 Citrix DaaS 发现模块
Citrix DaaS 可以使用以下任一方法将 App-V 程序包中包含的应用程序交付到您的端点:
- 单一管理员管理方法(从网络共享访问程序包)
- 双管理员管理方法(从 Microsoft App-V 管理服务器访问程序包)
使用 Citrix DaaS 将 App-V 程序包、Microsoft App-V 管理服务器和发布服务器注册到应用程序库的过程与使用本地部署注册程序包的过程略有不同。但是,将应用程序分配给用户并在用户端点上启动它们的过程是相同的。
Citrix Cloud 中的 Citrix DaaS 管理控制台无法查看资源位置中的文件。此外,它无法直接发现您的基础结构中的 App-V 程序包或 Microsoft App-V 服务器。发现模块提供了用于发现本地基础结构中的 App-V 程序包信息并将程序包信息上传到 Citrix DaaS 的功能。程序包信息包括 App-V 程序包、Microsoft App-V 服务器以及程序包中包含的应用程序。
发现模块使用 Virtual Apps and Desktops 远程 PowerShell SDK。它可以从网络共享或 Microsoft App-V 管理服务器发现程序包信息。您可以在资源位置中的计算机上使用发现模块。
使用发现模块的先决条件:
- 验证计算机上是否安装了 PowerShell 3.0 或更高版本。
- 验证计算机上是否安装了 Citrix Virtual Apps and Desktops 远程 PowerShell SDK。
- 验证您是否可以访问包含 App-V 程序包的网络共享。
- 验证您是否可以访问安装了 Citrix Cloud Connector 和托管 Microsoft App-V 管理服务器的服务器。
将 App-V 程序包添加到 Citrix Cloud 中的应用程序库
以下过程适用于从网络共享添加 App-V 程序包(单一管理员管理)以及从 Microsoft App-V 管理服务器添加所有已发布的 App-V 程序包(双管理员管理)。使用双管理员管理方法时,您必须像使用单一管理员管理方法一样管理添加的 App-V 程序包。
-
从 Citrix DaaS 下载页面 https://www.citrix.com/downloads/citrix-cloud/product-software/xenapp-and-xendesktop-service.html 下载发现模块。将 zip 文件
Citrix.Cloud.AppLibrary.Admin.v1.psm1
解压到方便的文件夹中。注意:
此文件也在 Citrix Virtual Apps and Desktops ISO 的
Support\Tools\Scripts
中提供。您可以将其复制到本地,或直接从 CD 驱动器引用它。 -
验证您的计算机上是否安装了 Virtual Apps and Desktops 远程 PowerShell SDK。
-
导航到包含发现模块的文件夹。在 PowerShell 窗口中,键入包含发现模块的文件夹的完整路径,然后按 Enter。
-
使用命令
Import-Module.\Citrix.Cloud.AppLibrary.Admin.v1.psm1
导入发现模块。 -
使用以下任一方法将 App-V 程序包添加到 Citrix Cloud 中的应用程序库。
-
要从网络共享添加 App-V 程序包,请运行 PowerShell cmdlet:
Import-AppVPackageToCloud
。例如:
Import-AppVPackageToCloud –PackagePath \\AppVSrv\share\Notepad++.appv
有关 cmdlet 帮助,请键入
Get-Help Import-AppVPackageToCloud
。 -
要从 Microsoft App-V 管理服务器添加 App-V 程序包,请运行 PowerShell cmdlet:
Import-AppVPackagesFromManagementServerToCloud
例如:
Import-AppVPackagesFromManagementServerToCloud –ManagementSrvFQDN AppVMngSrv.domain.local
有关 cmdlet 帮助,请键入
Get-Help Import-AppVPackagesFromManagementServerToCloud
此命令将所有已发布的 App-V 程序包从 Microsoft App-V 管理服务器导入到 Citrix Cloud。
将 App-V 程序包添加到 Citrix Cloud 后,您必须像使用单一管理员管理方法一样管理它们。
-
-
登录 Citrix Cloud。选择目标客户。脚本成功运行后,App-V 程序包将添加到 Citrix Cloud 中的应用程序库。
高级 PowerShell 函数
该模块包含以下可从您自己的 PowerShell 脚本调用的高级函数:
-
Import-AppVPackageToCloud -PackagePath <Full UNC path to App-V package>
发现并将发布单个 App-V 程序包中的应用程序所需的所有信息上传到 Citrix DaaS。
-
Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN <FQDN of a Microsoft App-V Management Server>
发现管理服务器发布的程序包的 UNC 路径,并依次为每个程序包调用 Import-AppVPackageToCloud。
以这种方式发现的程序包使用单一管理员管理方法加载到 Citrix DaaS。Citrix DaaS 无法使用双管理员管理方法交付程序包。
-
Import-AppVDualAdminToCloud -ManagementSrvUrl <URL of a Microsoft App-V Management Server> -PublishingServerUrl <URL of a Microsoft App-V Publishing Server>
发现 Microsoft App-V 管理服务器和发布服务器,并将内容导入到应用程序库。此 cmdlet 导入使用 Microsoft App-V 管理服务器管理的所有程序包和相关信息。可以通过 PowerShell 添加和删除服务器。
此 cmdlet 以双管理员模式添加 App-V 程序包。仅导入在 Microsoft App-V 管理服务器上发布且已添加 AD 组的 App-V 程序包。如果您对 Microsoft App-V 管理服务器进行更改,请重新运行此 cmdlet 以将应用程序库与 Microsoft App-V 管理服务器同步。
-
Remove-AppVServerFromCloud -ManagementSrvUrl <URL of a Microsoft App-V Management Server> -PublishingServerUrl <URL of a Microsoft App-V Publishing Server>
从应用程序库中删除已添加的 Microsoft App-V 管理服务器和发布服务器。
此 cmdlet 删除指定的 Microsoft App-V 管理服务器和发布服务器,以及所有相关的 App-V 程序包。
在该资源位置内的已加入域的计算机上运行适用于 App-V 程序包和服务器的发现模块。按照安装和使用远程 PowerShell SDK 中的指导开始操作。继续运行 PowerShell cmdlet 或脚本。请参阅以下示例。
示例活动
导入 Citrix DaaS App-V 程序包发现模块。
import-module "D:\Support\Tools\Scripts\Citrix.Cloud.AppLibrary.Admin.v1.psm1"
<!--NeedCopy-->
遍历 App-V 程序包存储目录并上传每个程序包。
Get-ChildItem -Path "\\FileServer.domain.net\App-V Packages" -Filter *.appv |
Foreach-Object{
Import-AppVPackageToCloud -PackagePath $_.FullName
}
<!--NeedCopy-->
发现并上传已向 Microsoft App-V 管理服务器注册的程序包。
Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN AppVManagementServer.domain.net
<!--NeedCopy-->
发现 Microsoft App-V 管理服务器和发布服务器,并将配置添加到应用程序库。这还会以双管理员模式导入由 Microsoft App-V 管理服务器管理的所有程序包。
Import-AppVDualAdminCloud -ManagementSrvUrl http://AppVManagementServer.domain.net –PublishingServerUrl http://AppVManagementServer.domain.net:8001
<!--NeedCopy-->
阅读模块中包含的 PowerShell 帮助文档。
Get-Help Import-AppVPackageToCloud
<!--NeedCopy-->
限制
- 您无法直接从 Citrix Cloud 中的 Citrix DaaS 管理控制台发现资源位置基础结构上的 App-V 程序包。有关 Citrix Cloud 的更多信息,请参阅 Citrix Cloud 文档。
- Citrix Cloud 中的 Citrix DaaS 管理控制台与 Microsoft App-V 管理服务器没有实时连接。对 Microsoft App-V 管理服务器中的程序包和其他配置所做的更改不会反映在 Citrix DaaS 管理控制台中,直到重新运行
Import-AppVDualAdminCloud
。
Monitor Service OData API
除了使用 Monitor 功能显示历史数据外,您还可以使用 Monitor Service 的 API 查询数据。使用 API 可以:
- 分析历史趋势以进行规划
- 对连接和计算机故障进行详细故障排除
- 提取信息以馈送到其他工具和流程;例如,使用 Microsoft Excel 的 PowerPivot 表以不同方式显示数据
- 在 API 提供的数据之上构建自定义用户界面
有关详细信息,请参阅 Monitor Service OData API。要访问 Monitor Service API,请参阅 使用 Citrix Cloud 中的 OData v4 端点访问 Monitor Service 数据。
Citrix DaaS API
Citrix DaaS API 可在 https://developer.cloud.com/citrixworkspace/citrix-daas 获取。
免责声明
本软件/示例代码“按原样”提供给您,不附带任何形式的陈述、保证或条件。您可以自行承担风险使用、修改和分发它。CITRIX 不承担任何明示、暗示、书面、口头或法定形式的担保,包括但不限于适销性、特定用途适用性、所有权和不侵权的担保。在不限制前述一般性的前提下,您承认并同意 (a) 本软件/示例代码可能存在错误、设计缺陷或其他问题,可能导致数据丢失或财产损坏;(b) 可能无法使本软件/示例代码完全正常运行;以及 (c) Citrix 可能会在不通知或不对您承担责任的情况下,停止提供本软件/示例代码的当前版本和/或任何未来版本。在任何情况下,本软件/代码都不得用于支持超高风险活动,包括但不限于生命支持或爆破活动。无论是根据合同违约还是任何其他责任理论,CITRIX 及其关联公司或代理均不对因使用本软件/示例代码而产生的任何损害承担责任,包括但不限于直接、特殊、附带、惩罚性、后果性或其他损害,即使已被告知发生此类损害的可能性。您同意赔偿并保护 Citrix 免受因您使用、修改或分发代码而产生的任何索赔。