Показать полную графическую версию : [решено] Ожидание подключение сетевого диска.
gary5555
30-01-2012, 16:17
Здравствуйте.
Суть проблемы:
Есть два компьютера в сети которые находятся в разных местах (например Комп1 и Комп2). Комп1 имейт сетевой диск на Ком2. Но если первый загрузился Комп2 то Комп1 не видит сетевой диск. Я написал скрипт который через каждые 10 мин. создает сетевой диск, но когда Комп2 выключен он естественно пишит ошибку.
Так вот мне надо создать такой скрипт который постоянно проверял Комп2 в сети или нет, и когда он в сети то производил подключение сетевого диска.
Если можете подскажите.
мне надо создать такой скрипт который постоянно проверял Комп2 в сети или нет »
gary5555, используйте Wbem класс «Win32_PingStatus». Примеры использования класса на форуме: «Win32_PingStatus» - Поиск в разделах - Компьютерный форум OSzone.net (http://forum.oszone.net/search.php?query=%22Win32_PingStatus%22&titleonly=0&replyless=0&showposts=0&forumchoice%5B%5D=101&childforums=1).
gary5555
31-01-2012, 15:01
Спасибо, все что надо нашел, написал вот такой вот скрипт, работает:
iPing = Ping("192.168.2.5")
If iPing=0 Then
Set objNetwork = CreateObject("WScript.Network")
Set oDrives=objNetwork.EnumNetworkDrives
mydrv = "Z:"
mapped = false
myshare = "\\192.168.2.5\GenericPressRoot"
For i = 0 to oDrives.Count - 1 Step 2
' WScript.Echo "Drive " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
If oDrives.Item(i)=mydrv Then mapped = true
Next
'WScript.echo "mapped = " & mapped
If Not mapped Then objNetwork.MapNetworkDrive mydrv, myshare
Else
End If
Function Ping (strTarget)
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
For Each objPing in colPings
Ping = objPing.StatusCode
Next
End Function
Вот только еще хочу сделать пинг не разовый а несколько раз и исходя из полученных данных делать подключение сетевого диска.
Уберите условие:
If iPing=0 Then
…
End If
Вставьте перед мапированием диска бесконечный цикл опроса:
Do Until Ping("192.168.2.5") = 0
WScript.Sleep 1000 * 15
Loop
Скрипт будет до бесконечности «стучать» каждые 15 секунд по указанному адресу, пока не достучится.
gary5555
01-02-2012, 11:18
Супер! Спасибо Все работает как надо!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.