Tomsk Sysadmins Forum

Windows => Программирование => Topic started by: Andrey4453 on December 09, 2009, 20:59:57

Title: Проблема с перезагрузкой модема
Post by: Andrey4453 on December 09, 2009, 20:59:57
Здравствуйте. У меня такая проблема. Есть ADSL через DSL-2500U BruD в режиме роутера. Так как постоянно происходит обрыв сесии - пытаюсь настроить автоматическую перезагрузку если не идет пинг на ya.ru.  Вот скрипт

On Error Resume Next

strComputer = "."
strTarget = "turbo.uralcom.com" '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 1000
oShell.SendKeys "user" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "password" & 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

При его запуске успешно запускается telnet (если пинг не проходит), но логин и пароль, на английском языке вводятся кракозябрами. И соответственно происходит ошибка авторизации. Цифры и русские буквы отображаются правильно, но команду Reboot на русском не подашь. Прошу подсказать где я ошибся и как это можно исправить.
Title: Проблема с перезагрузкой модема
Post by: fredina on December 09, 2009, 21:42:34
0) просто интересно, откуда такие познания подобных скриптов? (я тоже хочу!)
1) может вам простой cmd (bat) "скриптик" попробовать?
2) посто предположу, может для этого скрипта надо раскладку переключать? у вас по-умолчанию в системе стоит русский язык?
Title: Проблема с перезагрузкой модема
Post by: .05 on December 10, 2009, 02:25:11
fredina Ваши предположения верны  

Что делает "oShell.SendKeys "user"" Думаете оно посылает в oShell строчку "user"? - а вот шиш Вам, оно посылает нажатие этих клавиш, точнее коды. А какая раскладка языка в системе у Вас сейчас стоит по умолчанию ? Так что меняйте на английскую

Об этом можно почитать тут (http://msdn.microsoft.com/ru-ru/library/system.windows.forms.sendkeys.aspx) , где также сказано
Quote
Если приложение предназначено для международного использования с различными клавиатурами, применение метода Send может привести к непредсказуемым результатам, и его следует избегать.
Title: Проблема с перезагрузкой модема
Post by: Diver on December 10, 2009, 10:13:37
А в техподдержку обращались? Ничем помочь не могут? Может скорость убавить? Лапшу поменять на линии? У самого был такой модем, вроде сессия не отваливалась... Прошивка последняя? Да и вроде в режиме роутера автоматом связь восстанавливается...
Title: Проблема с перезагрузкой модема
Post by: Andrey4453 on December 10, 2009, 20:16:58
Огромное спасибо. А вот в техподдержку обращался, по их словам проблема по вине перегрева модема,  про другие причины даже слушать не хотят. Хотя такая проблема исключительно у всех моих знакомых с разными моделями модемов\роутеров.
Title: Проблема с перезагрузкой модема
Post by: -ud- on February 08, 2010, 16:16:58
Quote from: Andrey4453
Огромное спасибо. А вот в техподдержку обращался, по их словам проблема по вине перегрева модема,  про другие причины даже слушать не хотят. Хотя такая проблема исключительно у всех моих знакомых с разными моделями модемов\роутеров.
У меня тоже после года работы хуавей 880 стал перезагружаться. Вскрыл. Все электролиты оказались вздувшимися. Перепаял, теперь все ок.