Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式注销非管理员帐户上的远程桌面会话_C#_Winapi_Remote Desktop - Fatal编程技术网

C# 以编程方式注销非管理员帐户上的远程桌面会话

C# 以编程方式注销非管理员帐户上的远程桌面会话,c#,winapi,remote-desktop,C#,Winapi,Remote Desktop,我正在制作一个工具,用于显示所有远程桌面会话,并查找特定进程,并显示该进程是否在该会话上运行。我需要注销一个用户。我通过右键单击并选择以管理员身份运行来启动应用程序,我无法将requestedExecutionLevel设置为admin,因为当您没有管理员权限时,您仍然可以查看所有会话 我第一次尝试断开会话,但它仅在我以管理员帐户运行应用程序时有效,因此右键单击并选择以管理员身份运行不起作用: static public bool LogOff(string SessionID) { P

我正在制作一个工具,用于显示所有远程桌面会话,并查找特定进程,并显示该进程是否在该会话上运行。我需要注销一个用户。我通过右键单击并选择以管理员身份运行来启动应用程序,我无法将requestedExecutionLevel设置为admin,因为当您没有管理员权限时,您仍然可以查看所有会话

我第一次尝试断开会话,但它仅在我以管理员帐户运行应用程序时有效,因此右键单击并选择以管理员身份运行不起作用:

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查询时,它告诉我我有管理员权限。而且它不会返回任何错误。