Войти

Показать полную графическую версию : [решено] Ожидание подключение сетевого диска.


gary5555
30-01-2012, 16:17
Здравствуйте.
Суть проблемы:
Есть два компьютера в сети которые находятся в разных местах (например Комп1 и Комп2). Комп1 имейт сетевой диск на Ком2. Но если первый загрузился Комп2 то Комп1 не видит сетевой диск. Я написал скрипт который через каждые 10 мин. создает сетевой диск, но когда Комп2 выключен он естественно пишит ошибку.
Так вот мне надо создать такой скрипт который постоянно проверял Комп2 в сети или нет, и когда он в сети то производил подключение сетевого диска.
Если можете подскажите.

Iska
31-01-2012, 01:04
мне надо создать такой скрипт который постоянно проверял Комп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

Вот только еще хочу сделать пинг не разовый а несколько раз и исходя из полученных данных делать подключение сетевого диска.

Iska
31-01-2012, 15:37
Уберите условие:
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