[Offline Files] Account Migration might cause problem with Folder Redirection

文件重定向

 

文件重定向(Folder Redirection)是指通过组策略的配置将用户的“应用程序数据”、“桌面”、“我的文档”、“图片收藏”和“「开始」菜单”文件夹存储在制定的网络路径上并删除本地文件。

 

文件重定向的配置可以在组策略的如下位置:

User Configuration\Policies\Windows Settings\Folder Redirection

右键点击其中一个文件夹(如,Desktop),在属性页中进行配置。一般来说,选用Advanced配置,即在制定的网络路径下创建单独的User Folder(以用户名命名)。

组策略执行成功后,用户的桌面信息就不再是存在本地的了,而且从网络共享目录下读取,写入。

 

文件重定向和Offline Files

 

虽然文件重定向实现了对用户数据的集中管理和备份,但是因此而造成的网络流量也是不容忽视的。因此,从Windows Xp开始,文件重定向指向的网络路径也同时默认被设置为Offline Available。这一行为可以通过组策略“Do not automatically make all redirected folders available offline”进行修改。

 

案例背景

 

基于以上的背景信息,下面描述一个真实的案例:

Domain1的组策略设置Domain Users User Group用户的My Documents被重定向到\\filesvr\sharefolder路径。sharefolder的权限配置参照:https://technet.microsoft.com/en-us/library/cc736916(WS.10).aspx

 User1属于Domain Users,于是,User1第一次登陆后能在\\filesvr\sharefolder 下创建User1文件夹\\filesvr\sharefolder\User1\My Documents。并且,在User1登陆的客户端上CSC创建了对应的Offline Cache在C:\Windows\CSC\v2.0.6\namespace\filesvr\sharefolder\User1\My Document。

不久之后,客户的环境实施了一次Domain Migration。所有的用户账号也随之迁移到了新的域中,如从Domain1\User1到Domain2\User1。

因为Filesvr也同样做了Domain的迁移,客户将sharefolder的permission重新配置了一遍保证Domain2的用户有正确的权限(甚至于Full Control)。

然而,当Domain2\User1登陆时,他\她却始终无法看到My Documents里面的旧文件。他可以继续创建新的文件,并且通过Ip和FQDN访问sharefolder\User1\My Document目录时,他可以看到所有的文件,新的和旧的。

案例分析

 

这是为什么呢?

原来,此时用户的客户端本地已经生成了两份Cache – 一份是之前用户在Domain1时生成的,一份是用户在Domain2时生成的。Domain2\User1对旧的那份Cache没有访问权限。

当用户账号在做Domain Migration的时候,即使保持用户名不变,用户的primary Security Identifier (SID)却已经不一样了。而,Sid正好是CSC储存的Cache的重要属性之一。

CSC使用Sid来判断用户对Cache有无权限。那么,显然Domain2\User1是无法看到由Domain1\User1创建出来的Cache的。

同时,由于启用CSC的特殊性,即使是Online的情况下,访问网络路径前,都需要经过对本地Cache的判断。所以,如果User1对Cache没有权限,也无法看到\\filesvr\sharefolder\User1路径下的旧文件(账号迁移前)。

 

也许您会问,为什么创建新的Cache的时候不能从服务器上把旧文件下载再下来?

CSC在下载服务器文件的时候,对文件的路径进行比对,如果此路径的文件已经存在,那么下载无法进行(在这个案例里,特殊点在于,用户账号迁移前后用户名无变化,都是User1;如果用户名完全改变就不会存在任何问题了)。

解决方案

 

唯一的解决方案是:初始化客户端的CSC Cache。参照https://support.microsoft.com/kb/942974

 

考虑到数据丢失问题,建议使用Script对C:\Windows\CSC路径进行备份,须使用System账号。