Tomsk Sysadmins Forum
Windows => Программирование => Topic started 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 на русском не подашь. Прошу подсказать где я ошибся и как это можно исправить.
-
0) просто интересно, откуда такие познания подобных скриптов? (я тоже хочу!)
1) может вам простой cmd (bat) "скриптик" попробовать?
2) посто предположу, может для этого скрипта надо раскладку переключать? у вас по-умолчанию в системе стоит русский язык?
-
fredina Ваши предположения верны
Что делает "oShell.SendKeys "user"" Думаете оно посылает в oShell строчку "user"? - а вот шиш Вам, оно посылает нажатие этих клавиш, точнее коды. А какая раскладка языка в системе у Вас сейчас стоит по умолчанию ? Так что меняйте на английскую
Об этом можно почитать тут (http://msdn.microsoft.com/ru-ru/library/system.windows.forms.sendkeys.aspx) , где также сказано Если приложение предназначено для международного использования с различными клавиатурами, применение метода Send может привести к непредсказуемым результатам, и его следует избегать.
-
А в техподдержку обращались? Ничем помочь не могут? Может скорость убавить? Лапшу поменять на линии? У самого был такой модем, вроде сессия не отваливалась... Прошивка последняя? Да и вроде в режиме роутера автоматом связь восстанавливается...
-
Огромное спасибо. А вот в техподдержку обращался, по их словам проблема по вине перегрева модема, про другие причины даже слушать не хотят. Хотя такая проблема исключительно у всех моих знакомых с разными моделями модемов\роутеров.
-
Огромное спасибо. А вот в техподдержку обращался, по их словам проблема по вине перегрева модема, про другие причины даже слушать не хотят. Хотя такая проблема исключительно у всех моих знакомых с разными моделями модемов\роутеров.
У меня тоже после года работы хуавей 880 стал перезагружаться. Вскрыл. Все электролиты оказались вздувшимися. Перепаял, теперь все ок.