Me gustaría determinar si mi programa se ejecuta en una versión de Windows Server. Aparentemente, System.Environment
no contiene información sobre el hecho de que Windows es una versión de servidor (no existe tal información en el OS version object).Determinar si el programa se está ejecutando en Windows Server
Sé que puedo usar SystemInformation.TerminalServerSession
para verificar si mi programa se ejecuta en un escritorio remoto (vea también this question), pero esto también será cierto si el usuario simplemente está accediendo a un equipo Windows de cliente simple de forma remota.
Entonces, ¿hay alguna forma admitida de determinar si el código se está ejecutando en un servidor o en una máquina cliente? No me importa usar P/Invoke si es necesario.
Nota: No deseo buscar la cadena "Server"
en el nombre del producto, ya que probablemente no funcione en algunos sistemas debido a la localización.
Si Nick le dio la respuesta que solía obtener la información que necesita, entonces debe aceptar esa respuesta en lugar de la suya (la información aquí debe ser editada en su pregunta). –
Bueno, Nick no proporcionó la solución IsOS. Por lo tanto, pareció más útil para otros lectores marcar mi propia respuesta como la aceptada. Le he acreditado a Nick un voto positivo. –
Es una buena respuesta gracias por la ayuda. También uso siempre un sitio muy bueno cuando tengo que llamar a métodos externos: http://www.pinvoke.net/ Aquí está el método IsOS: http://www.pinvoke.net/default.aspx/shlwapi/IsOS .html – Major