none
[vbscript] Mover usuario de una OU a otra RRS feed

  • Pregunta

  • Hola,

    Estoy montando una serie de scripts para automatizar usuarios de AD, y en concreto me gustaría hacer en vbscript una sentencia para mover 1 usuario de una OU a otra distinta, lo estoy haciendo con "objX.movehere" pero después de varios días con diferentes errores no logro hacerlo funcionar, comparto una parte del código adaptada para que tenga sentido esta parte, sería tal que así:

    Dim strOuName, strOuName2, struser, domainname, strNewParentDN, strObjectDN, strObjectRDN, 
    
    'Definición de OU's
    strOuName = "OU1"
    strOuName2 = "OU2"
    
    'Usuario a mover
    struser = "User1"
    'Definición dominio
    domainname = objRootLDAP.get("defaultNamingContext")
    'OU a la que se desea mover
    strNewParentDN = "LDAP://OU=" & strOuName2 & "," & domainname
    'Variables adicionales para sentencia
    strObjectDN    = "LDAP://cn=" & struser & ",OU=" & strOuName1
    strObjectRDN   = "CN=" & struser
    
    'Sentencia mover usuario
    set objCont = GetObject(strNewParentDN)
    objCont.MoveHere strObjectDN, strObjectRDN

    Obtengo el error "An operations error ocurred" "Code 80072020".

    También he probado con algo similar a lo anterior cambiando la sentencia final:

    Set objCont = GetObject("LDAP://OU=" & strOuName1 & "," & domainname)
    objCont.MoveHere  "LDAP://cn=" & struser & ",cn=users," & domainname,vbNullString

    Pero me dice "There is no such object on the server" "Code 80072030"

    He comprobado que tanto el usuario como demás OU's/variables definidas existen.

    ¿Alguien es tan amable de echarme un capote?

    Saludos!

    sábado, 27 de octubre de 2018 22:19

Todas las respuestas

  • Parece que la segunda sentencia que puse es la correcta para mover el usuario, pero da error "There is no such object on the server", entiendo que es que no está encontrando el usuario en la OU fuente para moverla al destino, pero no veo donde está el error.
    domingo, 28 de octubre de 2018 20:31
  • Hola

    Si como dices que las variables están bien definida a lo mejor es necesario ejecutar el script con permisos elevados de administrador, en powershell es requerido para este tipo de movimientos.

    Si quieres también puedes probar con powershell es algo más sencillo:

    $OUDestion =  "OU=Destino,DC=tudominio,DC=local" 
    $Usuario = "Paquito Verbernas"
    $DNUsuario = (Get-ADUser -Identity $Usuario).distinguishedName 
    Move-ADObject  -Identity $DNUsuario -TargetPath $OUDestion

    También con permisos elevados

    Saludos,

    lunes, 29 de octubre de 2018 8:12