Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 16
Благодарности: 1

Профиль | Отправить PM | Цитировать


Опять прошу помощи!
Решил начать все сначала. Пишу скрипт, который пингует 3 хоста. Если все 3 не отвечают - перезагружает софт и модем.
Собственно код
Код: Выделить весь код
iPing =   Ping("195.195.195.195")
	iPing1 = Ping1("195.195.195.195")
	iPing2 = Ping2("195.195.195.195")
	strComputer = "."


Set WshShell = WScript.CreateObject("WScript.Shell")
	Command ="d:\Portable\Script\restart_modem\devcon.exe disable USB\VID_1076*"
	Command1="d:\Portable\Script\restart_modem\devcon.exe enable USB\VID_1076*"
	Command2="d:\Portable\Script\restart_modem\devcon.exe restart USB\VID_1076*"
	strProcessKill = "'SW_WiMaxCM.exe'" 
	strProcessStart="d:\Portable\Script\restart_modem\SW_WiMaxCM.lnk"


Function Ping (strTarget)
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'AND Timeout=10000 AND BufferSize=1")


  For Each objPing in colPings
    Ping = objPing.StatusCode
  Next
End Function

If iPing=0 Then
WScript.Quit
end if

Function Ping1 (strTarget)
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'AND Timeout=10000 AND BufferSize=1")

 For Each objPing in colPings
    Ping1 = objPing.StatusCode
  Next
End Function

If iPing1=0 Then
WScript.Quit
end if

Function Ping2 (strTarget)
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'AND Timeout=10000 AND BufferSize=1")

  For Each objPing in colPings
    Ping2 = objPing.StatusCode
  Next
End Function

If iPing2=0 Then
WScript.Quit
end if

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next 

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & ".\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
 ("Select * from Win32_Service Where Name ='GCTWiMaxService'")
For Each objService In colListOfServices
    objService.StopService    
	WshShell.Run Command
	WScript.Sleep 2000
	WshShell.Run Command1
	WScript.Sleep 5000
	WshShell.Run Command2
	t = now()
	Set FSO = CreateObject("Scripting.FileSystemObject") 
    	Set f = FSO.OpenTextFile("log.txt", 8, True) 
    	f.WriteLine t 
    	objService.StartService
	WshShell.Run strProcessStart
	Wscript.Echo  "GCT WiMAX USB Network Device restarted"

Next


Столкнулся с одной проблемой. Если модем отсутствует, то скрипт выдает вот такую ошибку
Код: Выделить весь код
C:\Users\admin\AppData\Roaming\WMICodeCreator\MyWMIQuery_Script.vbs(20, 3) (null): 0x80041001
вот в этом месте:
Код: Выделить весь код
For Each objPing in colPings
    Ping = objPing.StatusCode
Мне же нужно, чтобы при отсутствии модема тоже срабатывала перезагрузка. Помогите решить задачу.

Последний раз редактировалось YouHim, 23-12-2011 в 04:04.


Отправлено: 03:58, 23-12-2011 | #32