2012-07-24 60 views
4

因此下面的代碼應該移動活動目錄中的對象。我看到這裏發生了什麼,但我不太明白。我看到的只是舊的位置和新的位置。我沒有看到我究竟如何抓住物體。我在這兩個地方都有幾個對象,這個代碼在哪裏說什麼特定對象將被移動?我沒有看到在哪裏有一個對象的LDAP + objectLocation字符串。使用c移動Active Directory中的對象#

DirectoryEntry eLocation = new DirectoryEntry("LDAP://" + objectLocation); 
DirectoryEntry nLocation = new DirectoryEntry("LDAP://" + newLocation); 
string newName = eLocation.Name; 
eLocation.MoveTo(nLocation, newName); 
nLocation.Close(); 
eLocation.Close(); 
+0

'MoveTo'將'eLocation'指向的對象實際移動到'nLocation'指定的位置。我不太明白你的問題,但代碼似乎合法。 – 2012-07-24 15:06:44

+0

您正在移動的對象由「eLocation」指定,您將其移至「nLocation」指定的位置,而第二個「MoveTo」重載允許您重命名要移動的對象。 – 2012-07-24 15:09:31

回答

12

也許這個例子可以很清楚的:

DirectoryEntry theObjectToMove = new DirectoryEntry("LDAP://CN=jdoe,CN=Users,DC=acme,DC=com"); 
DirectoryEntry theNewParent = new DirectoryEntry("LDAP://OU=Something,DC=acme,DC=com"); 
theObjectToMove.MoveTo(theNewParent); 

MoveTo有兩個參數的重載還指定對象的新名稱,我認爲在你的榜樣它是多餘的。

+0

好的,謝謝。我現在看到它。我所有的字符串都是廣告樹中的路徑,我從來沒有見過CN = jdoe,那正是我想問的問題,我在哪裏指定要移動的對象。反正,謝謝,這真的有幫助 – Jon 2012-07-24 17:24:49

+0

很高興幫助:)乾杯 – 2012-07-24 19:58:16

+0

嗨保羅,我只是按照你的指示,但它不起作用,我得到未指定的錯誤。我感謝你的努力。 – Nayef 2015-08-30 06:12:14