%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
Si estás usando Outlook como cliente de correo, puedes hacer que aparezca la información del directorio en la libreta de direcciones. En Outlook, menú Herramientas\Cuentas de correo electónico..., seleccionas Agregar una nueva libreta de direcciones o directorios, pulsas Siguente>, dejas seleccionado Servicio de directorios de Internet (LDAP), pulsas Siguiente>, pones como nombre de servidor el nombre FQDN de tu controlador de dominio, marcas la casilla El servidor necesita que inicie sesión y pones un usuario del dominio y su contraseña (yo lo que hago es crear un usuario para que haga esto, y que tan solo pertenezca al grupo Usuarios del dominio). Conviene que pulses también el botón Más configuraciones..., para así poner un nombre para mostrar más descriptivo a la libreta cuando la vea el usuario; de no hacerlo así, aparecerá el nombre FQDN del controlador del dominio, quedando mejor que ponga algo así como Directorio LDAP de <nombre de tu empresa>.
Esto, está claro que es engorroso hacerlo equipo por equipo, por ello hay que buscar alguna manera de automatizarlo un poco. Puedes crear un fichero .PRF para acelerar esto un poco. El fichero sería algo así:
; **************************************************************
; Section 1 - Profile Defaults
; **************************************************************
[General]
Custom=1
ProfileName=EveryAccount
DefaultProfile=Yes
OverwriteProfile=Append
ModifyDefaultProfileIfPresent=TRUE
; **************************************************************
; Section 2 - Servicios en el Perfil
; **************************************************************
[Service List]
Service1=LDAP Directory
;***************************************************************
; Section 4 - Valores Predeterminados Servicio
;***************************************************************
[Service1]
UniqueService=No
ServerName=<nombre FQDN de tu controlador de dominio>
DisplayName=Directorio LDAP de <nombre de tu empresa>.
ConnectionPort=389
UseSSL=FALSE
UseSPA=FALSE
DisableVLV=0
UserName=<UPN del usuario de conexión a LDAP (ej: libreta@tudominio.local)>
SearchBase=<DN de la raíz de tu dominio (ej: DC=tudominio,DC=local)>
SearchTimeout=60
MaxEntriesReturned=100
Esto te permite hacer más rápido el proceso, pero sigue teniendo un inconveniente, y es que obliga a ir ejecutando el fichero usuario por usuario, equipo por equipo, pues el automatismo del fichero .PRF no permite incluir la contraseña. Podrías poner el fichero .PRF en una carpeta de red a la que acceda todo el mundo y crear un tutorial que les explique lo que deben hacer:
1. Cerrar Outlook si está abierto
2. Hacer doble click sobre el fichero.
3. Aceptar en el mensaje de advertencia.
4. Teclear la contraseña en el diálogo que aparece y pulsar aceptar.
5. Cerrar y abrir Outlook.
Otro enfoque sería que hicieras un script VBScript, en el que usando SendKeys realizaras esas tareas de forma automática y lo asignases como script de inicio de sesión:
'Este script se encarga de configurar el directorio de Active Directory
'en Outlook 2003
'© Fernando Reyes - Octubre de 2006
'Llamada a la función que averigua si ya está configurado el directorio LDAP
'En caso positivo se termina el script
if f_LibretaEncontrada = True Then WScript.Quit
'Creamos un objeto Shell
Set obj_Shell = CreateObject("WScript.Shell")
'Miramos la ruta de instalación de Office 2003
str_RutaOffice = obj_Shell.RegRead _
("HKLM\Software\Microsoft\Office\11.0\Common\InstallRoot\Path")
'En el caso de no encontrar la ruta de Office 2003 significa que no está instalado
'y por tanto finalizamos el script
If str_RutaOffice = "" Then WScript.Quit
'Establecemos el comando que se ejecutará en una llamada al método Run
'del objeto Shell. Este comando consiste en ejecutar Outlook con el modificador
'"/importprf", que nos permite importar un fichero PRT de perfil de Outlook.
'Este fichero lo hemos creado desde el asistente de instalación del Kit de
'Recursos de Office, guardando el fichero de perfil cuando da esa
'oportunidad
str_Comando = """" & str_RutaOffice & _
"OUTLOOK.EXE"" /importprf \\servidor\carpeta\libreta.prf"
'Ejecutamos el comando
obj_Shell.Run str_Comando,0,False
'Esperamos a que esté abierto Outlook con la ventana de configuración del
'Directorio LDAP
Do Until bol_Exito = True
bol_Exito = obj_Shell.AppActivate("Directorio LDAP de TuEmpresa")
Wscript.Sleep 10
Loop
'Nos movemos por la ventana, a la caja de texto donde se teclea la contraseña,
'por medio de emulación de pulsaciones mediante SendKeys
obj_Shell.SendKeys "{TAB 3}"
'"Tecleamos" la contraseña
obj_Shell.SendKeys "libreta"
'"Pulsamos" Enter
obj_Shell.SendKeys "{ENTER}"
'Damos tiempo a que se cierre la ventana
WScript.Sleep 200
'Vaciamos el objeto Shell
Set obj_Shel = Nothing
'Cerramos Outlook
obj_Shell.SendKeys "%{F4}"
Function f_LibretaEncontrada()
'Esta función devuelve True si el directorio LDAP está ya configurado
'y False en caso contrario. Para ello, busca en las en las claves que están
'en "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging
'Subsystem\Profiles\Outlook" buscando el valor
'de nombre "001e6600" y de contenido "tudc.tudominio.local",
'que es el valor que almacena el servidor LDAP que tiene configurada una conexión
'a un directorio LDAP en la libreta de direcciones. Cuando encuentra este valor,
'la función devuelve True, si no lo encuentra devuelve False
Dim str_Devolucion
Dim str_Clave
Dim str_NombreEquipo
Dim obj_Registro
Dim str_Comando
Dim str_Subclave
Dim arr_NombresDeClaves
Dim str_Valor
Const HKEY_CURRENT_USER = &H80000001
str_NombreEquipo = "."
Set obj_Registro = GetObject("winmgmts:\\" & str_NombreEquipo & _
"\root\default:StdRegProv")
str_Clave = "Software\Microsoft\Windows NT\CurrentVersion\" & _
"Windows Messaging Subsystem\Profiles\Outlook"
obj_Registro.EnumKey HKEY_CURRENT_USER, str_Clave, arr_NombresDeClaves
'Si no hay ninguna subclave salimos de la función
If IsArray(arr_NombresDeClaves) = 0 Then
Set obj_Registro = Nothing
f_LibretaEncontrada = False
Exit Function
obj_Registro.GetStringValue HKEY_CURRENT_USER, str_Clave & "\" & _
str_SubClave,"001e6600", str_Valor
If str_Valor = "tudc.tudominio.local" Then
Set obj_Registro = Nothing
f_LibretaEncontrada = True
Exit Function
End If
Next
f_LibretaEncontrada = False