Inicio > Sin categoría > Script de Inicio de Sesión en VBScript

Script de Inicio de Sesión en VBScript

domingo, 18 de marzo de 2012

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.

Categories: Sin categoría Tags:
Comentarios cerrados.