Feedback

C# - OS & Servicepack ermitteln

Veröffentlicht von am 4/10/2008
(3 Bewertungen)
Gibt im Klartext zurück, welches Betriebssystem und welcher Servicepack auf der Maschine laufen.
private string GetOSandServicepack()
{
      OperatingSystem os = Environment.OSVersion;
      string osText = "";
      if (os.Version.Major == 5)
      {
            switch (os.Version.Minor)
            {
                  case 0: osText = "Windows 2000";
                        break;
                  case 1: osText = "Windows XP";
                        break;
                  case 2: osText = "Windows Server 2003";
                        break;
                  default: osText = os.ToString();
                        break;
            }
      }
      else
      {
            if (os.Version.Major == 6)
                  osText = "Windows Vista";
            else
                  osText = os.ToString();
      }
      string osVersion = os.VersionString;
      string spText = os.ServicePack;
      // parameterweise zurück ..
      
      return string.Format("{0} , {1}", osText, spText );
}
Abgelegt unter OS, Servicepack, OS Info.

4 Kommentare zum Snippet

Thomas Klimstein schrieb am 10/16/2009:
Nicht schlecht, aber du hast Win7 vergessen :)

Case 0 wäre Vista und Case 1 Win7
Thomas Klimstein schrieb am 10/16/2009:
Mir ist noch ein kleiner Fehler aufgefallen:
osVersion ist immer null, da du nicht in String umwandelst. Hier ein verbesserungsvorschlag

            else
{
if (os.Version.Major == 6)
switch (os.Version.Minor)
{
case 0: osText = "Windows Vista";
break;
case 1: osText = "Windows 7";
break;
default: osText = os.ToString();
break;
}
}
string osVersion = os.VersionString.ToString();
string spText = os.ServicePack;
// parameterweise zurück ..

return string.Format("{0} , {1}, {2}", osText, spText, osVersion);
Sperneder Patrick schrieb am 10/16/2009:
Nun Danke!
Das dieser Snippet noch kein Windows7 erkennt, liegt einfach daran, das als ich den Snippet geschrieben hab es noch nicht einmal eine Ahnung von Win7 gab. ;)
Und du hast recht: Der string osVersion ist zwar niemals NULL aber der Wert wird einfach nicht bei der Rückgabe verwendet...
Ich werde deine Rückmeldungen baldigst in den Snippet einfliessen lassen.
Koopakiller schrieb am 12/3/2014:
Man kann den Namen auch mit Hilfe der WMI ermitteln:
http://dotnet-snippets.de/snippet/os-version-name-mit-wmi/4929
 

Logge dich ein, um hier zu kommentieren!