Como dar uso al campo EmployeeID en el Directorio Activo.
Escrito por xavixaus en January 29th, 2010
Buenas.
Hoy un poco de Active Directory avanzado.
Os pongo en contexto: Cuando se instala Active Directory en el primer controlador de dominio de un bosque nuevo, se crean tres contenedores o particiones (Dominio, Configuración y Esquema).
La partición de dominio es el contenedor de los objetos del dominio.
La partición de configuración es el contenedor de la configuración por defecto y de toda la información de directiva.
La partición de esquema es el contenedor de todos los objetos, clases, atributos y sintaxis.
En este artículo vamos a modificar la partición de configuración mediante el uso de la aplicación ADSI Edit para conseguir introducir un Id. de empleado en cada usuario de nuestro directorio activo de una forma sencilla y poderlos listar con facilidad mediante la introducción de una columna nueva llamada Id. Empleado en la consola de Usuarios y Equipos de Active Directory como se muestra en la siguiente imagen.
Para conseguir introducir el Id. Empleado vamos a habilitar una nueva opción en el menú contextual (cuando pulsamos con el botón derecho del ratón sobre un objeto) para que aparezca Id. Empleado (Chulo ehhhh..)
IMPORTANTE: Lo primero que debemos saber es que estas modificaciones son más peligrosas que modificar el regedit, si modificamos regedit en un equipo únicamente podemos provocar fallos en un equipo, en cambio si modificamos incorrectamente la partición de configuración de un directorio activo podemos afectar a miles de usuarios. (Pensad-lo bien antes de modificar nada sobre las particiones de dominio, configuración o esquema).
Vamos a empezar primero modificando el menú contextual:
Dependiendo del idioma del servidor de Active Directory los valores de los atributos los deberemos modificar en contenedores distintos (C0A para español, 409 para inglés).
Desde el controlador de dominio que almacena el esquema pulsamos sobre Inicio –> Ejecutar –> escribimos adsiedit.msc y pulsamos sobre Aceptar.
Desplegamos el árbol de Configuration –> CN=Configuration, DC=dominio, DC=dominio –> CN=DisplaySpecifiers –> CN=C0A (para versión español)
Desplegamos el árbol de Configuration –> CN=Configuration, DC=dominio, DC=dominio –> CN=DisplaySpecifiers –> CN=409 (para versión inglés)
En la pantalla de la derecha pulsamos con el botón derecho del ratón sobre CN=user-Display –> Propiedades.
Pulsamos sobre adminContextMenu y pulsamos sobre el botón Edit
Escribimos en el campo Value to add: ,&Id. Empleado, "c:\windows\sysvol\sysvol\<dominio>\scripts\IdEmpleado.vbs" y pulsamos sobre OK y sobre Aceptar.
Para comprobar que el campo aparece nos vamos a Usuarios y equipos de Active Directory (desde Inicio –> Ejecutar –> dsa.msc) y pulsamos con el botón derecho del ratón sobre cualquier objeto usuario.
Vemos que aparece en el menú contextual un nuevo valor llamado Id. Empleado (No pulséis sobre él ya que no hará nada (de momento…).
Lo que hemos hecho con los pasos realizados hasta ahora es agregar este nuevo valor del desplegable y le hemos dicho que cuando pulsemos sobre él nos ejecute de la ruta C:\windows\sysvol\sysvol\<vuestro dominio>\scripts\ el fichero IdEmpleado.vbs.
Ahora lo que tenemos que hacer es crear este fichero.
Os preguntaréis: Y por que tiene que estar en esta ruta?, pues bien: Esta ruta es una ruta especial que se replica entre todos los controladores de dominio dentro de un dominio con lo que este fichero siempre estará en cualquier controlador de dominio replicado. En el caso que cambiaramos el servidor de Schema no nos tendremos que preocupar por esto, en el caso que queramos ejecutar este Id. Empleado en un controlador de dominio distinto al actual lo podremos hacer. Eso sí si vamos a ejecutar esto desde una consola de active directory desde un equipo cliente (NO Domain Controller) deberemos crear la ruta c:\windows\sysvol\sysvol\<vuestro dominio>\scripts\ y ubicar el fichero allí.
Ahora vamos a crear el fichero IdEmpleado.vbs.
Inicio –> Ejecutar –> notepad “C:\windows\sysvol\sysvol\<vuestro dominio>\scripts\IdEmpleado.vbs”
Cuando salga el mensaje de que no se encuentra el archivo pulsad sobre Sí para que nos lo cree.
El fichero deberá contener algo parecido a los siguiente:
Dim oVar
Dim oUsr
Dim ventana
Set oVar = Wscript.Arguments
Set oUsr = GetObject(oVar(0))ventana = InputBox( _
"El Id de empleado para " & Right(oUsr.Name, Len(oUsr.Name) – 3) & " es:" & vbCrLf & _
vbCrLf & _
oUsr.employeeID & vbCrLf & _
vbCrLf & _
"Introduce un nuevo Id de empleado", _
"Introducir Id Empleado")if ventana <> "" then oUsr.Put "employeeID",ventana
oUsr.SetInfo
Set oUsr = NothingWScript.Quit
Guardamos el fichero.
Ahora sí, nos vamos a Usuarios y equipos de Active Directory (desde Inicio –> Ejecutar –> dsa.msc) y pulsamos con el botón derecho del ratón sobre cualquier objeto usuario.
Pulsamos sobre Id. Empleado y nos aparecerá una ventana como la siguiente:
Escribimos el código de empleado que deseemos y pulsamos sobre Aceptar.
No ha sido tan difícil no??? Bueno pues ahora cerramos Usuarios y equipos de Active Directory.
Ahora lo que vamos a hacer es crear una nueva columna que muestre el Id. de empleado en la consola de Active Directory también modificando la partición de configuración desde AdsiEdit claro:
Aclarar una cosa primero. Podemos tener objetos usuarios en contenedores o en unidades organizativas. Voy a explicar como agregar la columna extra Id. Empleado en los 2 casos CN=organizationalUnit-Display y CN=container-Display, pero si alguno de vosotros no lo necesitáis por tener todos los empleados dentro de una unidad organizativa, modificad únicamente el objeto CN=organizationalUnit-Display.
Abrimos de nuevo si no lo tenemos hecho ya Adsi Edit pulsando sobre Inicio –> Ejecutar –> escribimos adsiedit.msc y pulsamos sobre Aceptar.
Desplegamos el árbol de Configuration –> CN=Configuration, DC=dominio, DC=dominio –> CN=DisplaySpecifiers –> CN=C0A (para versión español)
Desplegamos el árbol de Configuration –> CN=Configuration, DC=dominio, DC=dominio –> CN=DisplaySpecifiers –> CN=409 (para versión inglés)
En la pantalla de la derecha pulsamos con el botón derecho del ratón sobre CN=organizationalUnit-Display–> Propiedades.
Nos situamos encima del atributo extraColumns y pulsamos sobre Edit.
En el campo Value to add: escribimos EmployeeID, id. Empleado,1,100,0 y pulsamos sobre Add
Pulsamos sobre OK.
Pulsamos sobre Aceptar.
Pulsamos con el botón derecho del ratón sobre CN=container-Display–> Propiedades.
Pulsamos sobre ExtraColumns y pulsamos sobre Edit.
En el campo Value to add: escribimos EmployeeID, id. Empleado,1,100,0 y pulsamos sobre Add.
Pulsamos sobre OK.
Pulsamos sobre Aceptar.
Ahora que ya tenemos esto modificado abrimos Usuarios y equipos de Active Directory (desde Inicio –> Ejecutar –> dsa.msc) para comprobar que funciona.
Nos desplazamos hasta cualquier unidad organizativa o contenedor si es el caso y comprobamos que la columna Id. Empleado está visible y con el valor del Id. Empleado que hemos insertado anteriormente.
Esto es todo por hoy. Espero que os haya gustado el artículo.
Si tenéis cualquier pregunta o problema añadid un comentario.
Saludos y hasta pronto MegaCracks.
Artículos relacionados:
- Como crear un filtro WMI y como aplicarlo a una directiva de grupo (GPO).
- Parte 1.- Como asignar GPO únicamente a objetos Workstation en AD.
- Como crear un nuevo dominio en Windows Server 2008 R2 x64.
- Como elevar el nivel funcional de un bosque en Windows 2003.
- Crear domain controller secundario con Windows Server 2008 R2 x64
June 16th, 2010 at 5:39 pm
Hola muchas gracias por el blog es realmente bueno… ahora aqui se plantea dar uso e EmployeeID pero debo yo de congigurar algo si lo que deseo es un nuevo atributo ????