C# 使用C的任务管理器用户id#

C# 使用C的任务管理器用户id#,c#,taskmanager,C#,Taskmanager,请参阅图片以获取用户的id。我在网上搜索,但没有找到答案。下面是我的发现,但这个id仍然没有出现 if (OS.ToUpper().Contains("WINDOWS 10")) { Process[] localByName = Process.GetProcessesByName("System"); pid = localByName[0].Id.ToString(); } else if (OS.ToUpper().Contains("WINDOWS 7")) {

请参阅图片以获取用户的id。我在网上搜索,但没有找到答案。下面是我的发现,但这个id仍然没有出现

if (OS.ToUpper().Contains("WINDOWS 10"))
{
      Process[] localByName = Process.GetProcessesByName("System");
      pid = localByName[0].Id.ToString();
}
else if (OS.ToUpper().Contains("WINDOWS 7"))
{
      pid = System.Diagnostics.Process.GetCurrentProcess().SessionId.ToString();
}

使用cassia获取用户会话id

ITerminalServicesManager manager = new TerminalServicesManager();
            using (ITerminalServer server = manager.GetRemoteServer(machineName))
            {
                server.Open();
                foreach (ITerminalServicesSession session in server.GetSessions())
                {
                    if (string.IsNullOrEmpty(session.UserName))
                        continue;
                    if (session.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase))
                        sessionId = session.SessionId;
                }
            }

尝试此操作。

psexec\\remoteSystem-u username-p password-h-i 2(希望动态获取此用户id)-d“path\Test.exe”我正在获取的访问被拒绝在server.GetSessions上出错。我们是否需要提供用户名和密码?如果需要比如何?非常感谢你这么多的工作。但在添加此代码之前,需要在注册表中进行更改。AllowRemoteRPC值设置为1。