Differentiating between NT Server & EE?

Discuss Windows 2000, NT, XP and Windows Server 2000, 2003, SBS 2003.
Post Reply
empireum
Donator
Posts: 3557
Joined: Sat Sep 30, 2006 5:00 pm

Differentiating between NT Server & EE?

Post by empireum »

Hello, just wondering if it is possible to differentiate between NT Server & EE within a script or a program (i.e. by reading an entry from the registry or something) when you "can't have a look" at the system.

RentedMule
Donator
Posts: 937
Joined: Tue Oct 17, 2006 8:26 pm

Post by RentedMule »

The ONLY difference that I see with enterprise edition and standard server is the NT splash screen at login (says enterprise edition), and what is available in Add/Remove programs under windows components (everything that is on the second CD... like clustering services). And even that doesn't really matter because you can install the enterprise edition services on plain server.

empireum
Donator
Posts: 3557
Joined: Sat Sep 30, 2006 5:00 pm

Post by empireum »

Yep, that's also what I noticed. And of course the presence of some Enterprise-related items in Administrative Tools. Maybe I can make something up using this as indicator.

Luckie
User avatar
Donator
Posts: 1115
Joined: Thu Aug 24, 2006 8:03 am
Location: Germany

Re: Differentiating between NT Server & EE?

Post by Luckie »

empireum wrote:Hello, just wondering if it is possible to differentiate between NT Server & EE within a script or a program
you can detect the difference by using the GetVersionEx ad checking for the wSuiteMask Value:

Code: Select all

// Try calling GetVersionEx using the OSVERSIONINFOEX structure.
  // If that fails, try using the OSVERSIONINFO structure.
  ZeroMemory(@osvi,sizeof(TOSVersionInfo));
  osvi.dwOSVersionInfoSize := sizeof(TOSVersionInfo);

  bOsVersionInfoEx := GetVersionEx(osvi);
  if(not bOsVersionInfoEx) then
  begin
    osvi.dwOSVersionInfoSize := VERSIONINFOSIZE;
    if(not GetVersionEx(osvi)) then
    begin
      Result := 'Fehler bei der Ermittlung der Windows-Version';
      exit;
    end;
  end;

if (osvi.dwMajorVersion = 4) and (osvi.dwMinorVersion = 0) then
            begin // Windows NT 4.0
              if(osvi.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then
              Begin
                FProductType := ptEnterprise;
                Result := Result + 'Server 4.0, Enterprise Edition '
              End
              else
              Begin
                FProductType := ptServer;
                Result := Result + 'Server 4.0 ';
              End;
            end;
if you need the full source let me know
"Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why."

Post Reply