如何在c#中使用LsaEnumerateLogonSessions ?

本文关键字:LsaEnumerateLogonSessions | 更新日期: 2023-09-27 17:50:25

在c# Windows窗体应用程序中,我试图获得当前登录到工作站(本地和域用户)的用户列表。关于这一点的每次搜索都导致我提到"只使用LsaEnumerateLogonSessions"的线程。

所以…你是如何使用它的呢?MSDN页面非常稀疏,似乎没有提供任何线索。

如何在c#中使用LsaEnumerateLogonSessions ?

您应该使用Cassia,一个开源包装器。

ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer("your-server-name"))
{
    server.Open();
    foreach (ITerminalServicesSession session in server.GetSessions())
    {
        Console.WriteLine("Session ID: " + session.SessionId);
        Console.WriteLine("User: " + session.UserAccount);
        Console.WriteLine("State: " + session.ConnectionState);
        Console.WriteLine("Logon Time: " + session.LoginTime);
    }
}

我不确定这将如何处理域用户;

要回答您的问题,您需要将其声明为一个p/Invoke方法,该方法接受一个out in和一个out long[]

相关文章:
  • 没有找到相关文章