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

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

Ветеран


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

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


CyberMuesli, можно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx

strComputer = "."

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

Do
	For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery( _
		"SELECT * FROM Win32_PingStatus WHERE Address = '192.168.70.1'")
		
		With objSWbemObjectEx
			If Not IsNull(.StatusCode) Then
				If .StatusCode = 0 Then
					WScript.Echo .Address & vbTab & "On" & vbTab & "Response time: " & .ResponseTime & " ms"
				Else
					WScript.Echo .Address & vbTab & "Off" & vbTab & "Status code: " & .StatusCode
				End If
			Else
				WScript.Echo .Address & vbTab & "Not found"
			End If
		End With
	Next
Loop

Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

вынеся собственно подключение к Wbem за рамки цикла.

Anonymоus, спасибо, ясно. Статус именно тот, что Вы приводили выше на скриншоте:
Цитата:
11002 Destination Net Unreachable
(Win32_PingStatus class). Стало быть, будем знать про такую особенность «ping.exe».

Одно только замечание по коду со скриншота…
читать дальше »
Код: Выделить весь код
<command> & echo %Variable%
— он в данном виде непригоден для использования. Дело в том, что «Variable» в этом случае раскрывается до исполнения строки команд и будет возвращать код возврата предыдущей команды, а не «<command>».
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:47, 28-05-2012 | #16