考虑所有基于Windows的计算机的域。从这些计算机我想只检测Windows Server 2003计算机。
我拥有域中所有计算机的所有计算机名称。那么如何从机器名称确定OS版本。我使用Environment.OSVersion
来获取本地计算机的os版本。如果我知道远程计算机名称,如何获得远程计算机的操作系统版本?
答案 0 :(得分:0)
您可以使用WMI(Windows Management Instrumentation)访问远程计算机 Win32_OperatingSystem类实例。
using (var mc = new ManagementClass(@"\\" + computerName + @"\root\cimv2:Win32_OperatingSystem"))
{
foreach (var obj in mc.GetInstances())
{
if (((bool)obj.Properties["Primary"].Value))
{
int productType = (int)obj.Properties["ProductType"].Value;
string version = obj.Properties["Version"].Value.ToString();
bool isServer = (productType == 2 || productType == 3); // "Domain Controller" or "Server
if (version == "5.2.3790" && isServer)
{
// "Caption" should contain something like "Microsoft(R) Windows(R) Server 2003..."
// Please resist parsing that, however.
Console.WriteLine(obj.Properties["Caption"].Value);
}
}
}
}
有关属性和可用值的详细信息,请参阅Win32_OperatingSystem类的MSDN页面。