¿Cómo editar atributos no accesibles desde las propiedades de un objeto en la consola de Usuarios y Equipos de Directorio Activo?

Hola a todos,

En repetidas ocasiones, hemos tenido casos en los que se nos pregunta cómo administrar aquellos atributos de una cuenta del DA que no son accesibles desde la consola Active Directory Users and Computers. Lo que veremos a continuación es cómo, a través de un script .vbs, nos ayudaremos de los menús contextuales de la consola para acceder a un atributo determinado y darle el valor que nosotros deseemos.

Lo expuesto a continuación no agregará ningún campo adicional en ninguna de las pestañas del cuadro Propiedades de la cuenta seleccionada.

A modo ilustrativo, tomaremos como ejemplo el atributo EmployeeID (ya existente en el esquema del DA).

En primer lugar, necesitaremos el siguiente script:

eid.vbs

Dim oVar

Dim oUsr

Dim tmp

Set oVar = Wscript.Arguments

Set oUsr = GetObject(oVar(0))

tmp = InputBox("The Employee ID of the user is: " & oUsr.employeeID &vbCRLF & vbCRLF & "If you would like enter a new

number or modify the existing number, enter the new number in the textbox below")

if tmp <> "" then oUsr.Put "employeeID",tmp

oUsr.SetInfo

Set oUsr = Nothing

WScript.Quit

A continuación, será necesario realizar los siguientes pasos.

1. Abrir la consola Active Directory Services Interfaces (ADSI) Edit (adsiedit.msc),desplegar la partición de Configuración CN=Configuration,DC=midominio,DC=local, y navegar hasta CN=C0A, CN=DisplaySpecifiers,CN=Configuration,DC=midominio,DC=local.

Este paso es dependiente del lenguaje de nuestro sistema operativo. Para el caso del Español su código correspondiente es C0A, para el Inglés es 409, etc…

Podéis encontrar una relación de los idiomas con su correspondiente código aquí.

2. En el panel de la derecha, hacer clic derecho sobre CN=user-Display y seleccionar Propiedades.

3. En la lista de atributos, hacer clic sobre adminContextMenu, pulsar el botón Editar y agregar lo siguiente (sin las comillas):

,&Employee ID..., C:\Ruta\eid.vbs”

employeeID1

Nota: Debemos asegurarnos de tener el script .vbs en la ruta indicada en la máquina desde la que utilizaremos la consola Active Directory Users and Computers.

4. Al abrir la consola Active Directory Users and Computers y al pulsar botón derecho sobre las propiedades de una cuenta de usuario, tendremos disponibles una nueva opción (“Employee ID… ”) en el menú contextual desde donde podremos consultar/editar el atributo:

employeeID2

5. Dado que inicialmente no podemos agregar estos dos atributos desde el menú Ver-> Añadir/Eliminar Columnas, para poder realizar listados de las cuentas por EmployeeID, es necesario realizar lo siguiente:

· Abrir consola ADSI Edit

· Localizar y doble clic en organizationalUnit-Display bajo CN=C0A, CN=DisplaySpecifiers,CN=Configuration,DC=midominio,DC=local.

· Modificar el atributo extraColumns y agregar lo siguiente
   employeeid,Employee ID,1,100,0

 

Nota: Nótese que lo estamos haciendo a nivel de Unidad Organizativa. Si deseamos disponer de listados a nivel de Contenedor (como por ejemplo Users o Computers), será necesario realizar los mismos pasos para el atributo container-Display.

Una vez realizados estos pasos, ya estará disponible el atributo employeeID en el menú Ver-> Añadir/Eliminar Columnas para poder obtener un listado como este:

employeeID3

- Javier Rama del Castillo

Comments

  • Anonymous
    January 01, 2003
    Puedes encontrar la herramienta ADSI Edit en las Herramientas de Soporte de Windows 2000. Las Herramientas de Soporte se pueden instalar desde el directorio SupportTools del CD de instalación ejecutando setup.exe. Podéis encontrar más información sobre cómo instalar/acceder a dicha herramienta en: 312299 How to edit an LDAP query in custom search by using ADSI Edit http://support.microsoft.com/default.aspx?scid=kb;EN-US;312299

  • Anonymous
    January 01, 2003
    Hola Blas y Manuel, Cuando nos comentáis que no veis el atributo employeeID,  ¿os referís a que no os aparece el menú contextual “EmployeeID…” al hacer botón derecho sobre el usuario? ¿O es el listado por columnas el que no podéis ver? En cualquiera de los dos casos, es fundamental comprobar que estamos editando los valores de los DisplaySpecifiers del idioma en que tenemos el Sistema Operativo  (C0A para Español, 409 para Inglés, etc…) En cuanto al script, su ejecución siempre fallará al lanzarlo de manera manual, ya que no recibe los argumentos de entrada necesarios para su correcto funcionamiento. Un saludo, Javier Rama del Castillo

  • Anonymous
    September 29, 2008
    The comment has been removed

  • Anonymous
    June 29, 2009
    Hola, Yo trabajo con un dominio windows 2003. He seguido todos los pasos pero el campo de employeeID sigue sin aparcer en la consola dsa.msc Tengo la impresión de que el script no funciona. Los he visto en varias páginas y en todos lados parece ser el mismo, ¿seguro que va? ¿dónde lo habeís copiado? yo he probado en la raíz del controlador de dominio y en c:windowssystem32 pero no hay forma. ¿alguna idea? Gracias y un saludo,

  • Anonymous
    June 29, 2009
    Hola, Tengo el mismo problema que comenta Blas. En un entorno 2k3 he probado con varios scripts y no consigo ver el campo "Employee ID". Además, si ejecuto el script manualmente me aparece el error: "El subindice está fuera del intervalo" en la linea "Set oUsr...". Es normal que de este error en la ejecución manual? O es que me falta algún complemento o la versión del SO no es la adecuada? Gracias, Un saludo.

  • Anonymous
    July 08, 2009
    Hola Javier, Me refería a que no aparecía en el menú contextual la opción de "EmployeeID" al hacer botón derecho. Efectivamente el tema venía por DisplayIdetifier que no había modificado correctamente en el idioma que tocaba. En la mayoría de las webs que consulté estaba en inglés y había cambiado el 409. Acabo de probarlo y funciona perfectamente. Muchas gracias por tu ayuda,

  • Anonymous
    August 06, 2009
    Hola a todos, necesito que el EmployeeID sea para todos los usuarios por default Cero "0" hay alguna manera? ya que lo que pasa con el script es que hay que colocarle el valor sino lo deja en blanco, y necesito tenga el valor cero por default, quien m e puede ayudar?

  • Anonymous
    August 12, 2009
    Hola, Ahora que tengo el campo "employeeID" disponible en el directorio activo necesito rellenar los valores de este campo de una forma masiva y rapida. Son aproximadamente 300 y manualmente habría muchas opciones de equivocarse. ¿alguien tiene un script que permita hacerlo? Gracias y un saludo,

  • Anonymous
    August 12, 2009
    Hola Lizbeth y Blas, Para conseguir establecer el mismo valor para EmployeeID (o cualquier otro atributo) en varias cuentas del Directorio Activo, es necesario ayudarse de herramientas adicionales a las que hemos visto en el post. Nuestra sugerencia sería la implementación de un script para automatizar el proceso o, por otro lado, el uso de herramientas tales como ADModify. Esperamos haberte sido de ayuda. Un saludo, Javier Rama del Castillo

  • Anonymous
    August 12, 2009
    Hola Javier, Gracias por tu rapida respuesta. El tema es que necesitariamos evidentemente introducir un valor diferente en cada uno de los usuarios. Para ello haría falta un script que introduzca los datos o bien usar algo tipo ldifde o csvde. Más que nada es por si alguien tenía algo montado. Saludos,