前段时间做了个项目,是关于父子域合并的,其实无非就是使用ADMT把域用户,计算机等从子域迁移到父域上,看似迁移用户很简单。But……生产环境啊,Exchange,TFS,Sharepoint,还有其余乱七八糟的东西,都使用了域账号,牵一发动全身的节奏,迁移账号出点儿问题相关用户就可以坐在那打酱油了,迁移前在他们生产环境中新建测试账号迁移,但是这种测试账号相对理想的环境,测试过程中很多问题不容易发现,很多问题是迁移了客户生产用户账号时出现了问题,但是于对于TFS一窍不通,sharepoint大多不懂的我来说,对迁移遇到的问题排错,那叫一个惨绝人寰啊!下面慢慢的把迁移账号及计算机后会遇到的问题及问题解决方法做个简单汇总吧。

    先说说客户环境,由于不便透露客户名称,域控就以ABC来代替吧。客户生产环境为一个父域两个子域,这里父域为A,两个子域B和C(都是N年前的历史问题搞了三个域控出来,现在又要合并只保留A)。TFS在三个域控中都有存在。

    对于TFS来说,这东西貌似主要就做代码管理的,客户生产环境中,TFS从2008到2010还有2013,各种版本层出不穷的,这里把TFS和SharePoint一起说,是因为SharePoint是TFS部署的先决条件,TFS2008和2010安装前可以安装Windows SharePoint Services 3.0作为先决条件,但是TFS2013的就只有安装SharePoint2013了(SharePoint2010没注意支持不),所以迁移后,以前版本还稍微好些,因为管理用户权限什么的在VS里面可以直接管理了,但是TFS2013只有在SharePoint里面管理,稍微权限出点儿问题,很多界面都会提示未共享!之所以出现很多问题,是由于TFS和Sharepoint都是有自己的权限管理,很多时候迁移用户后,虽然用户的SID是一起迁移了,但是TFS和Sharepoint中的权限不一定能自动过去,有时候权限过去了,用户自己哪里的VS的使用过程中,也不一定是正常的。接下来就挨着罗列下我遇到的问题吧。


一. 迁移用户后,以前已经签出的代码不能正常迁入

    问题描述:

    很多时候,用户会对TFS中的代码签出进行编辑,然后再迁入到服务器中。但是很多时候用户签出后,过个一两天都不签入,当这个时候我们在迁移用户后,用户再对这个文件进行签入的时候,会报被提示被之前迁移前的用户锁定。由于用户user@B 已经迁移到A域中成了user@Auser@B 已经不存在了,所以,只有服务器上进行强制解锁了。     

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第1张图片

    问题处理:

    遇到这个问题,我们就需要使用到了tf undo命令了。打开Visual Studio 命令提示

具体命令:  tf undo /workspace: workspacename;tfsuser $/PB/Prd-test/3.txt /server:http://TFSServer:8080/tfs

    其中workspacename 就写用户的workspace的名字

    tfsuser就是被锁定的用户名

    $/PB/Prd-test/3.txt 是锁定文件路径

    /Server:后面就接服务器

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第2张图片

    运行完成后,我们可以看到,锁定已经没有了,然后用户又可以任性的继续签入签出了。

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第3张图片

PS:为了避免不必要的麻烦,如果被迁移的用户有试用TFS的,最好让客户通知下去让用户都把所有签出的代码签入,不然多了操作起来还是很麻烦的。(虽然通知下去了还是有被锁定的)

 

二: TFS库映射丢失

    问题描述:

    用户在正常的使用过程中,每个用户都会有自己的工作区域,并且把服务器上需要的内容映射到本地。

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第4张图片

    用户在迁移后,有些用户出现了工作区的映射丢失,当用户再去重新映射的时候,又会提示被之前用户占用。

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第5张图片

    问题处理:

    遇到这样的问题,网上依旧是查了很多资料,全部说是走命令使用tf workfold啊之类的,来看看tf workfold下的命令,创建映射修改映射,看样子方向是对的,当时就按着提示去摸索了。

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第6张图片

    一天过去了,两天过去了,我也忘了到底弄了多久了。不是这里提示不对就是那里提示有问题,简直这个方向就是个坑啊。NND,不弄了!想想这东西应该在数据库上有记录,找找数据库吧。

    终于在数据库中找到了存放workspace和workfold的对应表格,来打开看看,上千条数据

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第7张图片

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第8张图片

    看来只有在这上千条数据里面捞了,这又得温习下SQL语句,查询语句走起

    Select * from xxxxxx where

    一般通过workspacename和computer来找到出现问题的用户,我们会找到多条记录,记录的ownerid和workspaceid会不一样。我们通过对workspace和workfold两个数据库表的联合查找,确定该用户的老的ownerid和新ownerid,修改老的ownerid为新的ownerid就可以了。

    修改成后,用户需要重新连接TFS,就可以在自己的工作区里面看到原有的映射都已经回来了。


PS:出现这个问题的原有是由于在迁移用户后,系统自动为用户在数据库中创建了新的ownerid,致使虽然用户环境没有变,但是TFS仍然认为是2个用户了。同一套TFS环境中,有的用户迁移后正常有的出了问题,至于为啥会自动创建ownerid,这个我就不知道了。

 

三:个人查询丢失

    问题描述:

    还是在迁移用户后,有用户反映自己的个人查询丢失了,团队查询还在,就是下面这个东西

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第9张图片

    这个问题有的用户就自己重新新建了,毕竟有的人查询不多,就几条,但是也有用户好几十条查询,遂只有解决了

    问题处理:

    有了之前处理映射的经验,走命令什么的感觉都是又慢又坑爹的,而且能不能行的通还是个问题。照例直接搞数据库。

    找到数据库QueryItems,里面包含了团队查询和个人查询。

活动目录父子域用户迁移之:TFS&SharePoint问题汇总(一)_第10张图片

    一样的,通过Select语句找到出现问题的个人查询,直接找到关键的键值,改ID……具体的详细步奏这里就不过多描述了

 


今天就先写到这里了,休息休息,下次继续接着写后续的问题汇总