Я пытаюсь получить информацию от хоста, подключенного к локальной сети.Следующий код дает название операционной системы, например Microsoft Windows 10 Pro на моем локальном компьютере.Когда я использую имя сетевого компьютера, появляется сообщение об ошибке Access Denied
![enter image description here](https://i.stack.imgur.com/qwsxS.png)
Насколько я понимаю, он не получает разрешения на сбор информации с этого компьютера, посколькуучетные данные не предоставлены.Итак, мой вопрос заключается в том, как предоставить учетные данные этим кодам, чтобы они могли получить разрешение на сбор.
Примечание. Я добавил исключение Windows Management Instrumentation (WMI)
в брандмауэр Windows на удаленном ПК.
Sub GetOS()
If getOperatingSystem <> "" Then
MsgBox getOperatingSystem()
End If
End Sub
'------------- Function to get Operating System Info --------------
Public Function getOperatingSystem()
Dim localHost As String
Dim objWMIService As Variant
Dim colOperatingSystems As Variant
Dim objOperatingSystem As Variant
On Error GoTo Error_Handler
'localHost = "." 'Technically could be run against remote computers, if allowed
localHost = "SCANNER-PC"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & localHost & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem In colOperatingSystems
getOperatingSystem = objOperatingSystem.Caption '& " " & objOperatingSystem.Version
Exit Function
Next
Error_Handler_Exit:
On Error Resume Next
Exit Function
Error_Handler:
MsgBox "Error No: " & Err.Number & vbCrLf & "Description: " & Err.Description
Resume Error_Handler_Exit
End Function