使用 WSH,可以創(chuàng)建自動(dòng)登錄腳本。下面的示例假定,一個(gè)公司有兩臺(tái)文件服務(wù)器(分別叫做“服務(wù)器1”和“服務(wù)器2”)和兩臺(tái)打印服務(wù)器(分別叫做“打印機(jī)1”和“打印機(jī)2”)。為平衡服務(wù)器的使用,登錄名以字母 A - K 打頭的每個(gè)用戶都連接到第一臺(tái)文件服務(wù)器和第一臺(tái)打印服務(wù)器,登錄名以字母 L - Z 打頭的每個(gè)用戶都連接到第二臺(tái)文件服務(wù)器和第二臺(tái)打印服務(wù)器。
注意 在 Windows 9x 中,為使用戶登錄生效,會(huì)包括一段延遲。
// JScript.
var oNet, sUser, cInitial, startTime;
oNet = new ActiveXObject("WScript.Network");
// 獲取用戶名。在 Windows 98 和 Windows ME 上,當(dāng)腳本開始運(yùn)行時(shí),
// 用戶可能未登錄;請(qǐng)每隔 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;
}
// 根據(jù)用戶名的第一個(gè)字母,
// 為 "h" 驅(qū)動(dòng)器和打印機(jī)添加一個(gè)共享點(diǎn)
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 對(duì)象
Set oNet = CreateObject("WScript.Network")
' 獲取用戶名。在 Windows 9x 上,當(dāng)腳本開始運(yùn)行時(shí),
' 用戶可能未登錄;請(qǐng)每隔 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
' 根據(jù)用戶名的第一個(gè)字母,
' 為 "h" 驅(qū)動(dòng)器和打印機(jī)添加一個(gè)共享點(diǎn)
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