C# 以编程方式注销非管理员帐户上的远程桌面会话
我正在制作一个工具,用于显示所有远程桌面会话,并查找特定进程,并显示该进程是否在该会话上运行。我需要注销一个用户。我通过右键单击并选择以管理员身份运行来启动应用程序,我无法将requestedExecutionLevel设置为admin,因为当您没有管理员权限时,您仍然可以查看所有会话 我第一次尝试断开会话,但它仅在我以管理员帐户运行应用程序时有效,因此右键单击并选择以管理员身份运行不起作用:C# 以编程方式注销非管理员帐户上的远程桌面会话,c#,winapi,remote-desktop,C#,Winapi,Remote Desktop,我正在制作一个工具,用于显示所有远程桌面会话,并查找特定进程,并显示该进程是否在该会话上运行。我需要注销一个用户。我通过右键单击并选择以管理员身份运行来启动应用程序,我无法将requestedExecutionLevel设置为admin,因为当您没有管理员权限时,您仍然可以查看所有会话 我第一次尝试断开会话,但它仅在我以管理员帐户运行应用程序时有效,因此右键单击并选择以管理员身份运行不起作用: static public bool LogOff(string SessionID) { P
static public bool LogOff(string SessionID)
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C logoff " + SessionID;
process.StartInfo = startInfo;
process.StartInfo.Verb = "runas";
process.Start();
return true;
}
接下来,我尝试使用此选项。这也仅在我运行应用程序的帐户为admin时有效:
static public bool LogOff(string SessionID)
{
if (WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE, int.Parse(SessionID), true))
return true;
else
return false;
}
我的问题是,当我在选择“以管理员身份运行”的同时以用户帐户运行此程序时,是否有任何方法可以断开会话?oh oke,因此如果我以管理员身份运行,我没有足够的权限注销其他用户?不,应该可以-假设用户在身份验证提示下输入管理用户名和密码。对不起,我误解了这个问题。那么出了什么问题?返回了什么错误代码?问题是,当我在选择“以管理员身份运行”时启动程序时,我无法注销用户会话。但这很奇怪,因为程序有管理员权限当我向WindowsPrincipal查询时,它告诉我我有管理员权限。而且它不会返回任何错误。