检查是否存在网络驱动器并安装它,否则检查它是否可用

时间:2015-03-26 03:43:48

标签: vbscript wait drive

我需要帮助创建VBScript才能执行以下操作:

启动名为“NAS PM服务”的服务

net start "NAS PM service"

然后检查\ 192.168.1.1 \ drive1是否存在

IF EXIST \192.168.1.1\drive1

如果是,请将其映射到指定登录/传递的驱动器:

net use M: \192.168.1.1\Disk_1 password /USER:admin

如果它还不存在,请等待10秒再尝试再次映射(直到成功)。

我或多或少地知道如何使用ping作为批处理文件来等待,但我宁愿使用没有ping的小而干净的VBScript。

1 个答案:

答案 0 :(得分:1)

在连接尝试期间启用错误处理,并在您不断收到错误时继续:

Set net = CreateObject("WScript.Network")

On Error Resume Next
Do
  Err.Clear
  net.MapNetworkDrive "M:", "\\192.168.1.1\Disk_1", False, "admin", "password"
  If Err Then WScript.Sleep 10000
Loop While Err
On Error Goto 0

WScript.Echo "Drive connected."

但是,限制最大连接尝试次数可能是一个好主意,否则如果远程共享永远不会联机,脚本将永远循环。

可以通过WMI启动服务:

Set wmi = GetObject("winmgmts://./root/cimv2")

qry = "SELECT * FROM Win32_Service WHERE Name='NAS PM service' AND State='Stopped'"
For Each svc In wmi.ExecQuery(qry)
  svc.StartService
Next