Hello,
I am writng an application to monitor various PC's on our network.
I am trying to get the method below to connect to a remote machine and give
me that machines details.
However every time I run it - it just returns the details for the host
machine - can anyone see where I am going wrong
is WMI the best way to this?
Any help would be appreciated, Thanks
private void GetDetails()
{
ConnectionOptions oConn = new ConnectionOptions();
oConn.Impersonation = ImpersonationLevel.Impersonate;
System.Management.ManagementScope oMs = new
System.Management.ManagementScope(\\SERVER, oConn);
System.Management.ObjectQuery oQuery = new
System.Management.ObjectQuery("select * from Win32_OperatingSystem");
ManagementObjectSearcher oSearcher = new
ManagementObjectSearcher(oMs,oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
foreach( ManagementObject oReturn in oReturnCollection )
{
Console.WriteLine("Description: " + oReturn["Description"].ToString());
Console.WriteLine("FreePhysicalMemory: " +
oReturn["FreePhysicalMemory"].ToString());
Console.WriteLine("FreeVirtualMemory: " +
oReturn["FreeVirtualMemory"].ToString());
Console.WriteLine("InstallDate: " + oReturn["InstallDate"].ToString());
Console.WriteLine("LastBootUpTime: " +
oReturn["LastBootUpTime"].ToString());
Console.WriteLine("LocalDateTime: " +
oReturn["LocalDateTime"].ToString());
Console.WriteLine("Name: " + oReturn["Name"].ToString());
Console.WriteLine("Organization: " +
oReturn["Organization"].ToString());
Console.WriteLine("OSLanguage: " + oReturn["OSLanguage"].ToString());
Console.WriteLine("OSType: " + oReturn["OSType"].ToString());
Console.WriteLine("RegisteredUser: " +
oReturn["RegisteredUser"].ToString());
Console.WriteLine("SerialNumber: " +
oReturn["SerialNumber"].ToString());
Console.WriteLine("ServicePackMajorVersion: " +
oReturn["ServicePackMajorVersion"].ToString());
Console.WriteLine("ServicePackMinorVersion: " +
oReturn["ServicePackMinorVersion"].ToString());
}
}