using Citrix.Common.Sdk;
using Citrix.XenApp.Sdk;
using Citrix.XenApp.Commands;
using Citrix.Management.Automation;
我正在尝试将客户端地址放入一个数组中以添加到列表中。问题是ClientAddress在测试时保持返回null。我可以在线看到用户,他们的客户地址在App Center中可见。使用ServerName返回没有问题。有人知道为什么ClientAddress不起作用吗?
private List<string[]> findUser(string strUser)
{
List<string[]> list = new List<string[]>();
GetXASessionByFarm sessions = new GetXASessionByFarm(true);
foreach (XASession session in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(sessions))
{
if (session.AccountName == objWINS + "\\" + strUser)
{
string[] result = new string[3];
result[0] = strUser;
result[1] = session.ServerName; //This is working, it comes back with the server name.
result[2] = session.ClientAddress; //This isn't working, it comes back blank.
MessageBox.Show(result[2]);
list.Add(result);
}
}
return list;
}
答案 0 :(得分:1)
这个问题的答案是在声明GetXASessionByFarm后添加以下行:
sessions.Full = true;
例如:
private List<string[]> findUser(string strUser)
{
List<string[]> list = new List<string[]>();
GetXASessionByFarm sessions = new GetXASessionByFarm(true);
sessions.Full = true;
foreach (XASession session in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(sessions))
{
if (session.AccountName == objWINS + "\\" + strUser)
{
string[] result = new string[3];
result[0] = strUser;
result[1] = session.ServerName; //This is working, it comes back with the server name.
result[2] = session.ClientAddress; //This isn't working, it comes back blank.
MessageBox.Show(result[2]);
list.Add(result);
}
}
return list;
}
原因是因为默认情况下该命令不会返回完整的信息量。我不得不翻译这个并根据Get-XASessions powershell命令做一些猜测。当我自己解决问题时,总觉得很好。显然,我在这个软件开发领域处于狂野西部边缘的边缘。没有人这样做。