Search code examples
c#.netwinformsoperating-system

How to get the "friendly" OS Version Name?


I am looking for an elegant way to get the OS version like: "Windows XP Professional Service Pack 1" or "Windows Server 2008 Standard Edition" etc.

Is there an elegant way of doing that?

I am also interested in the processor architecture (like x86 or x64).


Solution

  • You can use WMI to get the product name ("Microsoft® Windows Server® 2008 Enterprise "):

    using System.Management;
    var name = (from x in new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem").Get().Cast<ManagementObject>()
                          select x.GetPropertyValue("Caption")).FirstOrDefault();
    return name != null ? name.ToString() : "Unknown";