自動ログイン スクリプトを作成する
WSH を使用すると、自動ログイン スクリプトを作成できます。次の例では、ある会社に 2 つのファイル サーバー ("server1" と "server2") および 2 つのプリント サーバー ("printer1" と "printer2") が存在していることを前提としています。各サーバーにかかる負荷を分散するために、ログイン名が A - K で始まるユーザーは 1 番目のファイル サーバーとプリント サーバーに接続し、ログイン名が L - Z で始まるユーザーは 2 番目のサーバーに接続するように設定します。
メモ Windows 9x では、ユーザーのログオンが適用されるように待機時間も含まれています。
// JScript.
var oNet, sUser, cInitial, startTime;
oNet = new ActiveXObject("WScript.Network");
// ユーザー名を取得します。Windows 9x および Windows Me では、スクリプト 実行時にユーザー
// がログオンしていない可能性があります。
// ログオンが完了するまで 0.5 秒間隔でチェックを繰り返します。
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 object
Set oNet = CreateObject("WScript.Network")
' ユーザー名を取得します。Windows 9x および Windows Me では、スクリプト 実行時にユーザー
' がログオンしていない可能性があります。
' ログオンが完了するまで 0.5 秒間隔でチェックを繰り返します。
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