使用 Azure 文件存储和 Active Directory 域服务/Microsoft Entra 域服务来设置 FSLogix 配置文件容器

本文将向你展示如何在会话主机虚拟机 (VM) 加入 Active Directory 域服务 (AD DS) 域或 Microsoft Entra 域服务托管域时使用 Azure 文件设置 FSLogix 配置文件容器。

先决条件

需要准备好以下各项:

  • 会话主机加入到 AD DS 域或 Microsoft Entra 域服务托管域并分配了用户的主机池。
  • 你域中的安全组,其中包含将使用配置文件容器的用户。 如果你使用的是 AD DS,必须将其同步到 Microsoft Entra ID。
  • Azure 订阅上创建存储帐户和添加角色分配的权限。
  • 用于将计算机加入域并打开提升的 PowerShell 提示符的域帐户。
  • 存储帐户所在的 Azure 订阅的订阅 ID。
  • 加入域的计算机,用于安装和运行 PowerShell 模块,这些模块会存储帐户加入域。 此设备需要运行受支持的 Windows 版本。 或者,你也可以使用会话主机。

重要

如果用户之前已登录到你要使用的会话主机,则将为他们创建本地配置文件,并且必须先由管理员删除,才能将他们的配置文件存储在配置文件容器中。

为配置文件容器设置存储帐户

设置存储帐户:

  1. 登录到 Azure 门户。

  2. 在搜索栏中搜索“存储帐户”。

  3. 选择“+ 新建”。

  4. 在“创建存储帐户”页面的“基本信息”选项卡中输入以下信息:

    • 创建一个新的资源组或选择一个现有的资源组来存储存储帐户。
    • 为存储帐户输入唯一的名称。 此存储帐户名称需要介于 3 到 24 个字符之间。
    • 对于“区域”,建议选择与 Azure 虚拟桌面主机池相同的位置。
    • 对于“性能”,至少要选择“标准”。
    • 如果你选择高级性能,请将“高级帐户类型”设置为“文件共享”。
    • 对于“冗余”,请选择“本地冗余存储 (LRS)”作为最小值。
    • 其余选项卡上的默认值不需要更改。

    提示

    你的组织的某些要求可能会需要更改以下默认值:

  5. 选择“查看 + 创建”。 查看将使用的参数和值,然后选择“创建”。

  6. 创建存储帐户后,选择“转到资源”。

  7. 在“数据存储”部分,选择“文件共享”。

  8. 选择“+ 文件共享”。

  9. 输入名称,例如 profiles,然后为层选择“事务优化”。

将你的存储帐户加入 Active Directory

若要将 Active Directory 帐户用于文件共享的共享权限,需要启用 AD DS 或 Microsoft Entra 域服务作为源。 此过程将你的存储帐户加入域,将其表示为计算机帐户。 为你的方案选择下面的相关选项卡并按照步骤操作。

  1. 登录到已加入你的 AD DS 域的计算机。 或者,登录到其中一个会话主机。

  2. 从 Azure 文件示例 GitHub 存储库下载并提取最新版本的 AzFilesHybrid。 记下你将文件提取到的文件夹。

  3. 打开提升的 PowerShell 提示符并切换到你提取文件的目录。

  4. 运行以下命令将 AzFilesHybrid 模块添加到用户的 PowerShell 模块目录:

    .\CopyToPSPath.ps1
    
  5. 通过运行以下命令导入 AzFilesHybrid 模块:

    Import-Module -Name AzFilesHybrid
    

    重要

    此模块需要 PowerShell 库Azure PowerShell。 如果尚未安装或需要更新,系统可能会提示你安装这两者。 如果系统提示安装,请安装,然后关闭所有 PowerShell 实例。 重新打开提升的 PowerShell 提示符并再次导入 AzFilesHybrid 模块,然后再继续。

  6. 运行以下命令登录到 Azure。 需要使用具有以下基于角色的访问控制 (RBAC) 角色之一的帐户:

    • 存储帐户所有者
    • “所有者”
    • 参与者
    Connect-AzAccount -Environment AzureChinaCloud
    

    提示

    如果你的 Azure 帐户可以访问多个租户和/或订阅,则需要通过设置上下文来选择正确的订阅。 有关详细信息,请参阅 Azure PowerShell 上下文对象

  7. 通过运行以下命令将存储帐户加入你的域,将 $subscriptionId$resourceGroupName$storageAccountName 的值替换为你的值。 你还可以添加参数 -OrganizationalUnitDistinguishedName 以指定在其中放置计算机帐户的组织单位 (OU)。

    $subscriptionId = "subscription-id"
    $resourceGroupName = "resource-group-name"
    $storageAccountName = "storage-account-name"
    
    Join-AzStorageAccount `
        -ResourceGroupName $ResourceGroupName `
        -StorageAccountName $StorageAccountName `
        -DomainAccountType "ComputerAccount"
    
  8. 要验证存储帐户是否已加入你的域,请运行以下命令并查看输出,将 $resourceGroupName$storageAccountName 的值替换为你的值:

    $resourceGroupName = "resource-group-name"
    $storageAccountName = "storage-account-name"
    
    (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName).AzureFilesIdentityBasedAuth.DirectoryServiceOptions; (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName).AzureFilesIdentityBasedAuth.ActiveDirectoryProperties
    

重要

如果你的域强制执行密码过期,则必须在密码过期前更新密码,以防在访问 Azure 文件共享时身份验证失败。 有关详细信息,请参阅更新 AD DS 中的存储帐户标识密码

向用户分配 RBAC 角色

如果用户需要在你的文件共享中存储配置文件,则用户需要获得访问权限。 为此,你需要为每个用户分配“存储文件数据 SMB 共享参与者”角色。

为用户分配角色:

  1. 在 Azure 门户中,浏览到存储帐户,然后浏览到你之前创建的文件共享。

  2. 选择“访问控制 (IAM)”。

  3. 选择“+ 添加”,然后从下拉菜单中选择“添加角色分配”。

  4. 选择“存储文件数据 SMB 共享参与者”角色,然后选择“下一步”。

  5. 在“成员”选项卡上,选择“用户、组或服务主体”,然后选择“+ 选择成员”。 在搜索栏中,搜索并选择包含将使用 Profile Container 的用户的安全组。

  6. 选择“审阅和分配”以完成分配。

设置 NTFS 权限

接下来,你需要在文件夹上设置 NTFS 权限,这需要你获取存储帐户的访问密钥。

若要获取存储帐户访问密钥,请执行以下操作:

  1. 在 Azure 门户的搜索栏中搜索并选择存储帐户。

  2. 在存储帐户列表中,选择在前面部分中为其启用了 Active Directory 域服务或 Microsoft Entra 域服务作为标识源并分配了 RBAC 角色的帐户。

  3. 在“安全 + 网络”下,选择“访问密钥”,然后显示并复制 key1 中的密钥。

在文件夹上设置正确的 NTFS 权限:

  1. 登录到属于你的主机池的会话主机。

  2. 打开提升的 PowerShell 提示符并运行以下命令,将存储帐户映射为会话主机上的驱动器。 映射的驱动器不会显示在文件资源管理器中,但用户可以使用 net use 命令查看。 这样便可以设置共享的权限。

    net use <desired-drive-letter>: \\<storage-account-name>.file.core.chinacloudapi.cn\<share-name> <storage-account-key> /user:Azure\<storage-account-name>
    
    • <desired-drive-letter> 替换为你选择的驱动器号(例如,y:)。
    • <storage-account-name> 的两个实例都替换为你在前面指定的存储帐户名称。
    • <share-name> 替换为你在前面创建的共享的名称。
    • <storage-account-key> 替换为 Azure 中的存储帐户密钥。

    例如:

    net use y: \\fsprofile.file.core.chinacloudapi.cn\share HDZQRoFP2BBmoYQ(truncated)== /user:Azure\fsprofile
    
  3. 运行以下命令以设置共享权限,允许 Azure 虚拟桌面用户创建自己的配置文件,同时阻止访问其他用户的配置文件。 应使用包含你要使用配置文件容器的用户的 Active Directory 安全组。 在以下命令中,将 <mounted-drive-letter> 替换为用于映射驱动器的驱动器号,并将 <DOMAIN\GroupName> 替换为需要访问共享的 Active Directory 组的域和 sAMAccountName。 还可以指定用户的用户主体名称 (UPN)。

    icacls <mounted-drive-letter>: /grant "<DOMAIN\GroupName>:(M)"
    icacls <mounted-drive-letter>: /grant "Creator Owner:(OI)(CI)(IO)(M)"
    icacls <mounted-drive-letter>: /remove "Authenticated Users"
    icacls <mounted-drive-letter>: /remove "Builtin\Users"
    

    例如:

    icacls y: /grant "CONTOSO\AVDUsers:(M)"
    icacls y: /grant "Creator Owner:(OI)(CI)(IO)(M)"
    icacls y: /remove "Authenticated Users"
    icacls y: /remove "Builtin\Users"
    

将会话主机配置为使用配置文件容器

若要使用配置文件容器,需要确保已在会话主机 VM 上安装了 FSLogix 应用。 FSLogix 应用预装在 Windows 10 Enterprise 多会话和 Windows 11 Enterprise 多会话操作系统中,但还是遵循以下步骤进行操作,因为安装的可能不是最新版本。 如果你使用的是自定义映像,则可以在你的映像中安装 FSLogix 应用。

要配置配置文件容器,我们建议你使用组策略首选项在所有会话主机上大规模设置注册表项和值。 也可以在自定义映像中设置这些选项。

要在会话主机 VM 上配置配置文件容器:

  1. 登录用于创建自定义映像的 VM 或者主机池中的会话主机 VM。

  2. 如果你需要安装或更新 FSLogix 应用程序,请下载最新版本的 FSLogix 并运行 FSLogixAppsSetup.exe 进行安装,然后按照安装向导中的说明进行操作。 有关安装过程的更多详细信息,包括自定义和无人值守安装,请参阅下载和安装 FSLogix

  3. 打开提升的 PowerShell 提示符并运行以下命令,将 \\<storage-account-name>.file.core.chinacloudapi.cn\<share-name> 替换为你之前创建的存储帐户的 UNC 路径。 这些命令启用配置文件容器并配置共享的位置。

    $regPath = "HKLM:\SOFTWARE\FSLogix\profiles"
    New-ItemProperty -Path $regPath -Name Enabled -PropertyType DWORD -Value 1 -Force
    New-ItemProperty -Path $regPath -Name VHDLocations -PropertyType MultiString -Value \\<storage-account-name>.file.core.chinacloudapi.cn\<share-name> -Force
    
  4. 重新启动用于创建自定义映像或会话主机 VM 的 VM。 你需要对任何剩余的会话主机 VM 重复这些步骤。

现已完成配置文件容器的设置。 如果要在自定义映像中安装配置文件容器,则需要完成创建自定义映像。 有关详细信息,请遵循在 Azure 中创建自定义映像的步骤,从获取最终快照部分开始。

验证配置文件创建

安装并配置了配置文件容器后,可以通过使用已分配了主机池上的应用程序组或桌面的用户帐户登录来测试部署。

如果用户以前曾经登录,则在此会话期间,他们将使用现有的本地配置文件。 先删除本地配置文件,或者创建一个新的用户帐户用于测试。

用户可以按照以下步骤检查配置文件容器是否已设置:

  1. 以测试用户身份登录 Azure 虚拟桌面。

  2. 当用户登录时,消息“请等待 FSLogix 应用程序服务”应作为登录过程的一部分出现,然后才会显示桌面。

管理员可以按照以下步骤检查配置文件文件夹是否已创建:

  1. 打开 Azure 门户。

  2. 打开前面创建的存储帐户。

  3. 转到存储帐户中的“数据存储”,然后选择“文件共享”。

  4. 打开文件共享,确保其中包含你创建的用户配置文件文件夹。

后续步骤

可以在使用 FSLogix 配置文件容器对 Azure 虚拟桌面进行用户配置文件管理中找到有关 FSlogix 配置文件容器相关概念的更多详细信息。