API
在 Citrix Developer 文档站点上可以获取 Citrix Provisioning API:
升级后的 PowerShell SDK 文件
升级后位于 C:\Program Files\Citrix\PowerShell SDK
中的文件丢失。出现此问题的原因是,Citrix Provisioning 所使用的 CDF 版本与其他组件(与 Citrix Virtual Apps and Desktops 相关联)所使用的版本不一致。因此,与之前版本的 CDF 文件相比,较新的 CDF 文件的版本号更低。此问题不影响将 CPV 设备集合导入 CVAD 计算机目录的功能。要解决此问题,请执行以下操作:
- 关闭 Citrix Studio。
- 装载新的 Citrix Virtual Apps and Desktops ISO。
- 在已装载的 ISO 中,导航到 \x64\DesktopStudio。
- 右键单击 PVS PowerShell SDK x64 以显示上下文菜单。
- 选择修复。
- 运行“修复”选项。安装将根据需要添加两个 CDF 文件。
Active Directory 组枚举方法
Citrix Provisioning 控制台包含 Citrix Virtual Apps and Desktops 设置向导,提供 Citrix Provisioning、Citrix Virtual Apps and Desktops 与 Windows Active Directory 之间的集成任务。该向导将在 Citrix Provisioning、Citrix Virtual Apps and Desktops 和 Windows Active Directory 中创建 VM 以及任何必需的对象。
注意:
由于缺少公开的 API,此实现在早期版本中受到限制。如果没有此实现,Citrix Provisioning 用户将无法在其环境中运行各种自动化测试范例。
Citrix Virtual Apps and Desktops 和流 VM 向导功能由 Provisioning 服务器上的某个服务通过 PowerShell API 进行公开。此 API 提供 PowerShell 前端。它可以用于自动执行流 VM 设置向导和 Citrix Virtual Apps and Desktops 设置向导提供的功能。
提示:
Citrix Provisioning API 服务使用要求您在 Provisioning 服务器上配置 X.509 证书的 SSL 连接。
配置 X.509 证书
Citrix Provisioning API 服务使用在 Provisioning 服务器上需要 X.509 证书的 SSL 连接。该证书的 CA 证书还必须存在于服务器和控制台计算机上。
要为 Citrix Provisioning API 创建自签名证书,请执行以下操作:
- 下载并安装适用于您的 Provisioning 服务器操作系统的 Windows SDK。
- 打开一个命令提示窗口并导航到 SDK 的 bin 文件夹。默认情况下:
C:\Program Files (x86)\Windows Kits\SDK_Version\bin\x64>
并运行以下命令。 - 创建一个证书以用作您的根证书颁发机构:
makecert -n "CN= PVSRoot CA" -r -sv PVSRoot CA.pvk PVSRoot CA.cer
。 - 创建并安装服务证书:
makecert -sk PVSAP I -iv PVSRoot CA.pvk -n "CN= FQDN of the PVS Server" -ic PVSRoot CA.cer -sr localmachine -ss my -sky exchange -pe
。 - 在服务器和控制台计算机上的
Trusted Root Certification Authorities
位置中安装根 CA 证书:cert mgr -add "PVSRoot CA.cer" -s -r localMachine Root
。 - 运行配置向导。在 SOAP SSL 配置页面上,选择创建的证书。
注意:
运行 PowerShell 命令时,请为
PvsServerAddress
使用 PVS 服务器的 FQDN,为PvsServerPort
使用 54324(默认值)。
Citrix Provisioning API
要将 Provisioning API 与 Citrix Virtual Apps and Desktops 服务结合使用,必须提供凭据才能向 Citrix Cloud 进行身份验证。
将预配 API 与 Citrix Virtual Apps and Desktops 服务结合使用
使用 Citrix Virtual Apps and Desktops 服务时,在每个 Provisioning 服务器上运行的 Provisioning API 服务需要凭据才能向 Citrix Cloud 进行身份验证。提供这些凭据后,使用指定用户名运行的任何进程都使用安全客户端凭据向 Citrix Cloud 进行身份验证。
要提供这些凭证,请执行以下操作:
- 以管理员用户身份登录 Citrix Cloud 门户 IAM 页面。
- 从 Citrix Cloud IAM 页面创建安全客户端。在此页面中,还记录您的客户 ID。
- 将安全客户端下载到 PVS 服务器上的 CSV 文件。
重要: CSV 文件包含一个密钥,可用于以创建了安全客户端的用户身份向 Citrix Cloud 进行身份验证。保存并保护此文件。
- 在运行 Provisioning API 调用的每台服务器上:
- 使用 Provisioning Services 用户名运行 PowerShell 窗口。
- 下载 CSV 文件。
-
运行以下命令:
Set-XDCredentials -CustomerId "<customerIDFromPortal>" -SecureClientFile "<CSVPath>" -ProfileType CloudAPI –StoreAs "default" <!--NeedCopy-->
- 删除下载的 CSV 文件副本。
使用 Citrix Provisioning API
安装最新的 Citrix Provisioning 服务器后:
- 运行配置向导。
- 在 Provisioning 服务器上打开服务窗口,并确认 Citrix Provisioning API 是否已安装并配置为以管理员身份运行。
提示:
Citrix Provisioning API 服务使用要求您在 Provisioning 服务器上配置 X.509 证书的 SSL 连接。
在 Provisioning 服务器上打开 PowerShell 窗口并导入命令模块:
-
Import-Module "C:\Program Files\Citrix\Provisioning Services\Citrix.ProvisioningServices.dll"
。 -
Get-Command-Module Citrix.ProvisioningServices
。 - 对 Citrix Provisioning API 服务执行 ping 操作:Get-PvsApiServiceStatus -PvsServerAddress PVS 服务器的 FQDN -PvsServerPort 配置 PVS API 要侦听的端口
提示:
Provisioning 服务器端口号是用于 SOAP 服务器通信的端口号。
(使用以下任一命令)登录 Citrix Provisioning API:
使用域/用户名/密码参数:
Get-PvsConnection -PvsServerAddress
PVS 服务器的 FQDN -PvsServerPort
SOAP 端口 +1 配置 PVS API 要侦听的端口 -Domain
PVS 管理员域 -Username
PVS 管理员用户名 -Password
PVS 管理员密码
使用 Pass-in PSCredential 对象:
Get-PvsConnection -PvsServerAddress
PVS 服务器的地址 PvsServerPort-Credentials
Get-Credential 返回的 PSCredential 对象
以下 cmdlet 随附在 Citrix Provisioning API 实现中:
- Get-PvsApiServiceStatus。ping 设备以确定服务是否已在特定地址/端口启动并运行。
- Get-PvsConnection。登录 Citrix Provisioning API。
- Clear-PvsConnection。注销 Citrix Provisioning API。此 cmdlet 会将身份验证令牌添加到阻止列表中。
- Start-PvsProvisionXdMachines。用于自动执行 Citrix Virtual Apps and Desktops 设置向导。
- Start-PvsProvisionMachines。用于流 VM 设置向导自动化。
- Get-PvsProvisioningStatus。使用从前两个命令之一返回的 ID 来获取当前预配会话的状态。
- Stop-PvsProvisionMachines。使用从前两个命令之一返回的 ID 来取消当前预配会话。
可以使用 Get-Help CommandName – Examples
访问这些 PowerShell cmdlet 的示例:
提示:
其余 PowerShell cmdlet 都是数据库访问层的一部分。
使用 Set -PvsConnection
PowerShell 命令连接到 API 时,将返回一个连接对象,
类似于以下内容:
在 Citrix Provisioning 中,用户访问控制方法建立在用户的 Active Directory 登录凭据和管理组配置的基础之上。通过这种方法,AD 组枚举将重复触发与配置向导和控制台操作相关联的事件。在可能会发生虚假登录的复杂 AD 环境中,系统会变得缓慢,并且响应速度慢会导致与 Citrix Provisioning 控制台的连接出现超时。此功能通过改进负责 AD 组枚举的方法解决了此类问题。
在推出此功能之前,通过扫描 AD 组域和整个可信域中与用户登录相关联的成员身份来进行 AD 组枚举。此过程将继续进行,直到确定用户的所有组成员身份或者没有要搜索的任何其他域为止。确定的组将与在数据库中定义的管理组相比较,以确定用户的访问权限。
借助此功能,AD 组枚举功能将增强,以针对用户的登录成员身份智能地搜索首选域。此方法与跨所有域搜索整个组的方法不同。与用户的登录凭据关联的管理组名称用于提供首选域列表。先搜索用户的域列表,然后搜索首选列表。在此搜索过程中,如果发现了场的管理组,搜索将停止,因为用户已对 Citrix Provisioning 场具有完全访问权限。此搜索范例还包括一个使用域安全 ID 来验证域是否包含目标组的机制。这一修改后的面向用户的登录成员身份的域搜索方法能满足大多数 AD 环境的需求,使得配置向导和 Provisioning 控制台操作的速度更快。