Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Помогите дописать скрипт (пингует гугл и если не доступен ребутит модем) (http://forum.oszone.net/showthread.php?t=202345)

cRYSMAS 18-03-2011 12:18 1637859

Помогите дописать скрипт (пингует гугл и если не доступен ребутит модем)
 
Всем привет, помогите дописать скрипт:
Код:

On Error Resume Next

strComputer = "."
strTarget = "194.54.89.232" 'IP address or hostname
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
' если статус = 0, пустая строка - другое
Else
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 5000
oShell.SendKeys "login" & chr(13)
WScript.Sleep 2000
oShell.SendKeys "passworld" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13)
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

Есть вот такой скрипт он автоматически пингует гугл и если адрес не доступен ребутит модем, подключаеться через телнет, как можно сделать что б после ребута окно тел нета закрывалось?В планировщике скрипт запускается каждые 10 мин, есть еще один недостаток если запущенна ася то почему то пароль вводит в асю а не в окно телнета.
ПС. Пробывал команду logout но после ребута команда не действует потому как идет ребут модема, нужно в вбс закрыть активное окно но не знаю как
СПС

Busla 19-03-2011 22:29 1639080

можно попробовать работать с telnet более прогрессивным методом: http://sourceforge.net/projects/telscript/

cRYSMAS 21-03-2011 09:51 1639899

Цитата:

Цитата Busla
можно попробовать работать с telnet более прогрессивным методом: http://sourceforge.net/projects/telscript/ »

гм повторюсь я этот скрипт не писал, нашел в инете, у меня нет тех знаний что б дописать его самому что б окна закрывались после ребута модема.
Прогрессивный метод меня как бы мало интересует мне окна нужно закрыть.
В данной сылке инфы нужной не нашел.

Iska 21-03-2011 18:56 1640332

Цитата:

Цитата cRYSMAS
Прогрессивный метод меня как бы мало интересует мне окна нужно закрыть. »

Ну-ну ;)… Как там было: «Вам шашечки или ехать?».

cRYSMAS 23-03-2011 10:09 1641692

гм, блин ну закрыть нужно окно,мне вот нашел но не работает такую строки вставил

Set objShellApp = CreateObject("Shell.Application")
Set objShellWin = objShellApp.Windows
For i=objShellWin.Count-1 To 0 Step -1
objShellWin.Item(i).Quit
не закрывает окна
почему не работает?

Iska 23-03-2011 11:53 1641787

Потому, что окно telnet.exe — это не окно Проводника, и не окно Internet Explorer'а. С чего бы ему закрываться по приведённому коду?

cRYSMAS 23-03-2011 14:26 1641933

я понимаю что это совсем другое окно как закрыть телнет окно? после ребута команда logout не работает
так мб помог с до писание скрипта потому как я не знаю как правильно это сделать

Iska 23-03-2011 18:18 1642130

«так мб» Вы воспользовались бы поиском или хотя бы фильтром по сочетанию «telnet». Вы бы тогда увидели, что для реальной работы предлагается использовать (помимо предложенной выше) ещё как минимум две утилиты, «PLink» и «TSE», и опробовали бы их. У меня, скажем, «PLink» не срабатывал, а «TSE» работал. У кого-то — с точностью до наоборот. Плюс ещё один возможный обходной путь.

Вы не хотите воспользоваться опытом людей, которые проходили этот путь до Вас? Ну, а мне рассказывать в очередной раз, почему:
Код:

WScript.Sleep 5000
oShell.SendKeys "login" & chr(13)

не является правильным подходом к решению данной проблемы, тоже не интересно, ибо, как я не раз убеждался — сии объяснения обычно бесполезны.

cRYSMAS 24-03-2011 09:20 1642576

блин спасибо конечно посмотрел 1 (послдняя сылка бита) и зачем мне сылка которая ребутит модем? я скриптом пользуюсь, нормально все работает. Если б я знал хорошо мать часть мне б и объяснять бы не пришлось ладно это все философия=) мне на другом форуме подсказали немного вот код:
Код:

Set pExec = CreateObject("WScript.Shell")
Set pExec = pShell.Exec("cmd /k telnet 192.168.1.1")
WScript.Sleep 1000
pExec.SendKeys "login" & Chr(13), 10
WScript.Sleep 1000 
pExec.SendKeys "pass" & Chr(13), 10
WScript.Sleep 1000 
pExec.SendKeys "reboot" & chr(13)
pExec.Terminate

и должен работать но у меня не работает пишет логин и пароль не являеться командой или командым файлом, при загрузке данного кода я даже не вижу подключение к телнету, если руками вбить строку "cmd /k telnet 192.168.1.1" то открывается соединение, вопрос что может быть не так?почему нет соединения с телнетом?
ПС. Гуглил по поводу закрытия окна/активного окна в вбс скриптах.

libertarij 25-06-2011 23:34 1701592

Такой скрипт запускает окно телнета в свернутом виде, после перезагрузки если попытаться развернуть это окно - оно пропадает.

Код:

On Error Resume Next
strComputer = "."  strTarget = "google.com" 'IP.  Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
Err.Clear
For Each objPing in colPings
If Err = 0 Then
Err.Clear
If objPing.StatusCode = 0 Then
Else
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "telnet.exe 192.168.1.1",2
WScript.Sleep 1000
WshShell.SendKeys "admin{ENTER}" 'admin - login
WScript.Sleep 1000
WshShell.SendKeys "admin{ENTER}" 'admin - password
WScript.Sleep 1000
WshShell.SendKeys "reboot{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "{ENTER}"
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If



Время: 08:09.

Время: 08:09.
© OSzone.net 2001-