プログラムが Windows Server のバージョンで実行されているかどうかを確認したいと考えています。明らかに、System.Environment
Windows がサーバー バージョンであるという事実に関する情報は含まれていません ( OS バージョン オブジェクトにはそのような情報はありません)。
SystemInformation.TerminalServerSession
プログラムがリモート デスクトップで実行されているかどうかを確認するために使用できることはわかっていますが (この質問も参照してください)、ユーザーが単純なクライアント Windows マシンにリモートでアクセスしている場合にも当てはまります。
コードがサーバー上で実行されているかクライアント マシン上で実行されているかを判断するサポートされている方法はありますか? 必要に応じて P/Invoke を使用してもかまいません。
注: 製品名の文字列を検索したくありません"Server"
。これは、ローカリゼーションのために一部のシステムでは機能しない可能性があるためです。