Windowsログオン時(logon.vbs)にネットワークドライブとプリンタのマッピングを行う
ドメイン環境(ActiveDirectory)でプリンタサーバのリプレースを行った際に、各クライアントのプリンタ設定を自動で行いたかったので、今まで利用していたlogon.vbsに修正を行った。
動作としては以下となります。
・ファイルサーバにて共有されているフォルダをネットワークドライブとして自動的に割り当てる。
その際、既にネットワークドライブにて利用するSドライブが存在したらアラートを出す。
・旧プリンタサーバ(prsrv01)の設定を削除
・新プリンターサーバ(prsrv02)の設定を追加
・通常利用するプリンタをプリンタ3に設定
プログラムは以下の通り。
当たり前ですが、ネットワークに接続してないと、ネットワークドライブは接続できません。
[vb]
'機能説明
'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
[/vb]
ディスカッション
コメント一覧
まだ、コメントがありません