Что нового

WMI. Как продолжить работу скрипта если удалленый компьютер не отвечает?

minimen456

Новичок
Сообщения
34
Репутация
0
Я собираюсь подключится к удаленным машинам и собрать с них информацию через WMI
Код:
$objSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
	$objWMIService = $objSWbemLocator.ConnectServer($strComputerName, "\ROOT\CIMV2", "login", "pass")

Когда удаленный компьютер онлайн, то все в порядке, но когда он оффлайн скрипт выдает ошибку и прекращает свою работу.
Код:
$objWMIService = $objSWbemLocator.ConnectServer($strComputerName, "\ROOT\CIMV2", "login", "pass")
$objWMIService = $objSWbemLocator.ConnectServer($strComputerName, "\ROOT\CIMV2", "login", "pass")^ ERROR

Можно ли сделать так, чтобы шоу продолжалось несмотря ни на что? Просто компьютеров в списке много, а тут на первой же не включенной машине происходит остановка.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
minimen456,
В справке смотрите
Код:
ObjEvent("AutoIt.Error"[, "function name"])
 
Автор
M

minimen456

Новичок
Сообщения
34
Репутация
0
Как мне сделать функцию (error handler) чтобы Autoit продожал свою работу только после ошибки ConnectServer, а на остальнае ошибки с ком-объектами реагировал как обычно(т.е прекращал стою работу)?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Запускайте под последней бетой, а после ConnectServer проверяйте на @error
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
minimen456 [?]
Как мне сделать функцию (error handler) чтобы Autoit продожал свою работу только после ошибки ConnectServer
Попробуйте примерно так.
Код:
Global $oObj_Error, $fNoExit

$oObj_Error = ObjEvent('AutoIt.Error', '_Obj_Error')
If Not IsObj($oError) Then Exit 13
;...
;some code
;...
$fNoExit = True
$objWMIService = $objSWbemLocator.ConnectServer($strComputerName, "\ROOT\CIMV2", "login", "pass")
$fNoExit = False
If IsObj($objWMIService) Then
	;...
	;some code
	;...
EndIf
;...
;some code
;...
Func _Obj_Error()
	If $fNoExit Then Return
	ConsoleWrite('Object error. Line: ' & $oObj_Error.scriptline & @LF)
	Exit 13
EndFunc   ;==>_Obj_Error
 
Верх