Modificar atributos masivamente en objetos de Directorio Activo
Hola a todos,
Me han pedido que realice unos cambios en cerca de 3000 objetos usuarios de directorio activo, entre los que están:
1- Cambiar el estado del usuario a Deshabilitado
2- Modificar un atributo del usuario para ocultarlo de la Libreta de direcciones de Exchange.
El punto 1, basicamente, lo solucioné con un Script que consultaba los atributos LastLogonTimeStamp y LastLogon, y manualmente se deshabilitaban aquellos que eran usuarios no genéricos, que tienen nomenclatura similar los usuario normales.
Para saber estos usuarios, desde la consola de administración de Directorio Activo, se ha realizado una búsqueda personalizada en la cual se indica que los atributos LastLogonTimeStamp sea vacío (nunca ha realizado logon en el dominio) o sea anterior a una fecha determinada, en nuestro caso 01/01/2012.
(&((objectCategory=person)(objectClass=user)(|(lastLogonTimestamp<=1325376000)(!lastLogonTimestamp=*))))
Para indicar el valor de TimeStamp, he utilizado la calculadora WEB:
- http://www.onlineconversion.com/unix_time.htm
- http://www.pedroventura.com/utilidades/conversor-timestamp-a-fecha
- http://www.unixtimestamp.com/index.php
Una vez que he tenido los usuario en Disable, ha tocado ocultar aquellos usuarios que el departamento de RRHH ha indicado por baja en la empresa.
Para poder realizar las acciones sobre el check a marcar:
Corresponde al atributo del objeto: msExchHideFromAddressLists, que podemos visualizar al abrir el objeto de usuario con la herramienta adsiedit.msc.
Para iniciar las pruebas mediante powershell, probé con visualizar los usuarios que tuviesen el check marcado (true), es decir, que no se ven en la libreta de direcciones o desmarcado (false).
Get-QADUser -Disabled -oa @{‘msExchHideFromAddressLists’=$true}
Para poder modificar tenía 2 formas, una más «elegante que otra», ya que en un Script podía trabajar con Logs de los usuarios modificados.
Sin Logs y a lo loco 😉
Get-QADUser -Disabled | Set-QADUser -oa @{‘msExchHideFromAddressLists’=$true}
Con Logs y más elegante
get-qaduser -searchroot «OU=Disable,DC=domain,DC=local» -IncludedProperties MSExchHideFromAddressLists | where-object {-not $_.MSExchHideFromAddressLists} | set-qaduser -objectAttributes @{MSExchHideFromAddressLists=$true} -Confirm | Tee-Object -FilePath «Ocultos_Exchange.txt»
Pero, como esto hubiese sido muy fácil, este cambio no querían realizarlo de forma masiva sobre toda la OU de DISABLE, e ir haciendo estas modificaciones, previo aviso, otra vez, del departamento de RRHH.
Después de todo esto, y hablando con compañero, me indicaron una herramienta que ha estado toda la vida ahí, y ha sido para mí una gran desconocida 😉
AD MODIFIY: http://admodify.codeplex.com/
Es una herramienta que nos permite, mediante una consulta previa sobre AD, modificar cualquier atributo de manera visual.
Abrimos la herramienta con permisos de modificación en AD, y pulsamos en MODIFY ATTRIBUTES
Seleccionamos el dominio sobre el cual queremos actuar y sobre que equipo con el rol de Directorio Activo, queremos actuar.
En mi caso, no me hará falta realizar una consulta sobre AD, ya que los elementos a modificar los tengo en el OU de Disable\Users. Navegaré hasta la OU y pulsaremos en ADD TO LIST.
Seleccionamos los objetos que queremos modificar.
Y ahora, y de forma visual, podemos modificar el atributo que queremos sin ningún tipo de problema 😉
Un Saludo,
Manu
Comentarios recientes