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

时间:2015-04-23 08:20:38

标签: c# winapi remote-desktop

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

我首先尝试断开会话(但它只在我在管理员帐户上运行应用程序时才有效,因此右键单击并选择“以管理员身份运行”不起作用):

In [332]:

df
Out[332]:
   0        1           2       3      4       5       6    7   8   9   \
0   3  EA1603S  14/01/2014  2443.6  27.42  249579  673473  200   2   0   
1   3  EA1603V  14/01/2014  2443.6  27.42    1000  673473   10   1   0   
2   3  EA1603W  14/01/2014  2443.6  27.42  349579  673473  200   2   0   

          10     11  12     13  
0  2100-2200  16032   2  16032  
1  2100-2200  16035   5  16035  
2  2100-2200  16036   6  16036  

接下来我尝试使用此功能(这也适用于我正在运行应用程序的帐户是管理员):

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;
}

我的问题是,当我在选择“以管理员身份运行”时在用户帐户上运行此程序时,有什么方法可以断开会话?

0 个答案:

没有答案