Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


darkAge, увы мне, увы: надо-таки проверять. Хотя бы синтаксис.

Пробуйте:
читать дальше »
Код: Выделить весь код
Option Explicit

Const lngInterval  = 60 ' seconds
Const lngFrequency = 10 ' every 10 seconds


Dim strAddress

Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim lngCurrentInterval


strAddress = "MyServer" ' or IP address

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

lngCurrentInterval = 0

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

Set objSWbemServicesEx = Nothing

WScript.Quit 0

Отправлено: 10:34, 15-07-2013 | #6