2017-06-06 52 views
0

我們爲客戶的大型域遷移項目編寫了一個遷移工具(C#)。客戶擁有一個擁有一個父域和多個子域的林。他們希望將所有用戶對象從子域移動到父域。跨域移動用戶對象

從很多客戶的具體的東西

除此之外,遷移工具從孩子移動用戶對象使用以下方法ADSI父域:

IADsContainer :: MoveHere https://msdn.microsoft.com/en-us/library/aa705991%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

按照以下文章有可能在滿足某些要求時跨域移動對象: https://technet.microsoft.com/en-us/library/ee198798.aspx?f=255&MSPPError=-2147217396

爲了測試目的,我使用了以下VBScript whi ch基本上與我的C#應用​​程序相同:

Set objOU = GetObject("LDAP://ou=Management,dc=NA,dc=fabrikam,dc=com") 
objOU.MoveHere "LDAP://cn=AckermanPilar,ou=Management,dc=fabrikam,dc=com",vbNullString 

上面的VBScript在我的測試環境中工作。如果我們試圖在生產同一腳本失敗與以下無用的錯誤消息:

Error: The server is unwilling to process the request. 
Code: 80072035 
Source: Active Directory 

但是,如果我們運行相同的腳本來從父域到它的工作原理子域移動用戶對象。

我們嘗試移動的用戶對象除了是通用組的主組之外沒有任何組成員身份。我們從源域(子)運行腳本,我們用來運行該腳本的用戶帳戶具有企業管理員權限。我們還加倍檢查了上述鏈接的所有要求。

有沒有人有一個想法是什麼問題可能和/或我可以如何解決它?

回答

1

我們嘗試了很多不同的配置,權限,設置等等。最後,我們試圖在不同的域控制器上(也在子域中)運行腳本,並且它工作正常。

我們還沒有發現這兩個域控制器之間有什麼區別,但它現在可行。

更新:腳本運行的服務器具有PDC角色。我還沒有找到任何文章說你必須在PDC上運行腳本,但看起來你必須這樣做。