Mes: diciembre 2014

Moviendo Objetos del Directorio Activo con PowerShell

Que tal

Este es un post corto en donde solo voy a exponer una situación que se me presentó trabajando con usuarios en el Directorio activo y la necesidad de reubicarlos en diferentes OUs de acuerdo a ciertos valores dentro de alguno de sus atributos.

Es cierto que para poder encontrar usuarios tenemos el comando “Get-ADUser” pero al trabajar con el vi que si bien era sencillo encontrar los usuarios, no me era fácil usar el “pipe” para redirigir los objetos salientes hacia el comando “move-ADObject” ya que el objeto recibido no era el esperado precisamente por este CMDlet.

Realizando mayores pruebas y leyendo algo de la documentación, encontré que el cmdlet “Get-ADObject” me podria ser de mayor utilidad (y lo fue) ya que este comando arroja como resultante un objeto del directorio activo(que puede ser cualquiera, dicese Grupos, computers, Users y cualquier objeto que pueda ser almacenado en el Directorio activo) y a traves del parametro “LDAPfilter”, podemos restringir a aquellos objetos que estemos buscando especificamente, ya que en este filtro podemos introducir cualquier filtro LDAP permitido).

En mi ejemplo especifico buscaba que ciertos usuarios que tuvieran un valor especifico dentro del atributo “userprincipalname” fueran movidos de la OU “Test” hacia la OU “Test2”, y aqui el ejemplo.

Get-ADObject -searchBase "OU=Test,OU=BaseOU,DC=prueba,DC=local" -LDAPfilter "(userprincipalName=*Juan*)" | move-adobject -targetpath "OU=Test2,OU=BaseOU,DC=Prueba,DC=local" -verbose

Como pueden ver es una simple linea y los resulotados son enviados hacia el cmdlet “move-ADObject” y los resultados han sido los esperados.

Como pueden ver, la facilidad de proveer un filtro de LDAP, les abre muchas posibilidades para jugar con este comando, ademas de que el tipo de objeto que arroja el cmdlet, les permitirá interactuar con otros cmdlet disponibles en el modulo de Active Directory.

Espero les sea de utilidad.