工具介绍:

  1、ldifde是系统自带命令行工具,直接在cmd就可以运行。

  2、addusers是在wind2k resource kit中的命令工具,可以通过安装wind2k resource kit来获取,下载地址:http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe

  3、copypwd可以导出、导入域用户的密码,可以在迁移用户之后,用来恢复用户的密码,当然了,由于导出的密码是hash的结果,能够被解密,为安全起见,使用之后请将导出的密码文件删除。下载地址:http://blogimg.chinaunix.net/blog/upfile2/081231194831.zip

  用到的sql:

   sql来自: http://vspug.com/dustin/2007/04/08/stsadm-in-a-gui-2007-version/

同步MOSS的用户SID,和AD的用户SID保持一致
DECLARE @login varchar(40), @systemid varbinary(128)

DECLARE curUsers CURSOR LOCAL FOR
SELECT tp_login, tp_systemid FROM userinfo where tp_deleted = 0

OPEN curUsers

FETCH NEXT FROM curUsers INTO @login, @systemid

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT 'Resetting user ' + @login + ' to new SID '
    PRINT suser_sid(@login)
    UPDATE UserInfo
        SET tp_systemid = suser_sid(tp_login) WHERE CURRENT OF curUsers
    FETCH NEXT FROM curUsers INTO @login, @systemid
END

CLOSE curUsers
DEALLOCATE curUsers

GO

  另外介绍:

  工具ADSI Editor也是一个很好用的工具,可以编辑AD中的很多信息,还可以使我们更加了解AD。可以通过安装系统安装盘的【I386\SUPPORT\TOOLS】目录中的SUPTOOLS.MSI,来安装。也可以下载:http://download.microsoft.com/download/3/e/4/3e438f5e-24ef-4637-abd1-981341d349c7/WindowsServer2003-KB892777-SupportTools-x86-ENU.exe文件进行安装。

  需求说明:

  如果你的AD环境因为多次的修改,例如调整域名、修改设置、反复安装和域相关的软件,导致在安装某些软件的时候会提示你【联系不上域,找不到域控制器】之类的错误的时候,这时候你想到了重新安装系统和域,但是域中的用户怎么办?就算用户抢救回来了,可是大多用户都修改了密码,想要这次变动在他们不知道的情况下,而且他们不会向你的上司抱怨“怎么密码又给我重置了,你们IT的每天都在做什么啊”,然后这些抱怨最终是会落到你的头上的,这时候怎么办?密码也回来了,可是用户的SID呢?在MOSS网站中用户的权限怎么办?新添加的用户虽然和以前的用户信息都一致,可是SID不一致,导致用户在MOSS网站的权限需要重新配置,在不能编辑新用户的SID的情况下(至少现在还不知道如何编辑域用户的SID值),如何修改它们在MOSS网站中的映射用户的SID值呢?

  步骤说明:

1、导出指定的组织单元信息,192.168.0.1为域控制器的IP

ldifde -f c:\exportOu.ldf -s 192.168.0.1 -d "dc=moss,dc=com" -p subtree -r "(&(objectClass=organizationalUnit)(ou=TestOu))" -l "cn,name,objectClass,ou,DistinguishedName,objectCategory"

2、导出指定的域(组织单元)中用户信息,192.168.0.1为域控制器的IP

ldifde -f c:\exportUser.ldf -s 192.168.0.1 -d "ou=TestOU,dc=moss,dc=com" -p subtree -r "(|(objectClass=user)(objectClass=group))" -l "cn,name,objectClass,displayName,DistinguishedName,sAMAccountName,sn,title,userPrincipalName"

3、导入域组织单元信息,192.168.0.1为域控制器的IP

ldifde -i -f c:\exportOu.ldf -s 192.168.0.1

4、导入域中用户信息,192.168.0.1为域控制器的IP
ldifde -i -f c:\exportUser.ldf -s 192.168.0.1

5、导出域用户密码【不能在远程中执行这个命令,只能在本机使用这个命令,运行的同时注意关闭防火墙软件,不能修改命令中的文件名copypwd.txt】

copypwd dump > copypwd.txt

6、导入域用户密码,自动查找同目录的copypwd.txt文件

copypwd set

7、启用账户【导入用户之后账户是禁用状态】

8、修改账户的密码策略为【密码永远不过期】

9、使用AD的账号SID同步MOSS的内容数据库的【UserInfo】中的【tp_SystemID】列的对应值,使用开始工具中介绍的用到的sql【同步MOSS的用户SID,和AD的用户SID保持一致】,因为在MOSS网站的内容数据库的UserInfo表中存储了登录网站的用户信息,其中的tp_SystemID列存储的是AD的域用户的SID值,所以我们在新建用户之后可以使用这段SQL来更新UserInfo表中的tp_SystemID列,使其和新添加的用户的SID保持一致,这样新添加的用户在MOSS网站中的权限就可以不用重新配置了。

注意:
1、导入密码之后密码策略会变成【下次登陆需要修改密码】,只要在登陆之前设置为【密码永远不过期】
2、导入密码之前删除不需要导入密码的帐户信息,只导入需要恢复密码的帐户信息,删除例如administrator之类的系统帐户信息
3、使用addusers导入导出域用户有局限,因为导出的用户信息属性有限,有的属性导不出来
4、使用ldifde导入组织单元和用户的时候有一些属性不能导入,我刚开始导出的时候就是想多导出一些属性,然后把这些属性都导进去,用户信息就齐全了,可是后来发现有的属性可以导出,但是导入的时候就会提示【架构不正确】之类的错误信息,经过多次尝试,删除不能导入的属性,就可以正常运行了。

下面是另外一位老兄的blog,原文地址如下,大家也可以参考。

http://imdbt.blog.51cto.com/903896/213331

【现象】
客户的一台MOSS服务器迁移到了一个新域,域名不同。原来的用户账号也迁移过来了,用户可以登录到域,但是访问MOSS的时候提示没有权限,重新授权后也可以访问。
【分析】
AD账号迁移到新域之后,SID发生了变化。MOSS网站的WSS_Content数据库中Userinfo表中存储的还是旧的SID,所以提示无法访问。
有部分账号客户手工重新添加到MOSS中了,这部分账号不能更新SID,因为Userinfo表有一个tp_siteid,tp_login,tp_deleted的组合主键,不运出现重复。
【解决方法】
1.将WSS_Content 数据库中UserInfo表中的账号和SID 都更新为新域的账号和SID
2.使用游标技术,每次取一个账号
3.使用Suser_SID(‘LoginName’) 函数获取账号的SID
4.Replace(列名,'字符串','字符串')用来替换旧的域名为新的域名
5.begin try ....end try, begin catch...end catch 语句用来进行异常处理,让代码出现异常之后,还能继续向下执行
【修复代码】
DECLARE @Login Varchar(40), @Systemid Varbinary(128) 
DECLARE Curusers CURSOR LOCAL FOR    
        SELECT Tp_Login, Tp_Systemid FROM Userinfo Where Tp_Deleted = 0

OPEN Curusers 
FETCH NEXT FROM Curusers INTO @Login, @Systemid 
WHILE @@FETCH_STATUS = 0 
BEGIN 
Begin Try 
  PRINT 'Resetting Login ' + @Login + ' To New Login ' 
  Update Userinfo Set Tp_Login=Replace(Tp_Login, '旧域名\','新域名\') 
             WHERE CURRENT OF Curusers 
End Try 
Begin Catch 
  PRINT 'Resetting Login ' + @Login + ' Failed! ' 
  PRINT Error_Message() 
End Catch 
Begin Try 
  PRINT 'Resetting SID ' + @Login + ' To New SID ' 
  PRINT Suser_Sid(@Login) 
  UPDATE Userinfo SET Tp_Systemid = Suser_Sid(Tp_Login)    
        WHERE CURRENT OF Curusers 
End Try 
Begin Catch 
   PRINT 'Resetting SID ' + @Login + ' Failed! ' 
   PRINT Error_Message() 
End Catch 
FETCH NEXT FROM Curusers INTO @Login, @Systemid 
END 
CLOSE Curusers

DEALLOCATE Curusers

转载于:https://www.cnblogs.com/virusswb/archive/2009/10/30/1593336.html

批量(导入导出)迁移AD中的用户信息和密码到新环境中,同时保持用户在MOSS中的权限【addusers,ldifde,copypwd,UserInfo,tp_SystemID】...相关推荐

  1. AD域中如何批量导入导出账号

    本帖出现于51CTO论坛中,是一位网友自己的实际工作经历.是在AD域中如何批量导入导出账号.工作上有一个需求,需要批量的导入一些账号,并要求有一些属性,比如:部门,职位,分机等! 如果您有兴趣也可以去 ...

  2. 导出ad 计算机用户,批量导入导出域(活动目录AD)用户账户

    在活动目录的管理中会遇到对用户进行批量操作的问题,例如,在升级操作系统时或在刚刚使用活动目录时,管理人员需要批量的添加或删除用户帐户. 批量导入/导出域用户可以使用Windows服务器中的csvde. ...

  3. 使用CSVDE批量导入命令/出口AD用户

    使用CSVDE批量导入命令/出口AD用户 CSVDE命令行工具可以与真实的用户信息CSV文件.批量导入/出口AD在. 导入的基本的语法命令是这种: csvde -i -f c:\filename.cs ...

  4. 使用cardme读写VCard文件,实现批量导入导出电话簿

    转载自 使用cardme读写VCard文件,实现批量导入导出电话簿 首先下载jar包cardme. http://sourceforge.net/projects/cardme/?source=nav ...

  5. Java实现文件批量导入导出实例(兼容xls,xlsx)

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  6. CATIA批量导入导出数据到EXCEL

    CATIA批量导入导出数据到EXCEL 序言 一.EXCEL数据点批量导入到CATIA 二.CATIA数据点批量导入到EXCEL 三.VB批量输出点到EXCEL 序言 工作中,由于测量基准和建模基准不 ...

  7. 批量导入/导出Excel文件(Python+Matlab)

    简单整理了下批量导入/导出Excel的Python和Matlab代码. Matlab 连续数字型.xlsx文件(如file_1.xlsx, file_2.xlsx, file_3.xlsx) clc, ...

  8. android手机导出联系人,OPPO Reno如何批量导入/导出联系人?

    准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...

  9. win10批量导入导出windows计划任务的批处理脚本

    批量导入导出windows计划任务的批处理脚本 2017年11月16日 16:19:31 yyusea 阅读数:2705 先把参考摆上: 参考1:  How to: Use schtasks_tool ...

最新文章

  1. CSSA email list
  2. 混合密度网络(MDN)进行多元回归详解和代码示例
  3. redis的spring的xml配置
  4. LeetCode Algorithm 389. 找不同
  5. 聚宽macd底背离_许多散户不知道:MACD月线金叉,MACD月金叉都会带来一波牛市!...
  6. 进程全家桶,看这一篇就够了 | 原力计划
  7. OpenCL 学习step by step (5) 使用二维NDRange workgroup
  8. Java——can U do
  9. bzoj 2959: 长跑【LCT+并查集】
  10. spring,springMVC,springBoot常用注解
  11. 离散数学2:命题逻辑的推理
  12. 删库是不可能删库的,这辈子是不可能删库的
  13. RTL8152网卡Linux驱动,openwrt增加 rtl8150 USB网卡驱动支持
  14. 永磁同步电机矢量控制(一)——数学模型
  15. nssl 1467.U
  16. 计算机毕业设计Java高校学生综合评价系统(源码+系统+mysql数据库+Lw文档)
  17. 学数学建模算法对计算机的好处,数学建模中常见十种算法 (期末论文).doc
  18. layui后台管理首页配置
  19. centos7搭建开源ERP-PSI
  20. 实现给页面长截图,带滚动条的部分也截取

热门文章

  1. clickhouse mysql引擎_玩数据的,有必要搞搞这个大数据框架——ClickHouse
  2. 选择纯种犬还是杂种犬?
  3. RT600之Mailbox
  4. 修改CentOS 7.2系统的主机名
  5. Redis的安装和部署
  6. 文档协同编辑帮助企业迎接大数据时代
  7. 【Nutch2.2.1基础教程之2.1】集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行【单机环境】...
  8. ubuntu wps
  9. Log Cauchy分布的一个Hierarchical模型:LC=Gamma+Gamma+Unif
  10. UA MATH567 高维统计专题1 稀疏信号及其恢复2 用L1-norm作为L0-norm的convex relexation