批量(导入导出)迁移AD中的用户信息和密码到新环境中,同时保持用户在MOSS中的权限【addusers,ldifde,copypwd,UserInfo,tp_SystemID】...
工具介紹:
1、ldifde是系統(tǒng)自帶命令行工具,直接在cmd就可以運(yùn)行。
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可以導(dǎo)出、導(dǎo)入域用戶的密碼,可以在遷移用戶之后,用來恢復(fù)用戶的密碼,當(dāng)然了,由于導(dǎo)出的密碼是hash的結(jié)果,能夠被解密,為安全起見,使用之后請(qǐng)將導(dǎo)出的密碼文件刪除。下載地址: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也是一個(gè)很好用的工具,可以編輯AD中的很多信息,還可以使我們更加了解AD。可以通過安裝系統(tǒng)安裝盤的【I386\SUPPORT\TOOLS】目錄中的SUPTOOLS.MSI,來安裝。也可以下載:http://download.microsoft.com/download/3/e/4/3e438f5e-24ef-4637-abd1-981341d349c7/WindowsServer2003-KB892777-SupportTools-x86-ENU.exe文件進(jìn)行安裝。
需求說明:
如果你的AD環(huán)境因?yàn)槎啻蔚男薷?#xff0c;例如調(diào)整域名、修改設(shè)置、反復(fù)安裝和域相關(guān)的軟件,導(dǎo)致在安裝某些軟件的時(shí)候會(huì)提示你【聯(lián)系不上域,找不到域控制器】之類的錯(cuò)誤的時(shí)候,這時(shí)候你想到了重新安裝系統(tǒng)和域,但是域中的用戶怎么辦?就算用戶搶救回來了,可是大多用戶都修改了密碼,想要這次變動(dòng)在他們不知道的情況下,而且他們不會(huì)向你的上司抱怨“怎么密碼又給我重置了,你們IT的每天都在做什么啊”,然后這些抱怨最終是會(huì)落到你的頭上的,這時(shí)候怎么辦?密碼也回來了,可是用戶的SID呢?在MOSS網(wǎng)站中用戶的權(quán)限怎么辦?新添加的用戶雖然和以前的用戶信息都一致,可是SID不一致,導(dǎo)致用戶在MOSS網(wǎng)站的權(quán)限需要重新配置,在不能編輯新用戶的SID的情況下(至少現(xiàn)在還不知道如何編輯域用戶的SID值),如何修改它們?cè)贛OSS網(wǎng)站中的映射用戶的SID值呢?
?
步驟說明:
1、導(dǎo)出指定的組織單元信息,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、導(dǎo)出指定的域(組織單元)中用戶信息,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、導(dǎo)入域組織單元信息,192.168.0.1為域控制器的IP
ldifde -i -f c:\exportOu.ldf -s 192.168.0.1
4、導(dǎo)入域中用戶信息,192.168.0.1為域控制器的IP
ldifde -i -f c:\exportUser.ldf -s 192.168.0.1
5、導(dǎo)出域用戶密碼【不能在遠(yuǎn)程中執(zhí)行這個(gè)命令,只能在本機(jī)使用這個(gè)命令,運(yùn)行的同時(shí)注意關(guān)閉防火墻軟件,不能修改命令中的文件名copypwd.txt】
copypwd dump > copypwd.txt
6、導(dǎo)入域用戶密碼,自動(dòng)查找同目錄的copypwd.txt文件
copypwd set
7、啟用賬戶【導(dǎo)入用戶之后賬戶是禁用狀態(tài)】
8、修改賬戶的密碼策略為【密碼永遠(yuǎn)不過期】
9、使用AD的賬號(hào)SID同步MOSS的內(nèi)容數(shù)據(jù)庫的【UserInfo】中的【tp_SystemID】列的對(duì)應(yīng)值,使用開始工具中介紹的用到的sql【同步MOSS的用戶SID,和AD的用戶SID保持一致】,因?yàn)樵贛OSS網(wǎng)站的內(nèi)容數(shù)據(jù)庫的UserInfo表中存儲(chǔ)了登錄網(wǎng)站的用戶信息,其中的tp_SystemID列存儲(chǔ)的是AD的域用戶的SID值,所以我們?cè)谛陆ㄓ脩糁罂梢允褂眠@段SQL來更新UserInfo表中的tp_SystemID列,使其和新添加的用戶的SID保持一致,這樣新添加的用戶在MOSS網(wǎng)站中的權(quán)限就可以不用重新配置了。
注意:
1、導(dǎo)入密碼之后密碼策略會(huì)變成【下次登陸需要修改密碼】,只要在登陸之前設(shè)置為【密碼永遠(yuǎn)不過期】
2、導(dǎo)入密碼之前刪除不需要導(dǎo)入密碼的帳戶信息,只導(dǎo)入需要恢復(fù)密碼的帳戶信息,刪除例如administrator之類的系統(tǒng)帳戶信息
3、使用addusers導(dǎo)入導(dǎo)出域用戶有局限,因?yàn)閷?dǎo)出的用戶信息屬性有限,有的屬性導(dǎo)不出來
4、使用ldifde導(dǎo)入組織單元和用戶的時(shí)候有一些屬性不能導(dǎo)入,我剛開始導(dǎo)出的時(shí)候就是想多導(dǎo)出一些屬性,然后把這些屬性都導(dǎo)進(jìn)去,用戶信息就齊全了,可是后來發(fā)現(xiàn)有的屬性可以導(dǎo)出,但是導(dǎo)入的時(shí)候就會(huì)提示【架構(gòu)不正確】之類的錯(cuò)誤信息,經(jīng)過多次嘗試,刪除不能導(dǎo)入的屬性,就可以正常運(yùn)行了。
?
?
下面是另外一位老兄的blog,原文地址如下,大家也可以參考。
?http://imdbt.blog.51cto.com/903896/213331
【現(xiàn)象】客戶的一臺(tái)MOSS服務(wù)器遷移到了一個(gè)新域,域名不同。原來的用戶賬號(hào)也遷移過來了,用戶可以登錄到域,但是訪問MOSS的時(shí)候提示沒有權(quán)限,重新授權(quán)后也可以訪問。【分析】AD賬號(hào)遷移到新域之后,SID發(fā)生了變化。MOSS網(wǎng)站的WSS_Content數(shù)據(jù)庫中Userinfo表中存儲(chǔ)的還是舊的SID,所以提示無法訪問。有部分賬號(hào)客戶手工重新添加到MOSS中了,這部分賬號(hào)不能更新SID,因?yàn)閁serinfo表有一個(gè)tp_siteid,tp_login,tp_deleted的組合主鍵,不運(yùn)出現(xiàn)重復(fù)。【解決方法】1.將WSS_Content 數(shù)據(jù)庫中UserInfo表中的賬號(hào)和SID 都更新為新域的賬號(hào)和SID2.使用游標(biāo)技術(shù),每次取一個(gè)賬號(hào)3.使用Suser_SID(‘LoginName’) 函數(shù)獲取賬號(hào)的SID4.Replace(列名,'字符串','字符串')用來替換舊的域名為新的域名5.begin try ....end try, begin catch...end catch 語句用來進(jìn)行異常處理,讓代碼出現(xiàn)異常之后,還能繼續(xù)向下執(zhí)行【修復(fù)代碼】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?
轉(zhuǎn)載于:https://www.cnblogs.com/virusswb/archive/2009/10/30/1593336.html
總結(jié)
以上是生活随笔為你收集整理的批量(导入导出)迁移AD中的用户信息和密码到新环境中,同时保持用户在MOSS中的权限【addusers,ldifde,copypwd,UserInfo,tp_SystemID】...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字人民币是什么意思 会有什么影响
- 下一篇: 24小时学通linux视频教程下载