Citrix Virtual Apps and Desktops

服务窗口

服务窗口功能提供了一种在 MCS 预配的 VM 上安排和自动化操作的功能。此功能目前支持各种操作,例如重置操作系统磁盘和硬件配置更改。您可以安排这些操作,稍后返回验证完成情况,而不是手动执行更新。

您可以为特定的 VM 列表或整个计算机目录安排操作。每个操作都在指定时间运行。可以为同一 VM 安排多个操作。但是,您不能为单个 VM 安排多个硬件更新。

您还可以:

  • 为服务窗口添加一个描述。
  • 提供详细消息,以便在操作运行时显示给任何已登录的用户。
  • 指定任务元数据在完成之后应保留的天数。
  • 配置在操作强制执行之前,为已登录用户保存工作而授予的缓冲分钟数。

主要优势

改进的用户体验和连续性

  • 优雅的会话处理:您可以定义专业的通知,以便在 VM 关闭之前保存工作,而不是突然断开连接。
  • 计划停机时间:您可以将繁重的更新任务移至非高峰时段(例如,凌晨 2:00),而无需您在该时间手动登录。
  • 经济高效的硬件更新:使用服务窗口更新硬件可在大规模实施中节省大量成本。此功能会自动分析 VM 是否需要重新启动才能应用设置。因此,通过避免不必要的重新启动,服务窗口可最大限度地降低这些费用。

先进的硬件灵活性

  • 更新硬件配置:使用服务窗口安排硬件更新。系统智能地管理更新流程,检查是否需要重新启动并处理会话注销,确保您的目录不断发展以满足新的资源需求,无需人工干预。
  • 灵活的 SKU 重新配置:轻松更新 SKU,以前需要手动重新创建目录。
  • 对现有 VM 的休眠支持:克服了“临时磁盘”的限制。服务窗口允许 MCSIO 驱动程序将页面文件重新定位到 C: 驱动器,并对已部署的 VM 启用休眠属性。

重要注意事项

  • 用户通知:已登录用户会收到有关服务窗口操作的初始警报,确保他们有足够的时间保存工作。通知期结束后,计算机将自动关机以执行操作。

服务窗口的各项操作

服务窗口目前支持操作系统磁盘重置、修复现有 MCS 预配目录的 Active Directory 帐户、为现有 MCS 预配目录启用 Entra 混合加入以及硬件配置更改。这些操作可以使用 Web Studio 或 PowerShell 执行。

Web Studio:目前仅支持 Azure 环境。有关指导,请参阅特定的管理程序文章。

PowerShell 命令:本文概述了通用命令,而详细的、特定于管理程序的脚本可在我们的 GitHub 页面 https://github.com/citrix/citrix-mcs-sdk-samples/ 上找到。

重置操作系统磁盘

操作系统磁盘重置可以使用 PowerShell 命令 New-ProvMaintenanceCycle 完成。该命令会为整个目录或特定 VM 创建一个新的服务窗口。周期从您在 ScheduledStartTimeInUTC 中指定的时间开始。您还需要提供 MaxDurationInMinutes,它表示服务窗口可以运行的最长时间。

示例:重置特定 VM 的操作系统磁盘

New-ProvMaintenanceCycle -Operation ResetOSDisk -MaintenanceCycleDescription "Resetting Boot Disk" -StartsNow -MaxDurationInMinutes 100 -ProvisioningSchemeName CVC -PurgeDBAfterInDays 1 -SessionWarningTimeInMinutes 15 -SessionWarningLogOffTitle "Scheduled Maintenance" -SessionWarningLogOffMessage "There is a scheduled maintenance coming up and involves turning off the machine, please save your work and log out, Thank You" -VMName VDA02,VDA03
<!--NeedCopy-->

示例:重置整个目录的操作系统磁盘

New-ProvMaintenanceCycle -Operation ResetOSDisk -MaintenanceCycleDescription "Resetting Boot Disk" -StartsNow -MaxDurationInMinutes 100 -ProvisioningSchemeName CVC -PurgeDBAfterInDays 1 -SessionWarningTimeInMinutes 15 -SessionWarningLogOffTitle "Scheduled Maintenance" -SessionWarningLogOffMessage "There is a scheduled maintenance coming up and involves turning off the machine, please save your work and log out, Thank You" -AllVMs
<!--NeedCopy-->

更新硬件设置

使用服务窗口安排硬件更新,从而完全控制更改何时生效。您可以选择仅针对新创建的 VM、整个目录(新 VM 和现有 VM)或根据需要针对特定 VM。

  • 要更新新 VM 或整个目录的硬件设置,请选择一个预配方案版本并运行 PowerShell 命令 New-ProvSchemeHardwareUpdate。您可以将以前创建的预配方案版本应用于 VM。您还可以在具有临时磁盘的 VM 上启用休眠。
  • 要更新特定 VM 的硬件设置,请选择一个 VM 配置版本,然后运行 PowerShell 命令 New-ProvVmHardwareUpdate

重要注意事项

  • 在计划硬件更新后添加到目录的新计算机将继续使用旧规范创建,直到应用新规范的指定 UTC 时间。
  • 在服务窗口创建过程中,单个验证失败会阻止周期的创建并返回错误消息。
  • 要启用休眠,请考虑以下事项:
    • VDA 版本必须高于 2503。
    • 必须安装机器创建服务输入/输出 (MCSIO)。
    • 计算机配置文件必须支持休眠。
    • VM SKU 和操作系统必须支持休眠。
    • 如果启用了 VBS,则必须同时启用 Hyper-V。嵌套虚拟化要求 VM 上启用受信任启动。
    • 可用操作系统磁盘大小必须大于 VM 的内存大小。

计划对整个计算机目录或新 VM 进行硬件更新

  1. 运行 New-ProvSchemeVersion 以创建具有更新硬件设置的新预配方案版本。有关详细信息,请参阅 SDK 文档
  2. 运行 PowerShell 命令 New-ProvSchemeHardwareUpdate 以根据预配方案版本中指定的硬件更新计划服务窗口。

示例:计算机目录中的 AllVMs(新的和现有的)被考虑进行更新:

New-ProvSchemeHardwareUpdate -ProvisioningSchemeVersion 4 -MaintenanceCycleDescription "Updating RAM and CPU Count to 8GB and 4" -StartsNow -MaxDurationInMinutes 100 -ProvisioningSchemeName CVC -PurgeDBAfterInDays 1 -SessionWarningTimeInMinutes 15 -SessionWarningLogOffTitle "Scheduled Maintenance" -SessionWarningLogOffMessage "There is a scheduled maintenance coming up and involves turning off the machine, please save your work and log out, Thank You" -AllVMs
<!--NeedCopy-->

示例: 机器目录中的 NewVMsOnly(新的和现有的)被考虑用于更新:

New-ProvSchemeHardwareUpdate -ProvisioningSchemeVersion 4 -MaintenanceCycleDescription "Updating RAM and CPU Count to 8GB and 4" -StartsNow -MaxDurationInMinutes 100 -ProvisioningSchemeName CVC -PurgeDBAfterInDays 1 -SessionWarningTimeInMinutes 15 -SessionWarningLogOffTitle "Scheduled Maintenance" -SessionWarningLogOffMessage "There is a scheduled maintenance coming up and involves turning off the machine, please save your work and log out, Thank You" -NewVMsOnly
<!--NeedCopy-->

运行 Get-ProvSchemeHardwareUpdate 以检索与硬件方案更新关联的服务窗口对象。示例:

Get-ProvSchemeHardwareUpdate -MaintenanceCycleId xxxx-xxxx-yyyy-zzzz
<!--NeedCopy-->

在特定 VM 上安排硬件更新

  1. 运行 New-ProvVmConfiguration 以创建新的预配 VM 配置。有关详细信息,请参阅 SDK 文档

  2. 运行 PowerShell 命令 New-ProvVmHardwareUpdate 以根据 VM 配置版本中指定的安排硬件更新的服务窗口。

注意:

对于每个 VM,任何个性化设置(VM 配置版本)始终优先于预配方案版本中定义的规范。如果 VM 上未个性化特定设置,则其值将从关联的预配方案版本继承。

示例

New-ProvVmHardwareUpdate -ProvVmConfigurationVersion 4 -StartsNow -MaxDurationInMinutes 100 -ProvisioningSchemeName CVC -VMName AbcTest01
<!--NeedCopy-->

运行 Get-ProvVmHardwareUpdate 以检索与硬件 VM 更新关联的服务窗口对象。示例:

Get-ProvVmHardwareUpdate -MaintenanceCycleId xxxx-xxxx-yyyy-zzzz
<!--NeedCopy-->

您还可以使用 Remove-ProvVmConfiguration 命令删除用于创建预配 VM 版本的个性化设置。示例:

Remove-ProvVmConfiguration -Version 2 -VMName AbcTest01
<!--NeedCopy-->

修复现有目录的 AD 帐户

您可以使用服务窗口修复现有本地 AD 加入和 Microsoft Entra 混合加入的 MCS 计算机目录的 Active Directory (AD) 计算机帐户。当 VM 失去域信任时,此功能非常有用。此功能适用于持久和非持久 MCS 计算机目录。

要修复现有 MCS 计算机目录的 AD 帐户,您可以使用 PowerShell 命令完成以下步骤:

  1. 打开一个 PowerShell 终端窗口。
  2. 运行 asnp citrix* 命令,以加载 Citrix 专用的 PowerShell 模块。
  3. 通过以下任一方式运行 New-ProvIdentityUpdate 命令:

    • 按名称修复特定虚拟机的 AD 帐户:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'repair AD account' -Operation RepairADAccount -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -VMName @("vm-1", "vm-2") -StartsNow
       <!--NeedCopy-->
      
    • 要将操作安排在将来某个时间而不是立即开始:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'repair AD account' -Operation RepairADAccount -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -AllVMs -ScheduledStartTimeInUTC "2026-04-01T02:00:00Z"
       <!--NeedCopy-->
      
  4. 运行 Get-ProvMaintenanceCycle 以检查维护周期的状态。

有关详细信息,请参阅 Citrix PowerShell 开发工具包

注意:

  • 此功能仅适用于已加入本地 Active Directory 和已加入 Microsoft Entra 混合的 MCS 计算机目录。它不支持已加入 Entra ID 和未加入域的计算机。
  • 预配方案的身份池必须具有一个本地 Active Directory 服务帐户,该帐户具有足够的权限来重置域中计算机帐户的密码。

为现有 MCS 预配目录启用 Entra 混合加入

您现在可以使用服务窗口将现有已加入本地 Active Directory 的 MCS 计算机目录转换为已加入 Microsoft Entra 混合的目录。此功能适用于持久性和非持久性 MCS 计算机目录。

要为现有 MCS 计算机目录启用 Entra 混合加入,您可以使用 PowerShell 命令完成以下步骤:

  1. 打开 PowerShell 命令行窗口。
  2. 运行 asnp citrix* 以加载思杰特定的 PowerShell 模块。
  3. 通过以下任一方式运行 New-ProvIdentityUpdate 命令:

    • 要立即为目录中的所有 VM 启用 Entra 混合加入:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'enable Entra hybrid join' -Operation MigrateActiveDirectoryToEntraHybridJoin -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -VMName @("vm-1", "vm-2") -StartsNow
       <!--NeedCopy-->
      
    • 按名称为特定虚拟机启用 Entra 混合加入:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'enable Entra hybrid join' -Operation MigrateActiveDirectoryToEntraHybridJoin -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -VMName @("vm-1", "vm-2") -StartsNow
       <!--NeedCopy-->
      
    • 启用 Entra 混合加入并为新虚拟机指定目标 OU:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'enable Entra hybrid join' -Operation MigrateActiveDirectoryToEntraHybridJoin -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -AllVMs -StartsNow -OU "OU=SyncedDevices,DC=example,DC=com"
       <!--NeedCopy-->
      
    • 安排操作在将来某个时间执行,而不是立即开始:

       New-ProvIdentityUpdate -MaintenanceCycleDescription 'enable Entra hybrid join' -Operation MigrateActiveDirectoryToEntraHybridJoin -MaxDurationInMinutes 60 -ProvisioningSchemeName <catalog-name> -AllVMs -ScheduledStartTimeInUTC "2026-04-01T02:00:00Z"
       <!--NeedCopy-->
      
  4. 运行 Get-ProvMaintenanceCycle 以检查维护周期的状态。

有关详细信息,请参阅 思杰 PowerShell SDK

注意:

  • 为确保目录正常工作,您必须将目录中所有现有的虚拟机转换为 Microsoft Entra 混合加入。
  • 此功能不支持共享身份池的 MCS 预配目录。
  • 现有预配方案的基础映像必须安装 VDA 2212 或更高版本,请参阅 Microsoft Entra 混合联接的要求
  • 预配方案的身份池必须具有一个本地 Active Directory 服务帐户,该帐户具有在域中设置 userCertificate 属性的权限。
  • 确保包含计算机帐户的 OU 配置为通过 Microsoft Entra Connect 同步到 Entra ID。您有两种选择:

    • 配置 Azure AD Connect 以将设备从原始组织单位同步到 Entra ID。
    • 手动将现有计算机帐户移动到已配置 Azure AD Connect 同步的 OU 中。

与服务窗口相关的其他 PowerShell 命令

  • Get-ProvMaintenanceCycle:检索所有服务窗口的信息。示例:

     Get-ProvMaintenanceCycle -MaintenanceCycleId 10073b8e-7e94-4527-8580-0e448eae0ad1
     <!--NeedCopy-->
    
  • Get-ProvMaintenanceCycleVM: 检索每个虚拟机(VM)的服务窗口操作信息及其状态。示例:

     Get-ProvMaintenanceCycleVM -MaintenanceOperation HardwareUpdate -VirtualMachineSid 42263076-44ae-1ff9-f58b-62d57ddf8db5
     <!--NeedCopy-->
    

    各种服务窗口状态如下:

    • 正在运行
    • 失败
    • 已完成
    • 正在取消
    • 已取消
    • 未处理
    • 待处理
    • 不完整
    • 已修复
    • 正在恢复
  • Remove-ProvMaintenanceCycle: 当服务窗口不活动时,移除该服务窗口。示例:

     Remove-ProvMaintenanceCycle -MaintenanceCycleId 867af1ba-5b72-402e-9dc3-033298248f8e
     <!--NeedCopy-->
    
  • Cancel-ProvMaintenanceCycle: 如果操作尚未由 MCS 在虚拟机上启动,则此 PowerShell 命令会取消该操作。MCS 不会取消当前正在虚拟机上运行的操作。示例:

     Cancel-ProvMaintenanceCycle -MaintenanceCycleId 867af1ba-5b72-402e-9dc3-033298248f8e
     <!--NeedCopy-->
    
  • Restart-ProvMaintenanceCycle: 如果服务窗口因外部原因(例如虚拟机管理程序停机或时间不足)而失败或不完整,此命令有助于重新启动周期并处理任何失败或未处理的作业。示例:

     Restart-ProvMaintenanceCycle -MaintenanceCycleId 4f363b78-458a-403a-82e5-7fcc6caa498b -ScheduledStartTimeInUTC "June 19th 2024, 6AM" -MaxAllocatedDurationInMinutes 400
     <!--NeedCopy-->
    
  • Update-ProvMaintenanceCycle:如果服务窗口已计划但尚未开始,此命令会更改某些参数。

    示例:更新最长持续时间:

     Update-ProvMaintenanceCycle -MaintenanceCycleId 4f363b78-458a-403a-82e5-7fcc6caa498b -MaxDurationInMinutes 100
     <!--NeedCopy-->
    

    示例:更新预配方案的 VM:

     Update-ProvMaintenanceCycle -MaintenanceCycleId 4f363b78-458a-403a-82e5-7fcc6caa498b -ProvisioningSchemeUid 867af1ba-5b72-402e-9dc3-033298248f8e -VMName ncn01,ncn02
     <!--NeedCopy-->
    

后续步骤

有关使用 Azure 中的 Web Studio 管理服务窗口操作的信息,请参阅 Azure 中的服务窗口操作