之前发表过使用ADMT进行域对象迁移的文章,连接如下:
http://blog.51cto.com/hubuxcg/1554925
http://blog.51cto.com/hubuxcg/1554927
最近再次使用ADMT进行域迁移时,碰到因SID筛选导致迁移后的用户无法访问源域中文件服务器问题,环境如下:源域:Contoso. Old 2008R2,新域:Contoso. Local 2008R2。
先来介绍下SID History,当在进行AD迁移或是重构时,SID History将在迁移或是重构的过程中,用来保持用户对源有资源的访问权限;将对象迁移到新域时,会生成一个新的SID;因为Windows是依SID为对象分配权限,在迁移后的对象会因为生成新的SID而失去原有资源的访问权限,所以在进行域迁移时,需要将源域对象的SID迁移到新域中,作为新域对象的Sid History属性。
源域中的SID:
ADMT迁移之:在迁移过程中保留对源域资源的访问权限
迁移后新域中的SIDHistory
ADMT迁移之:在迁移过程中保留对源域资源的访问权限
源域和新域内的资源将其访问控制列表(ACL)解析为SID,然后在授予或拒绝访问时检查其ACL和访问令牌之间的匹配。如果SID或Sid History记录匹配,则根据ACL中指定的访问权限授予或拒绝访问资源,即保留源域中,已迁移对象原有的权限!

但从Windows2000(SP4)版本的Windows开始,因为安全性的要求,在两个目录之间建立林信任后,将默认应用 SID 筛选。这就会导致新域中的Sid History并不能带到旧域中,而导致ACL无法解析到Sid History记录,无法得到有效权限。
如下图:
ADMT迁移之:在迁移过程中保留对源域资源的访问权限

为了解决此问题,需要在两个信任的域之间,确认是否禁用SID筛选,参考命令:
Netdom trust TrustingDomainName /domain:TrustedDomainName /quarantine:No /usero:domainadministratorAcct /passwordo:domainadminpwd
如果你登录的用户有域的管理员或是企业管理员权限,则可以跳过用户名密码的选项。
先使用命令查看当然的状态:
Netdom trust contoso.local /domain:contoso.old /quarantine
ADMT迁移之:在迁移过程中保留对源域资源的访问权限
从上图可以看出,SID 筛选是启用状态,因此,需要禁用,命令如下:
Netdom trust contoso.local /domain:contoso.old /quarantine:no
ADMT迁移之:在迁移过程中保留对源域资源的访问权限
执行完后,再次查看状态,显示为SID筛选禁用,所有SID都会生效。
修改完后还需要在源域的域控制器策略中,启用SID转换,GPO配置如下:
ADMT迁移之:在迁移过程中保留对源域资源的访问权限
完成以上配置后,在使用ADMT进行域迁移时,已迁移的对象将可以继续使用源域中的所有资源,直接到完成迁移!