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
ディスカッション
コメント一覧
まだ、コメントがありません