Index: /trunk/src/VBox/Runtime/r3/win/RTSystemQueryOSInfo-win.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/win/RTSystemQueryOSInfo-win.cpp	(revision 15953)
+++ /trunk/src/VBox/Runtime/r3/win/RTSystemQueryOSInfo-win.cpp	(revision 15954)
@@ -67,4 +67,6 @@
     kRTWinOSType_2003,
     kRTWinOSType_VISTA,
+    kRTWinOSType_2008,
+    kRTWinOSType_7,
     kRTWinOSType_NT_UNKNOWN = 199,
     kRTWinOSType_NT_LAST    = kRTWinOSType_UNKNOWN
@@ -147,4 +149,5 @@
 {
     RTWINOSTYPE enmVer         = kRTWinOSType_UNKNOWN;
+    BYTE  const bProductType   = pOSInfoEx->wProductType;
     DWORD const dwPlatformId   = pOSInfoEx->dwPlatformId;
     DWORD const dwMinorVersion = pOSInfoEx->dwMinorVersion;
@@ -197,6 +200,13 @@
         else if (   dwMajorVersion == 6
                  && dwMinorVersion == 0)
-            enmVer = kRTWinOSType_VISTA;
-        /** @todo check Windows Server 2008! */
+        {
+            if (bProductType != VER_NT_WORKSTATION)
+                enmVer = kRTWinOSType_2008;
+            else
+                enmVer = kRTWinOSType_VISTA;
+        }
+        else if (   dwMajorVersion == 6
+                 && dwMinorVersion == 1)
+            enmVer = kRTWinOSType_7;
         else
             enmVer = kRTWinOSType_NT_UNKNOWN;
@@ -364,4 +374,6 @@
                     break;
                 }
+                case kRTWinOSType_2008:         strcpy(szTmp, "Windows 2008"); break;
+                case kRTWinOSType_7:            strcpy(szTmp, "Windows 7"); break;
 
                 case kRTWinOSType_NT_UNKNOWN:
