c # - Sådan registreres kun Windows 2003-computere fra domæne

Indlæg af Hanne Mølgaard Plasc

Problem



Overvej domæne af alle Windows-baserede computere. fra disse computere vil jeg kun opdage Windows Server 2003-computere.


Jeg har alle maskinnavne på alle maskiner i domænet. Så hvordan kan man bestemme OS version fra maskinens navn. Jeg har brugt Environment.OSVersion for at få os version af den lokale computer. Hvordan kan jeg få OS-version af fjerncomputer, hvis jeg kender fjerncomputernavn?

Bedste reference


Du kan bruge WMI (Windows Management Instrumentation) til at få adgang til fjerncomputeren 's
Win32\_OperatingSystem klasse instans. [3]


using (var mc = new ManagementClass(@"\" + computerName + @"
ootcimv2: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);
          }
       }
    }
 }


For detaljer om egenskaberne og hvilke værdier der er tilgængelige, se MSDN-siderne for Win32\_OperatingSystem-klassen. [4]