нашел способ про который вы писали
Код
'Функция Alive() получает имя компьютера в локальной сети (или ip-адрес) и
'возвращает True, если компьютер пингуется, и False в противном случае
Function Alive(ByVal strHost)
    Const SYSTEM_FOLDER = 1, TEMP_FOLDER = 2  ' константы FileSystemObject
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    With objFSO
        Do 'генерация пути к временному файлу: КаталогВременныхФайлов\ИмяВременногоФайла
            strTempFile = .BuildPath(.GetSpecialFolder(TEMP_FOLDER), .GetTempName)
        'если такой файл существует, продолжаем попытки генерации пути:
        Loop While .FileExists(strTempFile)
        'составим командную строку вызова ping с перенаправлением во временный файл
        'cmd.exe завершить после исполнения (параметр /c)
        'число запросов для ping - один (параметр -n 1)
        strCmdLine = .BuildPath(.GetSpecialFolder(SYSTEM_FOLDER), "cmd.exe") _
            & " /c " & .BuildPath(.GetSpecialFolder(SYSTEM_FOLDER), "ping.exe") _
            & " -n 1 " & strHost & " > " & strTempFile
    End With
    'запускаем ping синхронно, в скрытом окне
    CreateObject("Wscript.Shell").Run strCmdLine, 0, True
    'паттерн регулярного выражения для анализа вывода ping
    Set objRE = CreateObject("VBScript.RegExp")
    'маска _XXX.XXX.XXX.XXX:_, где "X" - любое число, причём в каждой группе может быть
    'от 1 до 3 цифр, а "_" - пробел (т.е. паттерн соответствует любому валидному IP-адресу,
    'который может появиться в выводе команды ping)
    'предполагается, что если в выводе ping будет присутствовать какой-то IP-адрес, это
    'будет означать, что ping прошёл успешно, иначе - что удалённый компьютер не отвечает;
    'примечание: при неудачном ping'е в выводе команды в принципе может присутствовать
    'IP-адрес, но чаще всего он не будет содержать двоеточия и пробела в конце;
    'для верности необходимо проверить также наличие строки "TTL=" в выводе
    objRE.Pattern = " [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}: [\s\S]*TTL="
    'открытие временного файла, содержащего вывод команды ping
    Set objTS = objFSO.OpenTextFile(strTempFile, 1)
    'функция возвращает результат проверки паттерна
    Alive = objRE.Test(objTS.ReadAll)
    'закрытие и удаление временного файла
    objTS.Close
    objFSO.DeleteFile strTempFile
End Function