Я хотел бы определить, работает ли моя программа на версии Windows Server. По-видимому, System.Environment
не содержит информации о том, что Windows является серверной версией (такой информации нет в версии ОС ).
Я знаю, что могу использовать SystemInformation.TerminalServerSession
, чтобы проверить, запущена ли моя программа на удаленном рабочем столе (см. Также этот вопрос ), но это также будет верно, если пользователь просто обращается к простому клиентская машина Windows удаленно.
Так есть ли поддерживаемый способ определения, выполняется ли код на сервере или на клиентском компьютере? Я не против использовать P / Invoke, если это необходимо.
Примечание: я не хочу искать строку "Server"
в названии продукта, так как это, вероятно, не будет работать в некоторых системах из-за локализации.