Recipe 15.11. Moving an ObjectProblemYou want to move an object to a different container or OU in the same domain. SolutionUsing a graphical user interface
Using a command-line interface> dsmove "<ObjectDN>" -newparent "<NewParentDN>" Using VBScript' This code moves an object from one location to another in the same domain. ' ------ SCRIPT CONFIGURATION ------ strNewParentDN = "LDAP://<NewParentDN>" strObjectDN = "LDAP://cn=jsmith,<OldParentDN>" strObjectRDN = "cn=jsmith" ' ------ END CONFIGURATION --------- set objCont = GetObject(strNewParentDN) objCont.MoveHere strObjectDN, strObjectRDN DiscussionUsing a graphical user interfaceIf the parent container of the object you want to move has a lot of objects in it, you may want to add a new connection entry for the DN of the object you want to move. This may save you time searching through the list of objects in the container. You can do this by right-clicking ADSI Edit and selecting Connect to.... Under Connection Point, select Distinguished Name and enter the DN of the object you want to move. Using a command-line interfaceThe dsmove utility can work against any type of object (there are no limitations as with dsadd and dsmod). The first parameter is the DN of the object to be moved. The second parameter is the new parent container of the object. The -s parameter can additionally be used to name a specific server to work against. Using VBScriptThe MoveHere method can be tricky, so an explanation of how to use it to move objects is in order. First, you need to call GetObject on the new parent container. Then call MoveHere on the parent container object with the ADsPath of the object to move as the first parameter and the RDN of the object to move as the second. The reason for the apparent duplication of cn=jsmith in the MoveHere method is that the same method can also be used for renaming objects within the same container. See AlsoMS KB 313066 (HOW TO: Move Users, Groups, and Organizational Units Within a Domain in Windows 2000) and MSDN: IADsContainer::MoveHere |