创建 AWS 目录

Last published : Nov 13, 2026
(/zh-cn/citrix-virtual-apps-desktops/2402-ltsr/install-configure/machine-catalogs-create.html) 介绍了创建计算机目录的向导。以下信息涵盖了 AWS 虚拟化环境特有的详细信息。
注意:
在创建 AWS 目录之前,您需要完成与 AWS 的连接创建。请参阅 (/zh-cn/citrix-virtual-apps-desktops/2402-ltsr/install-configure/connections/connection-aws.html)。

限制

从 Citrix Virtual Apps and Desktops™ 2203 LTSR 及更高版本开始,MCS AWS 插件会进行 DescribeInstanceTypes AWS API 调用,如果成功,MCS 将使用从 API 响应创建的清单名称。
因此,当您从 CVAD 1912 升级到 2203 或更高版本时,请禁用 AWS 上的 DefineInstanceType 权限,然后使用 Set-ProvScheme 命令更新现有目录以匹配 AWS 命名方案。然后,在目录更新完成且服务产品与 AWS 命名方案匹配后,重新添加 DescribeInstanceType 权限。

映像准备期间的网络设置

在映像准备期间,会基于原始 VM 创建一个准备虚拟机 (VM)。此准备 VM 与网络断开连接。为了断开准备 VM 的网络连接,会创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持久存在并被重复使用。该网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。

配置 AWS 租用

AWS 提供以下租用选项:
  • 共享租用(默认类型):来自不同客户的多个 Amazon EC2 实例可能驻留在同一物理硬件上。
  • 专用租用:您的 EC2 实例仅在您部署了其他实例的硬件上运行。其他客户不使用同一块硬件。
您可以使用 MCS 通过 PowerShell 预配 AWS 专用主机。

使用 PowerShell 配置 AWS 专用主机租用

您可以创建通过 PowerShell 定义了主机租用的计算机目录。
Amazon 专用主机是具有 实例容量的物理服务器,完全专用,允许您使用现有的按插槽或按 VM 软件许可证。
专用主机具有基于实例类型的预设利用率。例如,单个分配的 C4 Large 实例类型的专用主机限制为运行 16 个实例。有关更多信息,请参阅 AWS 网站。
预配到 AWS 主机的要求包括:
  • 导入的 BYOL(自带许可证)映像 (AMI)。对于专用主机,请使用和管理您现有的许可证。
  • 具有足够利用率的专用主机分配,以满足预配请求。
  • 启用 自动放置。
要使用 PowerShell 在 AWS 中预配到专用主机,请使用 New-ProvScheme cmdlet 并将参数 TenancyType 设置为 Host。
有关详细信息,请参阅 Citrix 开发人员文档。

从 AMI 捕获计算机属性

在 AWS 中使用 Machine Creation Services (MCS) 创建目录以预配计算机时,您需要选择一个 AMI 来表示该目录的主映像/黄金映像。MCS 会从该 AMI 使用磁盘快照。在以前的版本中,如果要在计算机上设置角色或标签,则需要使用 AWS 控制台单独设置它们。此功能默认启用。
提示:
要使用 AWS 实例属性捕获功能,您必须有一个与 AMI 关联的 VM。
为了改进此过程,MCS 会读取从中获取 AMI 的实例的属性,并将计算机的身份和访问管理 (IAM) 角色和标签应用于为给定目录预配的计算机。使用此可选功能时,目录创建过程会查找选定的 AMI 源实例,并读取一组有限的属性。然后,这些属性将存储在 AWS 启动模板中,该模板用于为该目录预配计算机。目录中的任何计算机都将继承捕获的实例属性。
捕获的属性包括:
  • IAM 角色 – 应用于预配的实例。
  • 标签 – 应用于预配的实例、其磁盘和 NIC。这些标签应用于临时 Citrix® 资源,包括:S3 存储桶和对象,以及 AMI、快照和启动模板。
提示:
临时 Citrix 资源的标记是可选的,并且可以使用自定义属性 AwsOperationalResourcesTagging 进行配置。

捕获 AWS 实例属性

您可以通过在为 AWS 托管连接创建预配方案时指定自定义属性 AwsCaptureInstanceProperties 来使用此功能:
New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true" …<standard provscheme parameters
有关详细信息,请参阅 Citrix 开发人员文档。
注意:
AwsCaptureInstanceProperties 已弃用。我们建议改用计算机配置文件来指定 VM 的计算机属性。

从计算机配置文件捕获计算机属性

使用 MCS 创建目录以预配 AWS 计算机时,可以使用计算机配置文件预设某些计算机属性设置。
为此,请执行以下步骤:
  1. 将计算机配置文件存储在与您创建此目录的资源相同的可用区中。
  2. 在目录创建向导的“计算机模板”页面上,选择“使用计算机配置文件”。将显示与您选择的资源位于同一可用区中的计算机配置文件。
  3. 根据需要选择计算机配置文件。
注意:
您可以使用计算机配置文件或 AMI 来捕获计算机属性。在 Web Studio 中,当您选择“使用计算机配置文件”时,“将计算机模板属性应用于虚拟机”选项将自动隐藏。

标记 AWS 操作资源

使用 MCS 在 AWS 中创建目录以预配计算机时,可以控制是否将 IAM 角色和标记属性应用于这些计算机。您还可以控制是否将计算机标记应用于操作资源。
Amazon Machine Image (AMI) 表示一种虚拟设备类型,用于在 Amazon 云环境(通常称为 EC2)中创建虚拟机。您可以使用 AMI 部署使用 EC2 环境的服务。当您创建目录以使用 MCS for AWS 预配计算机时,您选择 AMI 作为该目录的黄金映像。
重要提示:
使用操作资源标记需要通过捕获实例属性和启动模板来创建目录。
要创建 AWS 目录,必须首先为您希望作为黄金映像的实例创建 AMI。MCS 从该实例读取标记并将其合并到启动模板中。然后,启动模板标记将应用于在您的 AWS 环境中创建的所有 Citrix 资源,包括:
  • 虚拟机
  • VM 磁盘
  • VM 网络接口
  • S3 存储桶
  • S3 对象
  • 启动模板
  • AMI

标记操作资源

要使用 PowerShell 标记资源,请执行以下操作:
  1. 从 DDC 主机打开 PowerShell 窗口。
  2. 运行命令 asnp citrix 以加载 Citrix 特定的 PowerShell 模块。
要为预配的 VM 标记资源,请使用新的自定义属性 AwsOperationalResourcesTagging。此属性的语法为:
New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true" …<standard provscheme parameters>

下一步操作

复制虚拟机上的标签

您可以将计算机配置文件中指定的 NIC 和磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标签复制到 MCS 计算机目录中新创建的虚拟机。您可以在任何计算机配置文件源(AWS 虚拟机实例或 AWS 启动模板版本)中指定这些标签。此功能适用于持久和非持久计算机目录和虚拟机。
注意:
  • 在 AWS EC2 控制台中,您无法在“启动模板版本资源标记”下看到“标记网络接口”值。但是,您可以运行 PowerShell 命令 aws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12 来查看标记规范。
  • 如果计算机配置文件源(虚拟机或启动模板版本)有两个网络接口(eni-1 和 eni-2),并且 eni-1 具有标签 t1,eni-2 具有标签 t2,则虚拟机将获得这两个网络接口的标签。

使用计算机配置文件创建目录

在 AWS 中使用 Machine Creation Services™ (MCS) 创建目录以预配计算机时,您现在可以使用计算机配置文件从 EC2 实例 (VM) 或启动模板版本捕获硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)EBS 卷属性、实例类型、EBS 优化以及其他受支持的 AWS 配置。编辑目录时,可以通过提供不同的 VM 或启动模板来更改预配计算机的计算机配置文件。
注意:
EBS 卷属性仅从计算机配置文件派生。

重要注意事项

创建 MCS 计算机目录时的重要注意事项:
  • 如果您在 New-ProvScheme 和 Set-ProvScheme 命令中添加机器硬件属性参数,则参数中提供的值将覆盖机器配置文件中的值。
  • 如果您将 AwsCaptureInstanceProperties 设置为 true 并且未设置 MachineProfile 属性,则仅捕获 IAM 角色和标签。
  • 您不能同时设置 AwsCaptureInstanceProperties 和 MachineProfile。
    **注意:
    AwsCaptureInstanceProperties 已弃用。
  • 您必须明确提供以下属性的值:
    • TenancyType
    • 安全组
    • NIC 或虚拟网络
  • 仅当您启用 AwsCaptureInstanceProperties 或指定机器配置文件时,才能启用 AwsOperationalResourcesTagging。
创建 MCS 计算机目录后的重要注意事项:
  • 只有添加到目录中的新 VM 会受到此更改的影响。
  • 您无法将目录从基于计算机配置文件的目录更改为非基于计算机配置文件的目录。

使用机器配置文件创建计算机目录

要使用计算机配置文件创建计算机目录,请执行以下操作:
  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 如果尚未创建,请创建身份池。例如,
    New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric
  4. 运行 New-ProvScheme 命令。例如:
    New-ProvScheme -ProvisioningSchemeName demet-test-1
    -HostingUnitUid aa633238-9xxd-4cf6-80e8-232a758a1xx1
    -IdentityPoolUid 34d5b088-e312-416f-907d-16573xxxxxc4
    -CleanOnBoot
    -MasterImageVM 'XDHyp:\HostingUnits\cvad-test-scalestress\citrix-demet-ami.0 (ami-0ca813xxxxxx061ef).template'
    -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm'
  5. 完成目录创建。有关详细信息,请参阅 Citrix PowerShell SDK。
要更新最初使用计算机配置文件预配的目录上的计算机配置文件:
  1. 运行 Set-ProvScheme 命令。例如,
    Set-ProvScheme `
    -ProvisioningSchemeUid "<ID" `
    -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm"

使用启动模板版本创建目录

您可以创建 MCS 计算机目录,其中启动模板版本作为计算机配置文件输入。您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。
在 AWS EC2 控制台中,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该启动模板版本的属性将复制到预配的 VDA VM。
以下属性可以使用计算机配置文件输入提供,也可以作为 New-ProvScheme 或 Set-ProvScheme 命令中的参数显式提供。如果它们在 New-ProvScheme 或 Set-ProvScheme 命令中提供,则它们优先于这些属性的计算机配置文件值。
  • 服务产品
  • 网络
  • 安全组
  • 租用类型
注意:
如果计算机配置文件启动模板中未提供服务产品,或者未作为 New-ProvScheme 命令中的参数提供,则会收到相应的错误。
要使用启动模板版本作为计算机配置文件输入来创建目录:
  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 获取启动模板的启动模板版本列表。例如:
    XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath
  4. 如果尚未创建身份池,请创建一个。例如:
    New-AcctIdentityPool `
    -IdentityPoolName "abc11" `
    -NamingScheme "abc1-##" `
    -NamingSchemeType Numeric `
    -Domain "citrix-xxxxxx.local" `
    -ZoneUid "xxxxxxxx" `
  5. 创建预配方案,其中启动模板版本作为计算机配置文件输入。例如:
    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid "c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid "bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion"
    您还可以覆盖服务产品、安全组、租用和网络等参数。例如:
    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid " c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid " bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxx).launchtemplate\lt-01xxxx (1).launchtemplateversion" `
    -ServiceOffering "XDHyp:\HostingUnits\xxxd-ue1a\T3 Large Instance.serviceoffering"
  6. 将预配方案注册为代理目录。例如:
    New-BrokerCatalog -Name "MPLT1" `
    -AllocationType Random `
    -Description "Machine profile catalog" `
    -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx `
    -ProvisioningType Mcs `
    -SessionSupport MultiSession `
    -PersistUserChanges Discard
  7. 完成目录创建。有关详细信息,请参阅 Citrix PowerShell SDK
您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。例如:
  • 要将计算机配置文件目录的输入从 VM 更新为启动模板版本:
    Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion"
  • 要将计算机配置文件目录的输入从启动模板版本更新为 VM:
    Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
    -MachineProfile "XDHyp:\HostingUnits\sard-ue1a\us-east-1a.availabilityzone\apollo-non-persistent-vda-win2022-2 (i-08xxxxxxxxx).vm"

筛选 VM 实例

您用作计算机配置文件 VM 的 AWS EC2 实例必须兼容,以便计算机目录能够正确创建和运行。要列出可用作计算机配置文件输入 VM 的 AWS EC2 实例,您可以使用 Get-HypInventoryItem 命令。该命令可以分页和筛选托管单元上可用的 VM 清单。
分页:
Get-HypInventoryItem 支持两种分页模式:
  • 分页模式使用 -MaxRecords 和 -Skip 参数返回项目集:
    • -MaxRecords:默认值为 1。这控制要返回的项目数。
    • -Skip:默认值为 0。这控制从管理程序列表中绝对开头(或绝对结尾)跳过的项目数。
  • 滚动模式使用 -MaxRecords、-ForwardDirection 和 -ContinuationToken 参数来允许记录滚动:
    • -ForwardDirection:默认值为 True。这与 -MaxRecords 一起使用,以返回下一组匹配记录或上一组匹配记录。
    • -ContinuationToken:返回紧随其后(如果 ForwardDirection 为 false 则为之前)的项目,但不包括 ContinuationToken 中给定的项目。
分页示例:
  • 返回名称最低的计算机模板的单个记录。AdditionalData 字段包含 TotalItemsCount 和 TotalFilteredItemsCount:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template
  • 返回名称最低的计算机模板的 10 条记录:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 10 | select Name
  • 返回以最高名称结尾的记录数组:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ForwardDirection $False -MaxRecords 10 | select Name
  • 返回从与给定 ContinuationToken 关联的计算机模板开始的记录数组:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ContinuationToken "ami-07xxxxxxxxxx" -MaxRecords 10
筛选:
支持以下附加可选参数用于筛选。您可以将这些参数与分页选项结合使用。
  • -ContainsName "my_name":如果给定字符串与 AMI 名称的一部分匹配,则该 AMI 将包含在 Get 结果中。例如:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -ContainName ‘apollo’ | select Name
  • -Tags '{ "Key0": "Value0", "Key1": "Value1", "Key2": "Value2" }':如果 AMI 具有这些标签中的至少一个,则它将包含在 Get 结果中。例如:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name
    注意:
    支持两个标签值。“未标记”标签值匹配其标签列表中没有给定标签的项目。“所有值”标签值匹配具有该标签(无论标签值如何)的项目。否则,仅当项目具有该标签且值等于筛选器中给定的值时,才会发生匹配。
  • -Id "ami-0a2d913927e0352f3":如果 AMI 与给定 ID 匹配,则它将包含在 Get 结果中。例如:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx
根据 AdditionalData 参数进行筛选:
AdditionalData 筛选器参数根据模板或 VM 的功能、服务产品或 AdditionalData 中的任何属性列出模板或 VM。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
您还可以添加 -Warn 参数以指示不兼容的 VM。VM 将包含一个名为 Warning 的 AdditionalData 字段。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData

更多信息