在 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 版本。 或者,你也可以使用会话主机。
重要
如果用户以前已登录到要使用的会话主机,则会为其创建本地配置文件,并且必须先由管理员删除,以便其配置文件存储在配置文件容器中。
为配置文件容器设置存储帐户
设置存储帐户:
创建 Azure 存储帐户(如果还没有)。
提示
你的组织的某些要求可能会需要更改以下默认值:
- 是否应该选择“高级”取决于你的 IOPS 和延迟要求。 有关详细信息,请参阅 容器存储选项。
- 在“高级”选项卡上,“启用存储帐户密钥访问”必须保持启用状态。
- 有关其余配置选项的详细信息,请参阅规划Azure 文件存储部署。
在你的存储帐户下创建一个 Azure 文件共享来存储你的 FSLogix 配置文件(如果还没有)。
将你的存储帐户加入 Active Directory
若要将 Active Directory 帐户用于文件共享的共享权限,需要启用 AD DS 或 Microsoft Entra 域服务作为源。 此过程将你的存储帐户加入域,将其表示为计算机帐户。 为你的方案选择下面的相关选项卡并按照步骤操作。
登录到已加入你的 AD DS 域的计算机。 或者,登录到其中一个会话主机。
从 Azure 文件示例 GitHub 存储库下载并提取最新版本的 AzFilesHybrid。 记下你将文件提取到的文件夹。
打开提升的 PowerShell 提示符并切换到你提取文件的目录。
运行以下命令将
AzFilesHybrid
模块添加到用户的 PowerShell 模块目录:.\CopyToPSPath.ps1
通过运行以下命令导入
AzFilesHybrid
模块:Import-Module -Name AzFilesHybrid
重要
此模块需要 PowerShell 库和 Azure PowerShell。 如果尚未安装或需要更新,系统可能会提示你安装这两者。 如果系统提示安装,请安装,然后关闭所有 PowerShell 实例。 重新打开提升的 PowerShell 提示符并再次导入
AzFilesHybrid
模块,然后再继续。运行以下命令登录到 Azure。 需要使用具有以下基于角色的访问控制(RBAC)角色之一的帐户:
- 存储帐户所有者
- “所有者”
- 参与者
Connect-AzAccount
提示
如果你的 Azure 帐户可以访问多个租户和/或订阅,则需要通过设置上下文来选择正确的订阅。 有关详细信息,请参阅 Azure PowerShell 上下文对象
通过运行以下命令将存储帐户加入你的域,将
$subscriptionId
、$resourceGroupName
和$storageAccountName
的值替换为你的值。 你还可以添加参数-OrganizationalUnitDistinguishedName
以指定在其中放置计算机帐户的组织单位 (OU)。$subscriptionId = "subscription-id" $resourceGroupName = "resource-group-name" $storageAccountName = "storage-account-name" Join-AzStorageAccount ` -ResourceGroupName $ResourceGroupName ` -StorageAccountName $StorageAccountName ` -DomainAccountType "ComputerAccount"
若要验证存储帐户是否已加入域,请运行以下命令并查看输出,并将值替换为值
$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 共享参与者 角色。
为用户分配角色:
在 Azure 门户中,浏览到存储帐户,然后浏览到你之前创建的文件共享。
选择“访问控制 (IAM)”。
选择“+ 添加”,然后从下拉菜单中选择“添加角色分配”。
选择“存储文件数据 SMB 共享参与者”角色,然后选择“下一步”。
在“成员”选项卡上,选择“用户、组或服务主体”,然后选择“+ 选择成员”。 在搜索栏中,搜索并选择包含将使用配置文件容器的用户的安全组。
选择“审阅和分配”以完成分配。
设置 NTFS 权限
接下来,你需要在文件夹上设置 NTFS 权限,这需要你获取存储帐户的访问密钥。
若要获取存储帐户访问密钥,请执行以下操作:
在 Azure 门户的搜索栏中搜索并选择存储帐户。
在存储帐户列表中,选择在前面部分中为其启用了 Active Directory 域服务或 Microsoft Entra 域服务作为标识源并分配了 RBAC 角色的帐户。
在“安全 + 网络”下,选择“访问密钥”,然后显示并复制 key1 中的密钥。
在文件夹上设置正确的 NTFS 权限:
登录到属于你的主机池的会话主机。
打开提升的 PowerShell 提示符并运行以下命令,将存储帐户映射为会话主机上的驱动器。 映射的驱动器不会显示在文件资源管理器中,但可以使用命令查看
net use
。 这样便可以设置共享的权限。net use <desired-drive-letter>: \\<storage-account-name>.file.core.windows.net\<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.windows.net\share HDZQRoFP2BBmoYQ(truncated)== /user:Azure\fsprofile
- 将
运行以下命令以设置共享权限,允许 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"
将本地 Windows 设备配置为使用配置文件容器
若要使用配置文件容器,需要确保已在设备上安装 FSLogix 应用。 如果要配置 Azure 虚拟桌面,FSLogix 应用将预安装在Windows 10 企业版多会话和Windows 11 企业版多会话操作系统中,但仍应遵循以下步骤,因为它可能尚未安装最新版本。 如果你使用的是自定义映像,则可以在你的映像中安装 FSLogix 应用。
若要配置配置文件容器,建议使用组策略首选项在所有会话主机之间大规模设置注册表项和值。 也可以在自定义映像中设置这些选项。
若要配置本地 Windows 设备,请执行以下操作:
如果你需要安装或更新 FSLogix 应用程序,请下载最新版本的 FSLogix 并运行
FSLogixAppsSetup.exe
进行安装,然后按照安装向导中的说明进行操作。 有关安装过程的更多详细信息,包括自定义和无人值守安装,请参阅下载和安装 FSLogix。打开提升的 PowerShell 提示符并运行以下命令,将
\\<storage-account-name>.file.core.windows.net\<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.windows.net\<share-name> -Force
重启设备。 对于任何剩余的设备,需要重复这些步骤。
现已完成配置文件容器的设置。 如果要在自定义映像中安装配置文件容器,则需要完成创建自定义映像。 有关详细信息,请遵循在 Azure 中创建自定义映像的步骤,从获取最终快照部分开始。
验证配置文件创建
安装并配置配置文件容器后,可以通过使用在主机池上分配了应用程序组或桌面的用户帐户登录来测试部署。
如果用户以前曾经登录,则在此会话期间,他们将使用现有的本地配置文件。 先删除本地配置文件,或者创建一个新的用户帐户用于测试。
用户可以按照以下步骤检查配置文件容器是否已设置:
以测试用户身份登录 Azure 虚拟桌面。
当用户登录时,消息“请等待 FSLogix 应用程序服务”应作为登录过程的一部分出现,然后才会显示桌面。
管理员可以按照以下步骤检查配置文件文件夹是否已创建:
打开 Azure 门户。
打开前面创建的存储帐户。
转到存储帐户中的“数据存储”,然后选择“文件共享”。
打开文件共享,确保其中包含你创建的用户配置文件文件夹。