0
A
回答
0
有关当前用户连接的所有RDP环境变量的列表,请参阅下面的注释。
针对Citrix ICA连接的REG位置HKEY_LOCAL_MACHINE \ SOFTWARE \思杰\伊卡\会议\\连接\
的子项ClientProductID和ClientType会给参照什么样的设备被连接。
下面是一些基本代码来获得远程会话,然后从注册表获取会话信息。
// Prints out ICA or RDP session ID of current user & gets ICA session ClientType variable
using System;
using Microsoft.Win32;
namespace ViaRegedit
{
class Program03
{
static void Main(string[] args)
{
// Obtain an instance of RegistryKey for the CurrentUser registry
RegistryKey rkCurrentUser = Registry.CurrentUser;
// Obtain the test key (read-only) and display it.
RegistryKey rkTest = rkCurrentUser.OpenSubKey("Remote");
foreach (string valueName in rkTest.GetSubKeyNames())
{
//Getting path to RDP/Citrix session ID
string RDPICApath = "";
if (rkTest.OpenSubKey(valueName) != null && rkTest.OpenSubKey(valueName) != null) { RDPICApath = rkTest.OpenSubKey(valueName).ToString(); }
Console.WriteLine("Getting CurrentUser ICA-RDP path from string = " + RDPICApath);
//List<string> RDPICAnumber = RDPICApath.Split('\\').ToList();
string RDPICAnumber = RDPICApath.Substring(RDPICApath.LastIndexOf('\\') + 1);
Console.WriteLine("Current User RDPICAnumber = " + RDPICAnumber);
//Getting reg local machine info for Citrix based on RDP/Citrix session ID "RDPICAnumber"
string regLocal = @"SOFTWARE\Citrix\Ica\Session\" + RDPICAnumber + @"\Connection";
RegistryKey localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey citrixKey = localKey.OpenSubKey(regLocal);
Console.WriteLine("Registry " + citrixKey + " Does Exist - going to get ClientType");
//getting clietAddress var from citrixKey
string clientType = "";
if (citrixKey != null && citrixKey.GetValue("clientType") != null)
{clientType = citrixKey.GetValue("ClientType").ToString();}
Console.WriteLine("Getting current user clientType from string = " + clientType);
}
rkTest.Close();
rkCurrentUser.Close();
Console.ReadLine();
}
}
}
你可以很容易地更换ClientProductID和clientType使用以下基准获得ClientProductID information.
相关问题
- 1. 远程桌面Web客户端
- 2. 如何通过PHP和Javascript知道客户端操作系统?
- 3. 远程桌面客户端与平移大型桌面?
- 4. 关于桌面客户端
- 5. 作为桌面客户端部署Web应用程序(客户端)
- 6. 获取远程客户端
- 7. Java远程客户端GUI
- 8. ClearCase远程客户端CLI?
- 9. 在远程桌面和客户端之间传输数据
- 10. 禁用远程桌面客户端快捷键
- 11. Perforce恢复操作给客户端未知。与P4客户端命令
- 12. asp.net验证客户端或客户端或服务器端
- 13. C++ IRC客户端设计
- 14. 非Windows OLAP桌面客户端?
- 15. 最佳bugzilla桌面客户端
- 16. Jena桌面SPARQL客户端(TDB)?
- 17. 获取客户端的操作系统名称
- 18. 确定客户端操作系统在PHP
- 19. PHP获取当前客户端操作系统语言
- 20. 当客户端只知道接口
- 21. PHP在远程设备/客户端上进行SNMP漫游?
- 22. 在客户端操纵树 - 请告知
- 23. 如何在客户端的浏览器/操作系统/系统上远程调试jQuery应用程序?
- 24. java访问客户端文件系统
- 25. 访问客户端文件系统
- 26. 客户端系统详细信息
- 27. C++ soap客户端
- 28. 远程访问启用:多个问题与Windows远程桌面客户端
- 29. 如何将此客户端作为多线程客户端?
- 30. EJB远程应用程序 - 客户端
THX,但使用的是Windows服务器2016年,而不是Citrix服务器我真的。 –
你好。有关当前用户连接的所有RDP环境变量的列表,请参阅以下命令。如果在操作系统和CLIENTNAME上查找操作系统类型或连接设备焦点,但在移动/ Windows RDP连接之间建议检查打印输出的任何差异。 (foreach)(DictionaryEntry de in Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)) { string log =“\ r \ n”+ de.Key +“=”+ de.Value; Console.WriteLine(“{0} = {1}”,de.Key,de.Value); }' – BrettKennard
你好,我检查了所有的EnvironmentVariables。但我总是从WindowsServer会话中获取信息,而不是从实际客户端获取信息。 OS = Windows_NT CLIENTNAME不适合我。 –