Windows Script Host  

Crear una secuencia de comandos de inicio de sesión automatizada

Mediante Windows Script Host puede crear secuencias de comandos de inicio de sesión automatizadas. En el siguiente ejemplo se supone que una organización cuenta con dos servidores de archivos (llamados "servidor1" y "servidor2") y dos servidores de impresión (llamados "impresora1" e "impresora2"). Para equilibrar el uso de los servidores, todos aquellos usuarios cuyo nombre de inicio de sesión comience con las letras de la A a la K utilizarán el primer servidor de archivos y el primer servidor de impresión, mientras que todos aquellos usuarios cuyo nombre de inicio de sesión comience con las letras de la L a la Z utilizarán los segundos.

Nota   En Windows 9x, incluya un retardo para que tenga efecto el inicio de sesión del usuario.
// JScript.
var oRed, sUsuario, cInicial, horaInicio;
oRed = new ActiveXObject("WScript.Network");
// Obtiene el nombre de usuario. En Windows 98 y Windows Millennium Edition, el usuario puede no haber iniciado sesión 
// al comenzar la ejecución de la secuencia de comandos; lo comprueba cada 
// 1/2 segundo hasta que se inicia la sesión
sUsuario = oRed.UserName;
horaInicio = new Date();
while (sUsuario == "")
{
   var hoyEs = new Date();
   if (hoyEs – horaInicio > 30000) WScript.Quit();
   WScript.Sleep(500);
   sUsuario = oRed.UserName;
}
// Agrega un recurso compartido para la unidad "h" y la impresora,  
// según la primera letra del nombre de usuario
cInicial = sUsuario.charAt(0).toUpperCase();
if (cInicial < "L")
{
   oRed.MapNetworkDrive("h:", "\\\\servidor1\\usuarios\\" + sUsuario);
   oRed.AddWindowsPrinterConnection("\\\\impresora1\\hp", "HP LaserJet 4");
}
else
{
   oRed.MapNetworkDrive("h:", "\\\\servidor2\\usuarios\\" + sUsuario);
   oRed.AddWindowsPrinterConnection("\\\\impresora2\\hp", "HP LaserJet 4");
}

' VBScript.

Option Explicit
Dim oRed, sUsuario, cInicial, horaInicio
' Objeto de ayuda
Set oRed = CreateObject("WScript.Network")    
' Obtiene el nombre de usuario. En Windows 9x es posible que el usuario no haya iniciado sesión 
' al iniciarse la ejecución de la secuencia de comandos; lo comprueba cada 
' 1/2 segundo hasta que inicia la sesión.
sUsuario = oRed.UserName
horaInicio = Now
Do While sUsuario = ""
   If DateDiff("s", horaInicio, Now) > 30 Then Wscript.Quit
   Wscript.Sleep 500
   sUsuario = oRed.UserName
Loop
' Agrega un recurso compartido para la unidad "h" y la impresora,  
' según la primera letra del nombre de usuario
cInicial = UCase(Left(sUsuario, 1))
If (cInicial < "L") Then
   oRed.MapNetworkDrive "h:", "\\servidor1\usuarios\" & sUsuario
   oRed.AddWindowsPrinterConnection "\\impresora1\hp", "HP LaserJet 4"
Else
   oRed.MapNetworkDrive "h:", "\\servidor2\usuarios\" & sUsuario
   oRed.AddWindowsPrinterConnection "\\impresora2\hp", "HP LaserJet 4"
End If

Consulte también

Tareas básicas de Microsoft Windows Script Host

Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.