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

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

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


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

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


Изображения
Тип файла: jpg Снимок1.JPG
(25.7 Kb, 20 просмотров)

Вот что получается, что бы пока долго не ждать, сделал 60 секунд.
Код: Выделить весь код
Option Explicit

Const lngInterval  =  60 ' (5 * 60) seconds
Const lngFrequency =  10 ' every 10 seconds


Dim strAddress

Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim lngCurrentInterval


strAddress = "192.168.4.1" ' or IP address

Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")

lngCurrentInterval = 0

Do
	For Each objSWbemObject In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "'")
		If Not IsNull(objSWbemObject.StatusCode) Then
			If objSWbemObject.StatusCode = 0 Then
				lngCurrentInterval = 0
			End If
		End If
	Next
	
	If lngCurrentInterval >= lngInterval Then
		objSWbemServicesEx.Security_.Privileges.AddAsString "SeShutdownPrivilege", True
		
		For Each objSWbemObject In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_OperatingSystem")
			objSWbemObject.Shutdown
		Next
		
		Exit Do
	End If
	
	WScript.Sleep lngFrequency
	
	lngCurrentInterval = lngCurrentInterval + lngFrequency
Loop

Set objSWbemServicesEx = Nothing

WScript.Quit 0
В итоге выдает ошибку

Отправлено: 09:25, 15-07-2013 | #5