Windows 脚本宿主  

创建自动登录脚本

使用 WSH,可以创建自动登录脚本。下面的示例假定,一个公司有两台文件服务器(分别叫做“服务器1”和“服务器2”)和两台打印服务器(分别叫做“打印机1”和“打印机2”)。为平衡服务器的使用,登录名以字母 A - K 打头的每个用户都连接到第一台文件服务器和第一台打印服务器,登录名以字母 L - Z 打头的每个用户都连接到第二台文件服务器和第二台打印服务器。

注意   在 Windows 9x 中,为使用户登录生效,会包括一段延迟。
// JScript.
var oNet, sUser, cInitial, startTime;
oNet = new ActiveXObject("WScript.Network");
// 获取用户名。在 Windows 98 和 Windows ME 上,当脚本开始运行时, 
// 用户可能未登录;请每隔 1/2 秒 
// 检查一次,直到他们登录为止。
sUser = oNet.UserName;
startTime = new Date();
while (sUser == "")
{
   var curTime = new Date();
   if (curTime – startTime > 30000) WScript.Quit();
   WScript.Sleep(500);
   sUser = oNet.UserName;
}
// 根据用户名的第一个字母, 
// 为 "h" 驱动器和打印机添加一个共享点
cInitial = sUser.charAt(0).toUpperCase();
if (cInitial < "L")
{
   oNet.MapNetworkDrive("h:", "\\\\server1\\users\\" + sUser);
   oNet.AddWindowsPrinterConnection("\\\\printer1\\hp", "HP LaserJet 4");
}
else 
{
   oNet.MapNetworkDrive("h:", "\\\\server2\\users\\" + sUser);
   oNet.AddWindowsPrinterConnection("\\\\printer2\\hp", "HP LaserJet 4");
}

' VBScript.

Option Explicit
Dim oNet, sUser, cInitial, startTime
' Helper 对象
Set oNet = CreateObject("WScript.Network")
' 获取用户名。在 Windows 9x 上,当脚本开始运行时, 
' 用户可能未登录;请每隔 1/2 秒 
' 检查一次,直到他们登录为止。
sUser = oNet.UserName
startTime = Now
Do While sUser = ""
   If DateDiff("s", startTime, Now) > 30 Then Wscript.Quit
   Wscript.Sleep 500
   sUser = oNet.UserName
Loop
' 根据用户名的第一个字母, 
' 为 "h" 驱动器和打印机添加一个共享点
cInitial = UCase(Left(sUser, 1))
If (cInitial < "L") Then
   oNet.MapNetworkDrive "h:", "\\server1\users\" & sUser
   oNet.AddWindowsPrinterConnection "\\printer1\hp", "HP LaserJet 4"
Else
   oNet.MapNetworkDrive "h:", "\\server2\users\" & sUser
   oNet.AddWindowsPrinterConnection "\\printer2\hp", "HP LaserJet 4"
End If

请参阅

WSH 示例