API

Citrix Provisioning 可以使用两个 API。

重要:

升级后,位于 C:\Program Files\Citrix\PowerShell SDK 中的文件丢失。出现此问题的原因是,Citrix Provisioning 所使用的 CDF 版本与其他组件(与 Citrix Virtual Apps and Desktops 相关联)所使用的版本不一致。因此,与之前版本的 CDF 文件相比,较新的 CDF 文件的版本号更低。此问题不影响将 CPV 设备集合导入 CVAD 计算机目录的功能。要解决此问题,请执行以下操作:

  1. 关闭 Citrix Studio。
  2. 装载新的 Citrix Virtual Apps and Desktops ISO。
  3. 在已装载的 ISO 中,导航到 \x64\DesktopStudio。
  4. 右键单击 PVS PowerShell SDK x64 以显示上下文菜单。
  5. 选择修复
  6. 运行“修复”选项。安装将根据需要添加两个 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 创建自签名证书,请执行以下操作:

  1. 下载并安装适用于您的 Provisioning 服务器操作系统的 Windows SDK
  2. 打开一个命令提示窗口并导航到 SDK 的 bin 文件夹。默认命令为:C:\Program Files (x86)\Windows Kits\SDK_Version\bin\x64> 并执行以下命令。
  3. 创建一个证书以充当您的根证书颁发机构:makecert -n “CN= PVSRoot CA” -r -sv PVSRoot CA.pvk PVSRoot CA.cer
  4. 创建并安装服务证书: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
  5. 在服务器和控制台计算机上的可信根证书颁发机构位置中安装根 CA 证书:cert mgr -add “PVSRoot CA.cer” -s -r localMachine Root
  6. 运行配置向导。在 SOAP SSL 配置页面上,选择创建的证书。

注意:

运行 PowerShell 命令时,请为 PvsServerAddress 使用 PVS 服务器的 FQDN,为 PvsServerPort 使用 54324(默认值)。

使用 Citrix Provisioning API

安装最新的 Citrix Provisioning 服务器后:

  1. 运行配置向导。
  2. 在 Provisioning 服务器上打开服务窗口,并确认 Citrix Provisioning API 是否已安装并配置为以管理员身份运行:

提示:

Citrix Provisioning API 服务使用要求您在 Provisioning 服务器上配置 X.509 证书的 SSL 连接。

控制台站点

  1. 在 Provisioning 服务器上打开 PowerShell 窗口:

a.Import-Module C:Program Files\Citrix\Provisioning Services\Citrix.ProvisioningServices.dll

b. Get-Command-Module

下图说明了命令选项:

控制台站点

c. 对 Citrix Provisioning API 服务执行 ping 操作:Get-PvsApiServiceStatus -PvsServerAddress PVS 服务器的 FQDN -PvsServerPort 配置 PVS API 要侦听的端口

提示:

Provisioning 服务器端口号是用于 SOAP 服务器通信的端口号。

控制台站点

d.(使用以下任一命令)登录 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 - 示例访问这些 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 控制台操作的速度更快。

修改搜索方法

对于某些 AD 环境,即包含复杂嵌套组的配置以及具有大量信任关联的域,默认搜索方法可能找不到用户预期的管理成员身份。为解决此类情形,请使用注册表设置更改搜索方法:

  1. 在注册表设置中,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ProvisioningServices。
  2. 创建一个名为“DomainSelectOption”的 DWORD。
  3. DomainSelectOption DWORD 中,为所需的搜索方法设置以下值之一(十进制格式):
  • 0 – 默认搜索。此方法首先搜索用户的域,然后搜索管理组域。
  • 1 – 首先在用户的域和管理组域中进行搜索,然后搜索用户的域中的其他可信域。
  • 2 – 已过时。
  • 3 – 首先在用户的域中搜索,然后在管理组域中搜索。发现的组将越过父组的域进一步被枚举。
  • 4 – 首先在用户的域和管理组域中进行搜索,然后搜索用户的域中的其他可信域。发现的组将越过父组的域进一步被枚举。