使用 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