Проблемы с пониманием ExecQuery в функции winmgmts - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь получить результаты ping из своей локальной сети и использую чужой код VBA. Я не понимаю, что такое «ExecQuery» и как он должен быть написан, или как я получаю сообщение об ошибке «Неизвестный хост» на подключенных именах компьютеров.

Это мое первое изучениеКод VBA и я исследовали, как «winmgmts» работает на базовом уровне;но «ExecQuery» сбил меня с толку.

Function GetPingResult(Host)

   Dim objPing As Object
   Dim objStatus As Object
   Dim strResult As String

   Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
       ExecQuery("Select * from Win32_PingStatus Where Address = '" & Host & "'")

   For Each objStatus In objPing
      Select Case objStatus.StatusCode
         Case 0: strResult = "Connected"
         Case Else: strResult = "Unknown host"
      End Select
      GetPingResult = strResult
   Next

   Set objPing = Nothing

End Function

Я ожидаю определенного вывода с допустимого имени компьютера:

Computer1           Connected
Computer2           Unknown Host
Computer3           Connected
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...