Imports System.Management Public Class RemoteWMI Dim co As ConnectionOptions Dim ms As System.Management.ManagementScope Public Sub New(ByVal PCName As String) co = New ConnectionOptions ms = New System.Management.ManagementScope("\\" & PCName & "\root\cimv2", co) End Sub Public Sub New(ByVal PCName As String, ByVal UserID As String, ByVal Password As String) co = New ConnectionOptions co.Username = UserID co.Password = Password ms = New System.Management.ManagementScope("\\" & PCName & "\root\cimv2", co) End Sub Public Function GetWmiValue(ByVal WMIClass As String, ByVal WMIProperty As String) As ArrayList 'Query remote computer across the connection Dim oq As New System.Management.ObjectQuery("SELECT " & WMIProperty & " FROM " & WMIClass) Dim query1 As New ManagementObjectSearcher(ms, oq) Dim queryCollection1 As ManagementObjectCollection = query1.Get() Dim WMIProp() As String = WMIProperty.Split(",") Dim MyAL As New ArrayList For Each mo As ManagementObject In queryCollection1 Dim tmp As String = "" For i As Integer = 0 To WMIProp.Length - 1 If UCase(WMIProp(i)) = "IPADDRESS" Then tmp += Join(mo.Item(WMIProp(i)), ".") & "," Else Try tmp += mo.Item(WMIProp(i)).ToString & "," Catch tmp += "," End Try End If Next tmp = tmp.TrimEnd(",") MyAL.Add(tmp) Next Return MyAL End Function Public Sub Dispose() ms = Nothing co = Nothing End Sub End Class