I would like to determine if my program is running on a version of Windows Server. Apparently, System.Environment
does not contain information about the fact that Windows is a server version (there is no such info in the OS version object).
I know that I can use SystemInformation.TerminalServerSession
to check whether my program is running on a Remote Desktop (see also this question), but this will also be true if the user is simply accessing a plain client Windows machine remotely.
So is there a supported way of determining if the code is running on a server or on a client machine? I don't mind using P/Invoke if needed.
Note: I don't want to search for the "Server"
string in the product name, since this will probably not work on some systems because of the localization.