SDK 和 API
Citrix DaaS Remote PowerShell SDK
Remote PowerShell SDK 将自动执行复杂的重复性任务。它提供无需使用 Studio 即可设置和管理 Citrix DaaS(前身为 Citrix Virtual Apps and Desktops 服务)环境的机制。
- Citrix DaaS SDK 中提供了有关 cmdlet 的详细信息。
- 支持和限制中列出了受支持的模块。该部分内容还列出了此 SDK 中禁用的 cmdlet。
- Remote PowerShell SDK 可在 Citrix Web 站点上下载。
本产品支持 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 Virtual Apps 和 Desktops PowerShell SDK 无法在 Citrix DaaS 环境中运行。它不能跨越资源位置的安全边界连接到控制平面。
解决方案是使用 Citrix DaaS Remote PowerShell SDK。在资源位置中运行时,Remote PowerShell SDK 会像在本地一样访问控制平面。该 SDK 提供的功能与单个 Citrix Virtual Apps and Desktops 站点相同。仅存在最低的非可见通信层,功能得以增强,可在单个本地站点或云环境中使用。cmdlet 相同,并且大多数现有脚本的工作方式保持不变。
Get-XdAuthentication
cmdlet 提供从安全的资源位置跨越到控制平面边界的授权。默认情况下,Get-XdAuthentication
提示用户输入 CAS 凭据,并且必须在每个 PowerShell 会话中提供一次。或者,用户可以使用在 Citrix Cloud 控制台中创建的 API-Access 安全客户端定义身份验证配置文件。在这两种情况下,我们都会在后续的 PowerShell SDK 调用中持续使用安全信息。如果未明确运行此 cmdlet,它将被第一个 PowerShell SDK cmdlet 调用。
必备条件
要使用 Citrix DaaS Remote PowerShell SDK,请将以下 URL 列入白名单:
商用
https://accounts.cloud.com
https://[service].citrixworkspacesapi.net/[customerid]
https://[customerid].xendesktop.net:443
日本
https://accounts.citrixcloud.jp
https://[service].citrixworkspacesapi.jp/[customerid]
https://[customerid].apps.citrixworkspacesapi.jp:443
政府
https://accounts.cloud.us
https://[service].citrixworkspacesapi.us/[customerid]
https://[customerid].xendesktop.us:443
安装和使用 Remote PowerShell SDK
要求和注意事项:
注意:
请勿在 Citrix Cloud Connector 计算机上安装 Remote PowerShell SDK。它可以安装在同一资源位置内的任何加入了域的计算机上。
Citrix 不支持在 Cloud Connector 上运行此 SDK 的 cmdlet。SDK 的操作不涉及 Cloud Connector。
如果您还有 Citrix Virtual Apps and Desktops 部署(Citrix DaaS 部署除外),请不要在本地 Delivery Controller 计算机上安装 Remote PowerShell SDK。
- 安装 Microsoft Edge WebView2。
- 确保 PowerShell 3.0、4.0 或 5.0 在计算机上可用。
- SDK 安装程序会下载并安装 .NET Framework 4.8(或更高的受支持版本,如果未安装)。
- 如果计算机已经安装了 Citrix Virtual Apps and Desktops SDK,请在安装 Remote PowerShell SDK 之前删除该 SDK(从 Windows 的“程序和功能”中)。
- 对于自动化环境,请使用
-quiet
参数在没有用户输入的情况下安装 SDK。
要安装 Remote PowerShell SDK,请执行以下操作:
- 从下载页面下载 Citrix Virtual Apps and Desktops Remote PowerShell SDK。
- 安装并运行 SDK。
系统将在 %TEMP%\CitrixLogs\CitrixPoshSdk
中创建安装日志。日志可以帮助解决安装问题。
在该资源位置中加入了域的计算机上运行 SDK:
- 打开 PowerShell 命令提示符。不需要以管理员身份运行。
- 如果要使用管理单元(而非模块),请使用
Add-PSSnapin
(或asnp
)cmdlet 添加管理单元。 - 可以使用
Get-XdAuthentication
cmdlet 显式进行身份验证。或者,运行您的第一个 Remote PowerShell SDK 命令,该命令会提示您进行与Get-XdAuthentication
相同的身份验证。如果您使用的是代理,则必须向代理进行身份验证才能使用Get-XdAuthentication
cmdlet。有关详细信息,请参阅将 Remote PowerShell SDK 与代理一起使用。 - 要跳过身份验证提示,可以通过在 Citrix Cloud 控制台中创建的安全客户端使用
Set-XdCredentials
cmdlet 来创建默认的身份验证配置文件。 - 继续运行 PowerShell SDK cmdlet 或 PowerShell SDK 自动化脚本。请参阅示例。
要卸载 Remote PowerShell SDK,请从用于删除或更改程序的 Windows 功能中选择 Citrix Virtual Apps and Desktops Remote PowerShell SDK。单击鼠标右键并选择卸载。按照对话框进行操作。
将 Remote PowerShell SDK 与代理一起使用
如果您使用的是代理,则可能无法使用 cmdlet,因为该代理会阻止 Get-xdAuthentication
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-->
注意:
如果您在 Remote 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-->
支持和限制
Remote 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) 标识
- 计算机创建
- 配置
- 配置日志记录
- 主机
- 委派管理
- 分析
有关 cmdlet 的详细信息,请参阅 Citrix Virtual Apps and Desktops SDK。
完成身份验证后,远程访问在 24 小时内在当前的 PowerShell 会话中保持有效。超过该时间后,必须输入您的凭据。
必须在该资源位置中的计算机上运行 Remote 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 Remote PowerShell SDK。可以从网络共享或 Microsoft App-V 管理服务器发现包信息。可以在您的资源位置中的计算机上使用发现模块。
使用发现模块的必备条件:
- 验证 PowerShell 3.0 或更高版本在计算机上是否可用。
- 验证计算机上是否安装了 Citrix Virtual Apps and Desktops Remote 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
解压到一个便捷的文件夹中。注意:
Support\Tools\Scripts
中的 Citrix Virtual Apps and Desktops ISO 中也提供了此文件。可以在本地复制或直接从 CD 驱动器引用。 -
验证计算机上是否安装了 Virtual Apps and Desktops Remote 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>
发现所有必需的信息并将其上载到 Citrix DaaS,以从单个 App-V 包发布应用程序。
-
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 包和服务器的发现模块。请按照安装和使用 Remote 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 管理服务器未建立实时连接。在重新运行
Import-AppVDualAdminCloud
之前,对 Microsoft App-V 管理服务器中的软件包和其他配置所做的更改不会反映在 Citrix DaaS 管理控制台中。
Monitor Service OData API
除使用监视功能显示历史数据外,还可以使用 Monitor Service 的 API 查询数据。使用 API 可以执行以下操作:
- 分析历史趋势以便进行规划
- 对连接失败和计算机故障进行细致的故障排除
- 提取信息以用于其他工具和流程;例如,可以使用 Microsoft Excel 的 PowerPivot 表以不同的方式显示数据
- 基于 API 提供的数据构建自定义用户界面
有关详细信息,请参阅 Monitor Service OData API。要访问 Monitor Service API,请参阅 Access Monitor Service data using the OData v4 endpoint in Citrix Cloud(在 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 并使 Citrix 免于承担因您使用、修改或分发本代码导致的任何索赔。