CLIENTNAME
Citrix システムでは、ユーザーが Citrix に接続しているマシンの名前を持つ環境変数が呼び出されます。これは単なる通常の Windows 環境変数であるため、使用Environment.GetEnvironmentVariable
して読み取ることができます。
次のように、すばやく汚いことを行うことができます。
var workstationName = Environment.GetEnvironmentVariable("CLIENTNAME") ?? Environment.MachineName;
もう少し堅牢なものとして、Citrix 環境にSESSIONNAME
は Citrix セッションを識別する変数もあります。これら 2 つの変数が一緒に存在することは、おそらく Citrix セッションで実行するためのより良いテストです。
したがって、次のようなことができます。
public bool IsCitrixSession() {
return Environment.GetEnvironmentVariable("CLIENTNAME") != null
&& Environment.GetEnvironmentVariable("SESSIONNAME") != null;
}
public string GetWorkstationName()
{
return IsCitrixSession() ? Environment.GetEnvironmentVariable("CLIENTNAME")
: Environment.MachineName;
}