ローカルにVBSを置いてスタートアップで処理するだけなら簡単。だけど、やりたいことは、社内の全PCを一元管理して、ネットワークドライブの設定も手元でできるようにしたい。だって、毎回呼ばれて設定変更に回るより、手元で設定して内線で「PC再起動して」で済めば簡単だから。
要は、自分が楽したい訳です(笑)
という事で、先日ネットワークドライブの設定を一度だけ走らせるVBSをメモメモしてみましたが、今回はPC起動時に毎回ネットワークドライブを設定するパターンをメモメモ。
まず最初に、一度だけ走らせるVBS。ネットワークドライブを全て切断するだけの処理。再接続する設定になっているネットワークドライブの接続設定を削除したいので。
Option Explicit
On Error Resume Next
' 変数宣言
Dim objNetwork
Dim colDrives
Dim i
' 初期設定
Set objNetwork = CreateObject( "WScript.Network" )
Set colDrives = objNetwork.EnumNetworkDrives
'-------------------------------------------------------------------------------
' 処理開始
'-------------------------------------------------------------------------------
' 共有ドライブの数だけ処理を行う
For i = 0 to colDrives.Count - 1 Step 2
' ネットワークドライブを切断する
objNetwork.RemoveNetworkDrive colDrives.Item(i), true, true
Next
Set colDrives = Nothing
Set objNetwork = Nothing
WScript.Quit(0)
続いて、PC起動時に毎回走らせるVBS。ここでネットワークドライブの設定をします。
Option Explicit
' 変数宣言
Dim objNetwork, objShellApps
' 初期設定
Set objNetwork = CreateObject( "WScript.Network" )
Set objShellApps = CreateObject( "Shell.Application" )
'-------------------------------------------------------------------------------
' 処理開始
'-------------------------------------------------------------------------------
' ネットワークドライブを設定する
objNetWork.MapNetworkDrive "X:", "\\192.168.1.250\sales", False
With objShellApps.NameSpace( "X:" ) .Items().Item().Name = "営業文書"
End With
objNetWork.MapNetworkDrive "Y:", "\\192.168.1.250\internal", False
With objShellApps.NameSpace( "Y:" ) .Items().Item().Name = "社内文書"
End With
objNetWork.MapNetworkDrive "Z:", "\\192.168.1.250\share", False
With objShellApps.NameSpace( "Z:" ) .Items().Item().Name = "社内共有"
End With
Set objShellApps = Nothing
Set objNetwork = Nothing
WScript.Quit(0)
PC起動時に毎回走らせるVBSを PC名.vbs という名前でネットワーク上に保存しておけば、バッチファイルから %COMPUTERNAME%.vbs を呼び出すだけでいいので、誰でも簡単に管理できると思います。
他にもっといい方法があると思うけど、いずれ引き継ぎをする時期が来たときに、これなら簡単に説明できるかな、と(笑)
コメント