Windowsログオン時(logon.vbs)にネットワークドライブとプリンタのマッピングを行う

ドメイン環境(ActiveDirectory)でプリンタサーバのリプレースを行った際に、各クライアントのプリンタ設定を自動で行いたかったので、今まで利用していたlogon.vbsに修正を行った。

動作としては以下となります。
・ファイルサーバにて共有されているフォルダをネットワークドライブとして自動的に割り当てる。
その際、既にネットワークドライブにて利用するSドライブが存在したらアラートを出す。
・旧プリンタサーバ(prsrv01)の設定を削除
・新プリンターサーバ(prsrv02)の設定を追加
・通常利用するプリンタをプリンタ3に設定

プログラムは以下の通り。
当たり前ですが、ネットワークに接続してないと、ネットワークドライブは接続できません。


'機能説明
'1.Sドライブにファイルサーバにて共有されているフォルダをネットワークドライブとして割り当てる
'2.prsrv01のプリンタマッピングを解除
'3.prsrv02でプリンタ1~3設定し、3をデフォルトにする

Dim WshNetwork   ' WshNetwork オブジェクト
Dim objPrinters     ' プリンタ情報
Dim lngLoop         ' ループカウンタ


WScript.Timeout = 120     '120sでスクリプトをタイムアウト

Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
Set drvs=Fs.Drives 'Drivesプロパティは、Drivesコレクションを返す
Set wshNetwork = CreateObject("WScript.Network")

For Each I In drvs 'すべてのDriveオブジェクトに対して繰り返す
l=I.DriveLetter 'ドライブレター(アルファベット一文字)
'n=I.ShareName 'ネットワークでの共有名
'p=I.Path 'ドライブのパス
'ドライブの種類も判断できます。
'Select Case I.DriveType 'ドライブの種類
'    Case 0 t="不明"
'    Case 1 t="リムーバブルドライブ"
'    Case 2 t="ハードディスク"
'    Case 3 t="ネットワークドライブ"
'    Case 4 t="CD-ROM"
'    Case 5 t="ラムドライブ"
'End Select
'If I.DriveType = 3 Then 'ドライブの種類をネットワークドライブに限定
If l = "S" Then '準備の出来ているSドライブがあるか確認する。
Mes = "ドライブあり"
End If
'End If
Next

If Mes = "" Then
'該当のドライブ文字列が無かった場合はマウント実行
wshNetwork.MapNetworkDrive "S:", "\FileSrv01\ShareDoc"
else
'Sドライブがある
Mes = "Sドライブのマウントに失敗しました。" & vbCrLf
Mes = Mes & "Sドライブが既に存在します。"
msgbox Mes
End if



'prsrv01の設定削除==================================================

If Err.Number = 0 Then
Set objPrinters = WshNetwork.EnumPrinterConnections
If Err.Number = 0 Then

For lngLoop = 0 To objPrinters.Count - 1 Step 2
If objPrinters.Item(lngLoop + 1) = "\prsrv01\Printer1" Then
PrinterPath = "\prsrv01\Printer1"
wshNetwork.RemovePrinterConnection PrinterPath
End If
If objPrinters.Item(lngLoop + 1) = "\prsrv01\Printer2"  Then
PrinterPath = "\prsrv01\Printer2"
wshNetwork.RemovePrinterConnection PrinterPath
End If
If objPrinters.Item(lngLoop + 1) = "\prsrv01\Printer3" Then
PrinterPath = "\prsrv01\Printer3"
wshNetwork.RemovePrinterConnection PrinterPath
End If

Next
End If
End if


'prsrv02の設定追加==================================================

'プリンタ1を設定する。
PrinterPath = "\prsrv02\Printer1"
wshNetwork.AddWindowsPrinterConnection PrinterPath

'プリンタ2を設定する。
PrinterPath = "\prsrv02\Printer2"
wshNetwork.AddWindowsPrinterConnection PrinterPath

'プリンタ3を設定する。
PrinterPath = "\prsrv02\Printer3"
wshNetwork.AddWindowsPrinterConnection PrinterPath

'プリンタ5をデフォルトプリンタとして設定する。
PrinterPath = "\prsrv02\Printer3"
wshNetwork.SetDefaultPrinter PrinterPath