Script de Inicio de Sesión en VBScript
Usar VBScript para hacer scripts de inicio de sesión es mucho más potente que ejecutar archivos .bat con comandos de DOS. Para asignar estos scripts a los usuarios lo podemos hacer de varias maneras, en función de si son W2000 o posteriores, o si tenemos equipos con NT4 y Windows 9x en nuestro dominio.
En Usuarios y Equipos de AD podemos editar las propiedades de cada usuario, y en su perfil le podemos especificar un archivo de inicio de sesión, que habremos colocado previamente en el recurso NETLOGON de un DC. Este archivo se le ejecutará siempre que inicie sesión. Sin embargo, hemos de tener en cuenta que los equipos previos a Windows 2000 no pueden ejecutar directamente archivos con extensión .vbs, por lo que si tenemos este tipo de equipos lo que hemos de hacer es poner como script de inicio de sesión un archivo .bat, que también colocaremos en el NETLOGON, y que contendrá una linea como la siguiente para lanzar el .vbs
WSCRIPT %0\..\miscript.vbs
También podemos aprovechar ese archivo bat para ejecutar comandos DOS, como para sincronizar de forma sencilla la hora con un DC. Esto en W2000 no es necesario, pero los Windows 98 no se sincronizan automáticamente con el dominio, por lo que nos vendrá bien. Podemos hacerlo con la siguiente linea, que en los W2000 en que no inicie sesión un administrador no se ejecutará, aunque tampoco parará el script.
NET TIME \\SERVIDOR /SET /YES
El archivo .vbs nos va a permitir hacer muchas cosas, y personalizar el script según nuestras necesidades, pero lo más básico que haremos con él es conectar unidades de red en nuestro equipo asignándoles letras de unidad. Un ejemplo de código para empezar que pondríamos en el archivo miscript.vbs que lanza el .bat sería como sigue
‘********************************************** Option Explicit Dim oNet, sUser, startTime
On Error Resume Next
‘ Objeto Red Set oNet = CreateObject(«WScript.Network»)
‘ Obtenemos el login de usuario. En Windows 9x, el usuario puede no estar todavía autentificado ‘ cuando el script comienza a ejecutarse; En ese caso reitera cada 1/2 segundo sUser = oNet.UserName ‘En minúsculas
startTime = Now
Do While sUser = «»
If DateDiff(«s», startTime, Now) > 600 Then
Wscript.Quit
Wscript.Sleep 500
sUser = oNet.UserName
Loop
‘ Mapeado de la unidad F particular de cada usuario
oNet.RemoveNetworkDrive «U:»
oNet.MapNetworkDrive «U:», «\\servidor\usuarios\» & sUser
oNet.RemoveNetworkDrive «X:»
oNet.MapNetworkDrive «X:», «\\servidor\comunes\»
‘**********************************************
Notar que en los equipos con Windows 2000 o superior es necesario eliminar el mapeo de la unidad antes de volver a asignarla, pues si no lo ignora y deja la asignación anterior que hubiese con esa letra.
Por fin, si no tenemos equipos con Windows 9x o NT4 podemos especificar directamente el archivo .vbs como script de inicio de sesión, y también podemos asignar este tipo de archivos mediante GPO (configuración de usuario – secuencia de comandos: inicio de sesión / cierre de sesión), procedimiento por el que podemos asignar más de un script.
Comentarios recientes