SDK 和 API

Citrix Virtual Apps and Desktops 远程 PowerShell SDK

远程 PowerShell (PS) SDK 自动执行复杂的重复性任务。它提供在不需要使用 Studio 用户界面的情况下用来设置和管理 Citrix Virtual Apps and Desktops(以前称为 XenApp 和 XenDesktop)环境的机制。

支持的管理单元在限制中列出。该部分内容还列出了禁用的 cmdlet。

此 SDK 与 Citrix Virtual Apps and Desktops Delivery Controller SDK 的差异

在完全由客户管理员安装和管理的 Citrix Virtual Apps and Desktops 部署中,这些管理员在一个常见域结构中同时包含 VDA 和 Delivery Controller 的站点中运行 cmdlet 和脚本。相反,Citrix Virtual Apps and Desktops 服务分别将 VDA 和 Controller 拆分到资源位置和控制平面中。此拆分意味着原始 Citrix Virtual Apps and Desktops PS SDK 将不在 Citrix Virtual Apps and Desktops 服务环境中运行,因为该 SDK 不能从安全的资源位置跨越到控制平面边界。

解决方案是 Citrix Virtual Apps and Desktops 远程 PS SDK。在资源位置中运行时,远程 PS SDK 将像在本地一样访问控制平面,从而提供与单个 Citrix Virtual Apps and Desktops 站点相同的功能。仅存在最低的非可见通信层,功能得以增强,可在单个本地站点或云环境中使用。cmdlet 相同,并且大多数现有脚本的工作方式保持不变。

Get-XdAuthentication cmdlet 提供从安全的资源位置跨越到控制平面边界的授权。默认情况下,Get-XdAuthentication 提示用户输入 CAS 凭据,并且必须在每个 PowerShell 会话中提供一次。或者,用户可以使用 API 访问安全客户端(在 Citrix Cloud 控制台中创建)定义身份验证配置文件。在这两种情况下,安全信息将持续在后续的 PS SDK 调用中使用。如果未明确执行此 cmdlet,此 cmdlet 将被第一个 PS SDK cmdlet 调用。

安装和使用远程 PowerShell SDK

要求:

  • 确保 PowerShell 3.0 或更高版本在计算机上可用。
  • 如果计算机安装了 Citrix Virtual Apps and Desktops Delivery Controller SDK,请在安装远程 PowerShell SDK 之前删除该 SDK(从 Windows 的“程序和功能”中)。

要安装远程 PowerShell PowerShell SDK,请执行以下操作:

  1. 下载安装程序:https://download.apps.cloud.com/CitrixPoshSdk.exe。软件包同时包含 x86 和 x64 实现。
  2. 在下载的文件夹中,找到并运行安装程序。
  3. 按照对话框完成安装。

安装日志在 %TEMP%\CitrixLogs\CitrixPoshSdk 中创建。日志可以帮助解决安装问题。

在该资源位置中加入了域的计算机上运行 Citrix Virtual Apps and Desktops 远程 PS SDK:

  • 打开 PowerShell 命令提示符。不需要以管理员身份运行。
  • 添加 Citrix 管理单元:asnp citrix.*
  • 可以使用 Get-XdAuthentication cmdlet 显式进行身份验证。或者,执行第一个 Citrix Virtual Apps and Desktops PS SDK 命令,该命令将提示您提供与 Get-XdAuthentication 相同的身份验证。
  • 要跳过身份验证提示,可以通过在 Citrix Cloud 控制台中创建的安全客户端使用 Set-XdCredentials cmdlet 创建默认的身份验证配置文件。
  • 继续执行 PS SDK cmdlet 或 PS SDK 自动化脚本。请参见下例。

Citrix 建议您不要在 Cloud Connector 上运行此 SDK 的 cmdlet。SDK 的操作不涉及 Cloud Connector。

卸载:

在用于删除或更改程序的 Windows 功能中,选择 Citrix Virtual Apps and Desktops Remote PowerShell SDK(Citrix Virtual Apps and Desktops 远程 PowerShell SDK)。单击鼠标右键并选择卸载。按照对话框进行操作。

示例活动

常见活动包括设置计算机目录、应用程序和用户。示例脚本如下所示。

    $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

限制

本版本中支持以下 Citrix Virtual Apps and Desktops PowerShell 管理单元:

  • Broker
  • Active Directory (AD) 标识
  • 计算机创建
  • 配置
  • 配置日志记录
  • 主机
  • 委派管理
  • 分析

有关这些管理单元中的 cmdlet 的详细信息,请参阅 Citrix Virtual Apps and Desktops SDK

进行身份验证后,远程访问在 24 小时内在当前的 PowerShell 会话中保持有效。超过此时间后,必须输入您的凭据。

必须在该资源位置中的计算机上运行远程 PS SDK。

以下 cmdlet 在远程操作中处于禁用状态,以保持 Cloud 控制平面的完整性和安全性。

Citrix.ADIdentity.Admin.V2:

  • Copy-AcctIdentityPool
  • Get-AcctDBConnection
  • Get-AcctDBSchema
  • Get-AcctDBVersionChangeScript
  • Get-AcctInstalledDBVersion
  • Remove-AcctServiceMetadata
  • Reset-AcctServiceGroupMembership
  • Set-AcctDBConnection
  • Set-AcctServiceMetadata
  • 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
  • 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-BrokerSite
  • 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-ProvServiceConfigurationData
  • 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 Virtual Apps and Desktops 服务发现模块

Citrix Virtual Apps and Desktops 服务可以使用单一管理方法(从网络共享访问软件包)或双管理管理方法(从 Microsoft App-V 管理服务器访问软件包)将包含在 App-V 包中的应用程序交付到端点。使用 Citrix Virtual Apps and Desktops 服务向应用程序库注册 App-V 包和 Microsoft App-V 管理和发布服务器的过程与使用本地部署注册包的过程略有差别。但是,将应用程序分配给用户并在用户的端点上启动的过程相同。

Citrix Cloud 中的服务管理控制台无法查看资源位置中的文件,也无法直接在您的基础结构上发现 App-V 包或 Microsoft App-V 服务器。发现模块包含 PowerShell 功能,您可以在资源位置中的计算机上运行,以发现 App-V 包和 Microsoft App-V 服务器以及其中包含的应用程序,并将该信息推送到 Citrix Virtual Apps and Desktops 服务。

安装和使用 App-V 包的发现模块

要求:

  • 确保 PowerShell 3.0 或更高版本在计算机上可用。
  • 确保计算机上安装了 Citrix Virtual Apps and Desktops 远程 PowerShell SDK。

要安装 App-V 包的发现模块,请执行以下操作:

下载已签名的 PowerShell 模块文件 Citrix.Cloud.AppLibrary.Admin.v1.psm1:Citrix Virtual Apps and Desktops 下载页面。(此文件也在 Support\Tools\Scripts 中的 Citrix Virtual Apps and Desktops ISO 上提供,可在本地复制或直接从 CD 驱动器引用。)

该模块包含以下高级函数,您可以从自己的 PowerShell 脚本调用这些函数:

  • Import-AppVPackageToCloud -PackagePath <App-V 包的完整 UNC 路径> 发现所有必需的信息并将其上载到 Citrix Virtual Apps and Desktop 服务,以从单个 App-V 包发布应用程序。
  • Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN <Microsoft App-V 管理服务器的 FQDN> 发现管理服务器发布的包的 UNC 路径并依次为每个路径调用 Import-AppVPackageToCloud

    注意:

    以此种方式发现的包将使用单管理管理方法加载到 Citrix Virtual Apps and Desktops 服务。Citrix Virtual Apps and Desktops 服务无法使用双管理管理方法交付包。

  • Import-AppVDualAdminToCloud -ManagementSrvUrl <Microsoft App-V 管理服务器的 URL> -PublishingServerUrl <Microsoft App-V 发布服务器的 URL> 发现 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 <Microsoft App-V 管理服务器的 URL> - PublishingServerUrl <Microsoft App-V 发布服务器的 URL> 删除添加到应用程序库的 Microsoft App-V 管理和发布服务器。

    注意:

    此 cmdlet 删除指定的 Microsoft App-V 管理和发布服务器,以及所有关联的 App-V 包。

在该资源位置内部加入了域的计算机上运行 App-V 包和服务器的发现模块:

  • 打开 PowerShell 命令提示符。不需要以管理员身份运行。
  • 添加 Citrix 管理单元:asnp citrix.*
  • 可以使用 Get-XdAuthentication cmdlet 显式进行身份验证。或者,执行第一个 App-V PS SDK 命令的第一个发现模块,这将提示您提供与 Get-XdAuthentication 相同的身份验证。
  • 要跳过身份验证提示,可以通过在 Citrix Cloud 控制台中创建的安全客户端使用 Set-XdCredentials cmdlet 创建默认的身份验证配置文件。
  • 继续执行 PS SDK cmdlet 或 PS SDK 自动化脚本。请参见以下示例。

示例活动

导入 Virtual Apps and Desktops 服务 App-V 包发现模块

import-module "D:\Support\Tools\Scripts\Citrix.Cloud.AppLibrary.Admin.v1.psm1"

循环浏览 App-V 包存储目录并上载每个包

Get-ChildItem -Path "\FileServer.domain.net\App-V Packages" -Filter *.appv |
Foreach-Object{
    Import-AppVPackageToCloud -PackagePath $_.FullName
}

发现并上载使用 Microsoft App-V 管理服务器注册的包

Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN AppVManagementServer.domain.net

发现 Microsoft App-V 管理和发布服务器并将配置添加到应用程序库

这也会导入 Microsoft App-V 管理服务器在双管理模式下管理的所有软件包。

Import-AppVDualAdminCloud -ManagementSrvUrl http://AppVManagementServer.domain.net –PublishingServerUrl http://AppVManagementServer.domain.net:8001

阅读模块中包含的 PowerShell 帮助文档

Get-Help Import-AppVPackageToCloud

限制

  • 无法直接从 Citrix Cloud 中的服务管理控制台发现资源位置基础结构上的 App-V 包。
  • Citrix Cloud 中的服务管理控制台与 Microsoft App-V 管理服务器未建立实时连接。在重新运行 Import-AppVDualAdminCloud 之前,对 Microsoft App-V 管理服务器中的软件包和其他配置所做的更改不会反映在服务管理控制台中。这与本地软件包发现行为不同(在 App-V 文档 中进行介绍)。

免责声明

本软件/示例代码“按原样”提供,不附带任何类型的表示、保证或条件。可以使用、修改和分发本软件/示例代码,风险需自行承担。CITRIX 不承诺任何形式的明示、默示、书面、口头或法定的保证,包括但不仅限于适销性、特定目的适用性、所有权和非侵权性。在不限制上述规定的通用性的原则下,您承认并同意 (a) 本软件/示例代码可能会出现错误、设计缺陷或其他问题,可能会导致数据丢失或财产损害;(b) 可能无法使本软件/示例代码完全正常运行;以及 (c) Citrix 可能会停止提供本软件/示例代码的当前版本和/或任何将来的版本,无需事先通知,也不承担任何责任。在任何情况下都不应使用本软件/代码来支持极度危险的行为,包括但不仅限于维持生命或爆破行为。根据违约责任或任何其他责任理论,CITRIX 及其分支机构或代理对使用本软件/示例代码导致的任何损害都不承担责任,包括但不仅限于直接的、特殊的、附带的、后果性的损害或其他损害,即使已被告知造成此类损害的可能性。您同意保护 Citrix 并使 Citrix 免于承担因您使用、修改或分发本代码导致的任何和所有索赔。

Monitor Service OData API

除使用监视功能显示历史数据外,还可以使用 Monitor Service 的 API 查询数据。您可以使用 API 执行以下操作:

  • 分析历史趋势以便进行未来规划
  • 对连接失败和计算机故障进行细致的故障排除
  • 提取信息以用于其他工具和流程;例如,可以使用 Microsoft Excel 的 PowerPivot 表以不同的方式显示数据
  • 基于 API 提供的数据构建自定义用户界面

有关详细信息,请参阅 Monitor Service OData API。有关访问 Monitor Service API 的说明,请参阅 使用 Citrix Cloud 中的 OData v4 端点访问 Monitor Service 数据

Citrix Virtual Apps and Desktops 服务 API

Virtual Apps and Desktops 服务 API 位于 https://developer.cloud.com/virtual-apps-and-desktops