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 DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)结合使用,必须提供凭据才能向 Citrix Cloud 进行身份验证。
将 Provisioning API 与 Citrix DaaS 结合使用
使用 Citrix DaaS 时,在每个 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 命令,因为这些命令都是数据库访问层的一部分。
使用 Set -PvsConnection
PowerShell 命令连接到 API 时,将返回一个连接对象,
类似于以下内容:
在 Citrix Provisioning 中,用户访问控制方法建立在用户的 Active Directory 登录凭据和管理组配置的基础之上。通过这种方法,AD 组枚举将重复触发与配置向导和控制台操作相关联的事件。在可能会发生虚假登录的复杂 AD 环境中,系统会变得缓慢,并且响应速度慢会导致与 Citrix Provisioning 控制台的连接出现超时。此功能通过改进负责 AD 组枚举的方法解决了此类问题。
在推出此功能之前,通过扫描 AD 组域和整个可信域中与用户登录相关联的成员身份来进行 AD 组枚举。此过程将继续进行,直到确定用户的所有组成员身份或者没有要搜索的任何其他域为止。确定的组将与在数据库中定义的管理组相比较,以确定用户的访问权限。
借助此功能,AD 组枚举功能将增强,以针对用户的登录成员身份智能地搜索首选域。此方法与跨所有域搜索整个组的方法不同。与用户的登录凭据关联的管理组名称用于提供首选域列表。先搜索用户的域列表,然后搜索首选列表。在此搜索过程中,如果发现了场的管理组,搜索将停止,因为用户已对 Citrix Provisioning 场具有完全访问权限。此搜索范例还包括一个使用域安全 ID 来验证域是否包含目标组的机制。这一修改后的面向用户的登录成员身份的域搜索方法能满足大多数 AD 环境的需求,使得配置向导和 Provisioning 控制台操作的速度更快。
使用 BDM PowerShell
-
在 Provisioning 服务器上打开 PowerShell 窗口,然后运行
installutil.exe
以使 BDM PowerShell 命令可用。PS C:\Users\Administrator.MCU> c:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe 'C:\Program Files\Citrix\Provisioning Services\BdmPowerShellSdk.dll' <!--NeedCopy-->
-
运行以下命令以获取与运行这些命令以创建引导设备管理器的相关帮助。
PS C:\Users\Administrator.MCU> get-help -examples New-BootDeviceManager <!--NeedCopy-->