• 使用FSLogix漫游用户配置文件

    /FSLogix /使用FSLogix漫游用户配置文件

    FSLogix是全球最优秀的漫游用户配置文件解决方案,该公司于 2018 年被微软收购,并在 2019 年 3 月份将FSLogix软件进行免费,这是微软爸爸最伟大的举动;几乎不需要任何IT投入,用户就可以“免费”到地表最强的解决方案来优化漫游用户配置文件的体验;

    FSLogix是一套解决方案的集合,主要为增强与简化非持久Windows环境在公共云和私有云中的虚拟化环境。大大李目前已在几个项目中将UPM转换为FSLogix,且建议我的EUC解决方案交付团队在PoC与未来的项目中使用该方案。

    目录

    FSLogix解决方案包括四大使用场景:

    • Profile Container (配置文件容器,安装程序名称:FSLogixAppsSetup.exe);
    • Office Container (Office容器,安装程序名称:FSLogixAppsSetup.exe);
    • Application Masking(应用屏蔽,安装程序名称:FSLogixAppsRuleEditorSetup.exe);
    • Java Version Control (Java版本控制,安装程序名称:FSLogixAppsJavaRuleEditorSetup.exe);

    使用FSLogix解决方案可以获得如下收益:

    • 在非持久性环境中保存个性化配置;
    • 最短的非持久性环境会话登录时间;
    • 优化漫游用户配置文件与存储之间的IO;
    • 与本地配置文件相同的体验,消除了使用文件夹网络重定向的许多兼容性问题;
    • 简化应用程序和”Golden Image”的管理;
    • 为特定的 URL 和应用程序指定使用不同的Java版本;

    接下来本文主要在Citrix环境下采用FSLogix进行漫游用户配置文件(Profile Container)的配置方法及一些经验分享进行叙述。Application Masking与Java Version Control不在本文的讨论范围。

    FSLogix Container在FileServer(NAS)上创建虚拟硬盘(VHD)文件,并将用户配置文件(包括注册表)存储在VHD文件中。对于UserProfiles,因为没有数据被复制到非持久VDI会话,它只是将VHD挂载到Windows并访问本地数据,这将使得用户拥有一个非常快的登录时间;

    FSLogix支持的操作系统:

    • Windows 7(32或64位)或更高版本
    • Windows Server 2008 R2或更高版本

    安装 FSLogix:

    • 首先下载 FSLogix 安装包,截至到2020/3/21日微软最新Release的版本是2.9.7237.48865;下载地址:https://aka.ms/fslogix_download;
    • FSLogix安装文件主要由3个exe文件组成,如果仅使用Profile Container只需要在VDA模板中安装FSLogixAppsSetup.exe即可;
    • 打开Golden Image(桌面模板),运行FSLogixAppsSetup.exe安装包,保持默认路径安装;
    •  安装过程没有其它配置选项,等待安装完成即可;
    • 安装完成后,重启虚拟机,然后打开:“计算机管理——本地用户和组”,找到FSLogix创建的4个用户组,我建议将不需要生效FSLogix用户配置文件漫游的用户添加到“FSLogix Profile Exclude List”用户组中,例如Dommain Admins、运维管理员等;

  • SMB文件共享准备:

  • FSLogix 生成的用户配置文件被放置VHD或VHDX文件中,这个VHD文件被自动在基于SMB的UNC路径中创建,因此需要在NAS中创建一个共享文件夹;首先创建一个文件夹,并参考下面的表格配置合适的用户权限;
  • 本例中我在NAS中创建一个文件夹“FSLogix_VHD”,并按照上面的表格为不用的用户配置了合适的安全权限;
  • 然后启用文件共享,为Everyone用户分配 读取、更改 的共享权限;
  • 然后关闭共享文件夹脱机状态可用;
  • 启用FSLogix:

  • 启用 FSLogix 不需要安装任何独立的管理服务器,只需要通过AD组策略编辑一组策略即可使FSLogix Profile生效 ;FSLogix在安装包中提供了ADM Templates,只需将ADM Templates文件拷贝到Dmoain Controller服务器即可;从FSLogix安装包中提取“fslogix.adml”、“fslogix.admx”两个文件,将fslogix.adml文件复制到Dmoain Controller服务器的C:\Windows\PolicyDefinitions\en-US 文件夹中;将fslogix.admx文件复制到Dmoain Controller服务器的C:\Windows\PolicyDefinitions\ 文件夹中;
  • 然后在Dmoain Controller服务器新建一个GPO,导航到 计算机配置——管理模板——Profile Containers;只需要配置两个策略即可启用FSLogix Profile;Enabled:启用FSLogix Profile,VHD location:指定一下上面创建的文件共享的UNC路径;
  • 但在生产环境中我仍然推荐你对其它的选项做一些更改:
  • Dynamic VHD(X) allocation:启用 (动态类型VHD,优点是NAS空间更加弹性,但动态VHD格式最大的问题就是无法自动进行空间回收,我在上一篇文章《如何配置 Citrix UPL 用户个性化层》中比较详细的介绍了动态类型VHD,并给出了建议,这里不再复述);
  • Size in MBs:VHD文件大小我建议给到30~50GB,默认为30GB;
  • No containing folder:建议启用;为了向管理员提供更加直观VHD文件管理,我建议启用此项,不要给每个用户在VHD location文件共享目录中先创建一个文件夹再创建VHD文件,特别是在启用Dynamic VHD(X) 时,管理员在做VHD空间回收时更加便捷;
  • VHD name parrern string:VHD文件命名规则,按照策略介绍定义即可,在本例中我使用%username%变量使VHD文件名与用户名相同,在有些项目中我也会用%username%-%osbuild%-%profileversion%变量;
  • Vitual disk type:VHDX(建议使用此格式)
  • GPO配置完成后分配给要生效该策略的计算机OU即可;
  • 验证FSLogix:

  • 登录到FSLogix环境的桌面后,打开磁盘管理,会发现自动挂载了一个名称为“Profile_%domain_username%”的磁盘;里面保存的便是当前用户的Profiles;
  • 打开C:\Users文件夹,可以看到有两个当前用户的Profiles文件夹,%domain_username%与local_%domain_username%;其中%domain_username%文件夹中的所有内容保存在VHD(X)文件中,而local_%domain_username%文件夹中保存的是FSLogix默认不做漫游配置的排除目录,里面存放的是temp文件,用户桌面注销时,该文件夹将被删除;
  • 我们可以为“Profile_%domain_username%”的磁盘添加一个盘符并查看VHD(X)中保存的User Profile;
  • 在GPO的配置中,我建议启用No containing folder,效果如下,所有用户的VHD(X)文件都在一个目录下,在对动态VHD空间回收时这将更加的便捷;
  • 在使用VHD空间回收工具时,Locked状态需要在False时进行(用户桌面注销);空间回收工具在文章最后提供
  • 我给出的在生产环境中使用FSLogix Profile Container的一些建议:

  • 作为地表最强的漫游用户配置文件解决方案;FSLogix在性能、稳定性上的表现的确十分优秀。与UPM每次用户登录桌面时需要预先将漫游的用户配置文件负载到桌面本地后登入桌面不同,FSLogix只需要在用户登录时将VHD(X)文件挂载到Windows即可;用户登录时省去了数据复制的时间,因此可获得一个非常快的登录时间。推荐你阅读FSLogix Documentation:https://docs.microsoft.com/zh-cn/fslogix/
  • 从FSLogix用户群体来看,国内目前使用的客户很少,在欧美很活跃,很多EUC工程师在计划或已经在CVAD或Horizon项目中切换到FSLogix。半年多的时间我的团队已经在多个项目中进行了验证;可以安心的使用。
  • 但是需要注意的是,FSLogix 的case,Citrix不会Support,没有微软Windows E3/E5 许可的客户环境也得不到微软的技术支持;FSLogix 后期支持几乎完全依赖于工程师的经验积累或来自互联网的一些公开技术分享;
  • 将UPM替换为FSLogix后,Citrix Director中的重置用户配置文件的功能将不可用;
  • 用户配置文件及Desktop、Document等文件都将被重定向到VHD(X)文件中去;若果在某些情况下重置用户配置文件时意味着Desktop、Document等文件也被删除;当然可以在重置前将文件转移到其它位置,或者配置redirections.xml,像UPM一样配置文件夹重定向到UNC路径;
  • FSLogix 自动创建的VHD(X)文件类型可以通过策略定义为动态或固定;使用前需要考虑两者对NAS、运维的影响;我个人建议采用动态(Dynamic)类型,但动态VHD格式最大的问题就是无法自动进行空间回收,也就是说VHD内的文件删除后并不会使VHD文件变小,动态VHD只会感知到文件被写入无法知道文件被删除;因此VHD文件需要管理员不定期的进行手动空间回收;动态VHD手动空间回收可以采用diskpart命令也可以使用文章最后提供的工具;
  • VHD(X)文件大小我上面建议给到30~50GB,与上一篇文章《如何配置 Citrix UPL 用户个性化层》中介绍的Citrix UPL不同,FSLogix只处理用户的Profiles,因此不需要向UPL一样给更大的磁盘空间;在日常办公场景中,User Profile文件一般在几个GB以内,但在互联网场景中要考虑聊天软件的开销,我在多个项目中碰到用户的微信文件夹超过30GB,因此VHD(X)文件大小我上面建议给到30~50GB;如果VHD(X)文件是动态(Dynamic)的,那么就不要吝啬,给大一点的空间好了;
  • 虽然用户在创建会话时,不需要复制用户配置文件,但VHD(X)文件终究通过SMB进行连接;推荐使用万兆以太网络;
  • 当VHD(X)空间被用户使用殆尽时,在文件服务器通过diskpart命令对VHD(X)文件扩容后,建议在用户的桌面中执行扩展卷而不是在文件服务器中挂载VHD磁盘后进行扩展卷;
  • 使用FSLogix处理用户配置文件不再是UNC路径,这将大大的解决了在UNC路径中的性能问题及部分软件的兼容性问题,如某些加密软件不支持UNC路径,搜狗浏览器不支持另存为UNC路径等;
  • 最后对于部分工程师或客户而言,使用FSLogix的一个障碍可能是策略没有汉化,担忧出现问题时没有很强的信心处理英文的报错信息,就像Citirx WEM、App Layering、AppDNA,这么优秀的解决方案没有得到大规模的应用;但如果你受够的Windows的重定向到网络位置,相信这将不是重要的问题及障碍,“两害相权取其轻,两利相权取其重”,使用UPM还是FSLogix就看你的选择了。
  • 对于漫游用户配置管理,FSLogix并未完全达到我理想的状态,用户配置文件及Desktop、Document等文件都被写入同一个VHD(X)文件;如果允许更加细粒度的将不同文件放入不同的VHD(X)文件应该是更好的选择,如将用户的配置文件重定向到一个VHD(X)文件,Desktop、Document等文件重定向到另一个VHD(X)文件;另外,既然微软已经收购了FSLogix,将FSLogix由单独的解决方案完全内置在Windows中去也许会增加更多的用户群体;不管怎样,我们还是希望FSLogix更加美好吧,毕竟微软爸爸供你免费试用它。
  • 扫描二维码,回复 “VHD” 获取VHD空间回收工具

  • 注意事项:

从开始菜单中,以管理员身份运行“RegEdit”。

导航到“计算机\ HKEY_LOCAL_MACHINE\software\FSLogix”。

创建名为“配置文件”的密钥。

创建一个名为 Enabled 的值,并将 REG_DWORD 类型设置为数据值 1。

创建一个名为 VHDLocations 的值,类型为 Multi-String,并将其数据值设置为 Azure NetApp 文件共享的 URI。

创建一个名为 DeleteLocalProfileWhenVHDShouldApply 的值,其 DWORD 值为 1,以避免在登录前使用现有本地配置文件出现问题。

 警告: 创建 DeleteLocalProfileWhenVHDShouldApply 值时请小心。 如果 FSLogix 配置文件系统确定用户应该具有 FSLogix 配置文件,但本地配置文件已存在,则配置文件容器将永久删除本地配置文件。 然后,将用新的 FSLogix 配置文件登录该用户。

刷新一下策略:gpupdate /target:computer /force-----更新计算机策略

FSLogix 漫游Profile 后,GPO 组策略不生效的解决办法。

在远程桌面服务器  server 2019 输入  gpresult /v   查看GPO 应用情况,

在安装FSLogix 的服务器上,键入注册表值,和  GPO 值。

FSLogix 注册表项:

HKLM\SOFTWARE\FSLogix\Profiles\ 下的 DWORD GroupPolicyState = 0