• 一件小事2 TFS恢复小记


        2011年第一篇日志,没想到这样出炉了.争取今年多多少少写点技术文章.

        昨天是上班的第一天,早上习惯性的打开习惯性的VS,发现TFS登陆不了了.   

       1.第一反映是不是密码过期?因为之前碰到过这么一回.但是我已经设置好"密码永不过期"了啊!马上远程登陆到TFS服务器,发现密码并没有过期.

       2.是不是有人更改TFS的设置?还是打开验证了下两个权限:Team Foundation Licensed Users,Contributors.没有发现问题.

       3.是不是帐户的问题?马上在服务器上新建帐户,配置好TFS的两个权限.结果还是密码错误.

       4.是不是TFS本身出问题了?但是登陆到Web服务器,用服务器上的VS登陆,发现任何帐户都没有问题.

       5.是不是我的本机问题?打开两台同事的电脑,一样登陆不了.

       6.难道是Win7的问题?因为公司服务器是03,而开发部都是Win7.但是实在想不到原因.

       7.能想到的都试过之后,我也没有办法了,只好求助Google.但是要想在网上找到TFS的资料,还是不容易的.大多数都是重复,而且关于问题的处理是很少的.几个小时过去还是没有.

         因为对TFS安装有先天的恐惧,我一直没有重新安装的打算.又只好求助之前的同事,一个广西的长途过去,原因说明后,他也不太清楚具体情况,说等回来看看.不过还要几天.

        偶然在网上看到有人因为TFS服务器时间被更改而导致不能登陆,其实我之前查看系统日志的时候注意到了服务器时间不对,但是时间相差并不是很大,也就是放假的这10天.就并没有考虑

    这点,因为XP和Server 2003都可以登陆.不过既然有人提到,我还是试验一下.将服务器时间调整正确,然后再登陆.居然成功了!!!花费了将近1天的时间才搞好.总算又可以安心编码了.

       

        网上还找到不少关于TFS的好东东.一并分享:

        1.TFS帐户5人限制.

    因为所有的用户必须加入到Team Foundation Licensed Users组内才能连接上TFS; 所以只要手工修改数据库,就可以破解5用户限制了。我们以TFSGuest4帐户做测试.
    具体操作如下:
     我们先以Team Foundation Server管理员的帐户连接 Team Foundation Server;然后我们为Team Foundation Licensed Users组添加用户;如果超过5个用户会提示如下显示:
    要破解达到最在用户数的限制(5),我们就手工修改数据库吧:
    1.       先把TFSGuest4这个帐户的分配一下权限,例如分配给[Project]\Contributors如下:
    2.       选择”属性”进入如下窗口:
    3.       选择”Windows用户或组(W)”;点”添加”;再选择”TFSGuest4”帐户;操作后如下:
    4.       点确定;
    5.     然后打开SQL SERVER 2005;使用SQL Management Studio连接到你的数据库服务器;找到”TfsIntegration”数据库下的”tbl_security_identity_cache”表
    6.     选择右键”打开表”;用SQL语句直接找到它的SID;或直接用SQL脚本处理下
     SELECT sid FROM tbl_security_identity_cache
    where display_name=N'TFSGuest4' and deleted=0
    注意:中文的用户名在之前加N . 即:where [display_name]=N'张三';
         Deleted字段:是否已经删除;0表示:未删除;1表示:已删除
    执行后如下:

    7.     然后再用SQL语句查询出Team Foundation Licensed Users组的SID;
    SELECT sid FROM tbl_security_identity_cache WHERE (display_name = N'Team Foundation Licensed Users') AND (deleted = 0)
    8.     然后打开” tbl_security_membership_cache”表;如下:
    9.     打开后;在最后一行”container”字段中加入7中查出的SID;在”member”字段中加入6查出的SID;
    10. 再在” tbl_gss_group_membership”表中也加入;”parent_group_sid” 字段中加入7中查出的SID, “member_sid”字段中加入6查出的SID; “last_update”字段定个时间;跟9有点相同操作:
    注:6-11步骤;可以用一个SQL脚本添加用户到Team Foundation Licensed Users组处理:
    declare @container varchar(100),@member varchar(100) SELECT @container=[sid]      
      FROM [TfsIntegration].[dbo].[tbl_security_identity_cache]
    where [display_name]=N'Team Foundation Licensed Users' and deleted=0
    SELECT @member=[sid]      
      FROM [TfsIntegration].[dbo].[tbl_security_identity_cache]
    where [display_name]=N'TFSGuest4' and deleted=0

    Insert [TfsIntegration].[dbo].[tbl_security_membership_cache]
    ( [container],[member]) 
    s(@container,@member)
    Insert [TfsIntegration].[dbo].[tbl_gss_group_membership]
    ([parent_group_sid], [member_sid], [last_update])
    s(@container, @member, getdate())
    将上面的代码用查询分析器执行一下就可以了;(只需要执行一次)

    如果一不小心删除了所有“Team Foundation Licensed Users”组中的用户;就无法登录TFS了,也可以用上面脚本的方法;改一下帐户名就OK了;

       以上没有经过测试,谨慎使用~:)

  • 相关阅读:
    原生CSS、HTML 和 JavaScript 实现酷炫表单
    Vite2 如何设置打包后文件名
    读罢effective java,并不感觉特别好
    第六章部分习题答案
    第七章部分习题答案
    第八章部分习题答案
    mybatis 3.3.0之前版本的一个空指针BUG
    避免使用finalize方法
    mlp房价预测
    逻辑回归
  • 原文地址:https://www.cnblogs.com/kulong995/p/1951260.html
Copyright © 2020-2023  润新知