ネットワークドライブのUNCパス取得とか割り当てとか解除とか
7月も17日になってようやく7月最初のエントリって、前回のエントリが6月29日だから、いやはや、2週間以上放置してたのねん(;^ω^)
という訳で
本題。ググってたら、Wscript.NetworkオブジェクトのEnumNetworkDrivesメソッドで取得できる事がわかった。
ソース
On Error Resume Next Dim objNW, colDrvs Set objNW = CreateObject("Wscript.Network") Set colDrvs = objNW.EnumNetworkDrives For i = 0 to colDrvs.Count -1 Step 2 Wscript.Echo colDrvs.Item(i) & "ドライブのUNCパスは " & colDrvs.Item(i + 1) & " です" Next Set colDrvs = Nothing Set objNW = Nothing
ちょっと変な感じがするのが、ループの部分。Step 2でコレクションを1つ飛ばしでループさせてるのは、EnumNetworkDrivesメソッドが
- ドライブレター
- UNSパス
の順にニコイチのコレクションを返すから。
ついでに
折角、Wscript.Networkオブジェクトを触ったので、ネットワークドライブの割り当てと解除も。
割り当て
Dim objNW Set objNW = CreateObject("Wscript.Network") objNW.MapNetworkDrive "Z:", "\\hogehoge\fugafuga" Set objNW = Nothing
説明するまでもないですが、MapNetworkDriveメソッドに渡す最初の引数がドライブレター(コロン(:)付きで渡す)、2番目の引数がUNCパスですね。
解除
Dim objNW Set objNW = CreateObject("Wscript.Network") objNW.RemoveNetworkDrive "Z:", True Set objNW = Nothing
RemoveNetworkDriveメソッドにドライブレターをコロン(:)付きで渡すだけ。