vbs usar secuencia para ejemplos ejecutar desde como comandos archivo vbscript network-drive mapped-drive

usar - Asignar una unidad de red y verificar su existencia en VBScript



vbscript ejemplos (2)

Creé una subrutina para mapear unidades ...

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

Dejo que maneje la comprobación de errores, etc. Alternativamente, si prefiere la ruta de uso de red, podría hacer algo como ...

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

Puede dar un paso más para utilizar automágicamente la siguiente letra de unidad disponible para asignar unidades usando un ejemplo creado por 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.”

Espero que esto sea útil.

Necesito asignar una unidad de red a una ruta de red usando VBScript. La ruta de la red se lee directamente desde la entrada. ¿Cómo debo mapear la unidad de red y cómo verificar si la ruta de red ingresada ya existe?


ejecuta el siguiente comando en tu archivo vbscript:

net use [NetDrive:] [Network Path]

por ejemplo:

net use Z: //Hadi/temp

El comando de muestra asignará / Hadi / temp a Z:

También eche un vistazo a este archivo VBScript para mapear unidades de red.