Español (spanish formal Internacional)

Fermu Website

Home
Modificar un atributo de usuario en el Active Directory mediante un .vbs recursivo PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Escrito por Marc   
Martes, 30 de Agosto de 2005 16:14

Introducción al problema

A veces, por el motivo que sea, bien por curiosidad o por necesidad como fue mi caso, es necesario modificar un atributo de un usuario en un dominio basado en Active Directory.
Una manera sencilla sería, en Windows Server 2003, sería seleccionar a todos los usuarios y cambiarles el atributo a todos a la vez. Pero este paso no siempre es posible si cada usuario ha de tener, como es el caso que expongo, un valor diferente al resto.

Para ello, no queda más remedio que buscar "algo" que nos ayude a realizar esta tarea. La solución propuesta es el resultado de un "mix" de dos scripts que encontré "googleando" por Internet.

Solución propuesta

La solución que opté por usar fue la siguiente,

Crear un .vbs que:

  1. Dado un fichero de texto en formato .CSV, leyera los datos de él.
  2. Guardara todos los datos del .CSV en un array en memoria para agilizar la ejecución del proceso (gracias Richard!!!)
  3. Recorriera de forma recursiva todo el Active Directory mediante dos funciones de consulta LDAP
  4. Una vez localizado el valor a cambiar, evidentemente, cambiarlo.
El formato del archivo .CSV lo podeis previsualizar mediante la descarga del archivo modifyAD.vbs de nuestro repositorio

Explicación del código

  • La función leerDatosCSV: Esta función abre el .csv y lo recorre hasta el final, guardando en un array los datos que va leyendo. Esta última parte se hace con la función buscarDatos
  • Siguiente paso: Encontrar la raíz del Active Directory que queremos recorrer.
  • EnumOUs: Función recursiva cuyo parámetro de entrada es la raíz del AD. La utilidad de esta función es recorrer todas las OUs (Unidades Organizativas) en el Active Directory para posteriormente, usando la función EnumUsers buscar a los usuarios del mismo.
  • Como se puede ver, la única diferencia real entre las dos es que en la primera filtramos por "Organizational Unit" mientras que en la segunda lo hacermos por "User"
  • Una vez aquí, y mediante la función BuscaUser, vamos comparando los valores de la segunda posición del array con el valor del "user" que actualmente tiene la variable de recursión. Si ambos valores coinciden, procederemos a actualizar/cambiar el valor del atributo "Description" del usuario.
  • Si todo ha ido bien, la variable "changeMade" se convierte en "True" y confirmamos el cambio del valor del atributo.
  • Este proceso se repite hasta finalizar el recorrido por todo el Active Directory.

Marc
MCP - MVP Windows - Shell/User

Trackback(0)
Comentarios (4)Add Comment
registros en directorio activo
escrito por omar alegria, noviembre 28, 2008
hola a todos

me interesa saber como puedo dar de alta a usuarios y contraseñas en el directorio activo usando una pagina con ASP.


Gracias
enviar abuso
vote negativo
vote positivo
Votos: +0
gdsfg
escrito por Invitado, noviembre 07, 2007
rewrwewew :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset :upset
esto es una mierda
enviar abuso
vote negativo
vote positivo
Votos: +0
Modificar un atributo de usuar
escrito por Invitado, noviembre 30, 2005
Me podrias proporcionar el codigo fuente.
enviar abuso
vote negativo
vote positivo
Votos: +0

Escribir comentario
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
más pequeño | más grande

busy
Actualizado ( Martes, 13 de Septiembre de 2005 01:42 )
 
Web www.fermu.com

Autentifícate



Gente Online

Tenemos 221 invitados conectado
Joomla Templates by JoomlaShack