2011-09-07 5 views
2

ネットワークドライブをVBScriptを使用してネットワークパスにマップする必要があります。ネットワークパスは入力から直接読み取られます。ネットワークドライブのマッピング方法と、入力したネットワークパスが既に存在するかどうかを確認する方法はありますか?例えばネットワークドライブのマッピングとVBScriptでの存在の確認

net use [NetDrive:] [Network Path] 

答えて

3

はあなたのVBScriptファイルに次のコマンドを実行します

net use Z: \\Hadi\temp 

サンプルコマンドは、Zに\ハディ\ tempにマップされます:

をまた見てみましょうネットワークドライブをマッピングするファイルはthis VBScriptです。

5

私は私はあなたがネット利用のルートを好む場合は...

ような何かを行うことができます代わりなど、エラーチェックを処理しないあなたにそれを任せ...

MapDrive "H:","\\server\share" 

    Sub MapDrive(letter, uncpath) 
     on error Resume Next 
     dim drivetype, currentmapping 

     dim objWMIService 
     dim colDisks, objDisk 

     'Set wshnetwork = CreateObject("Wscript.Network") 
     Set objWMIService = GetObject("winmgmts:" & _ 
      "{impersonationLevel=impersonate}!\\.\root\cimv2") 
     Set colDisks = objWMIService.ExecQuery _ 
      ("Select * from Win32_LogicalDisk Where Name = """ & letter & """") 
     For Each objDisk In colDisks   
      drivetype = objDisk.DriveType  
      currentmapping = objDisk.ProviderName 
     Next  


     if (drivetype <> 4 and drivetype <> 0) then 
      NotifyUser ucase(letter) & " cannot be mapped due to a physical device already reserving that drive letter" & vbcrlf & _ 
         "This is most frequently caused by a thumbdrive or external disk.",5 
      exit Function 
     end if 

     if (ucase(currentmapping) = ucase(uncpath)) then 
      exit function 
     end If 

     if (drivemappings.Exists(uncpath)) then 
      drivemappings.Add uncpath & "(" & letter & ")", letter 
     else 
      drivemappings.Add uncpath, letter 
     end if 

     if (currentmapping <> "") then 
       wshnetwork.RemoveNetworkDrive letter,,True 
     end if 

     wshnetwork.MapNetworkDrive letter, uncpath, true 

     on Error goto 0 
    End Sub 

をドライブをマップするためのサブルーチンを作成

dim wshShell 
Set wshShell = CreateObject("WScript.Shell") 
wshshell.run "cmd /c net use H: ""\\server\share""",1,True 

The Scripting Guysの例を使用してドライブをマップするために、次に使用可能なドライブ文字を自動的に使用する手順をさらに進めることができます。

Set objDictionary = CreateObject("Scripting.Dictionary") 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk") 

For Each objDisk in colDisks 
    objDictionary.Add objDisk.DeviceID, objDisk.DeviceID 
Next 

For i = 67 to 90 
    strDrive = Chr(i) & ":" 
    If objDictionary.Exists(strDrive) Then 
    Else 
     Wscript.Echo strDrive & " is the next available drive letter." 
     Wscript.Quit 
    End If 
Next 
Wscript.Echo "There are no available drive letters on this computer.” 

私はこれが役に立ちそうです。

関連する問題