问题提出:
公司有一台server2003,工作组环境,因配置比较低,购置了新服务器,需要把用户和密码迁移到新的server上,考虑到用户比较多,并且有些用户在外地,也不方联系他们索取密码!
问题分析
综上所述,需求就是:
1,安全的把用户账号迁移到新server上,并且需要简单方便
2,同时需要把之前的密码一并迁移,不可以重新设置密码
问题解决:
1,我们可以利用addusers.exe和copypwd.exe来备份账号和密码,软件可以从http://down.51cto.com/data/491199 这里下载
2,本次准备了1台server,因为机器吃不消了,就拿一台机器来做测试,因为是工作组环境,我们首先建立10个用户,并加入了test组,如图1
图1
3,备份账号,如图我们把addusers和copypwd拷贝到c盘,打开cmd,切换到路径为c盘,并运行addusers,如图2
C:\addusers /d:u account.bak // account.bak不能改名字,必须用这个
切记,生成的account.bak是在运行的命令下的,别记错了!
用记事本打开account.bak,把里面一些内置的用户删除掉!因为新server上已经有这些内置的用户了!比如guest等内置用户,管理员的可以根据自身的需求进行删减!
图2
4,备份密码,会在相应目录生成一个txt文档
C:\copypwd dump >copypwd.txt //copypwd.txt也不能改名字!如果上一步你有删除一些用户,那么这里打开后也要删除,不然会由报错信息(报错信息可以忽略的)如图3
图3
5,因为是一台server,我就直接删除用户和组了,来模拟是新的server,如图4,删除1—10用户和test组!
图4
6,先通过addusers导入账号:
c:\addusers.exe /p:L /c Account.bak
可以看出,有一些error出现,如果之前删除了这些内置的账号就不会出现了,我没有删除,所以报错了,不过问题也不是很大!可以忽略!
图5
7,导入密码
C:\copypwd set //注意copypwd.txt文档需要在c盘的目录下
如图6
图6
8,这样导入后,用户的属性会变成下一次登录的时候需要修改密码,如图7
如果觉得这也没什么,那也就到此了,用户修改一次就可以了!
图7
9, 如果忍受不了用户下次登录更改密码也不想一个个的去手动的去更改,我们可以使用cusrmgr.exe来进行更改,工具存在于 Windows2000server resourse KIT中,命令可以参考:http://support.microsoft.com/kb/272530/zh-cn
命令为:c:\cusrmgr –u 4 -s mustchangepassword 即可取消“用户下次登录须更改密码” 如图8
图8
10, 唯一不足的是cusrmgr不支持多选用户,所以,我们需要使用批处理来解决!如图9
图9
实验总结:
有需求就会有解决方案,只要你用心,一定会后的,还有一个想法就是直接复制SAM这个文件通过PE或者其他方式直接替换,不知道可行不,手头上没有环境,有兴趣的朋友可以测试下!并请告知测试结果!谢谢!
本文解决论坛:http://bbs.51cto.com/thread-946649-1.html
附录: