如何获取login的本地Windows用户列表?

我正在尝试为Windows编写更快的用户切换应用程序。 Win + L和select用户是非常繁琐的。 如果我以pipe理员身份启动任务pipe理器,它会显示活动用户,我可以select一个和“连接”(如果我input密码)。

我如何获得所有用户(或所有活跃用户)的列表?

我正在使用C#(Visual Studio Express)。

Solutions Collecting From Web of "如何获取login的本地Windows用户列表?"

我会尝试WTSEnumerateSessions来获得所有可用的会话。

如果你不想处理P / Invokes,你可以使用Cassia ,它为你包装丑陋的:

using Cassia; foreach (ITerminalServicesSession session in new TerminalServicesManager().GetSessions()) { if (!string.IsNullOrEmpty(session.UserName)) { Console.WriteLine("Session {0} (User {1})", session.SessionId, session.UserName); } } 

您也可以使用NetWkstaUserEnum来查看当前登录的所有用户; 这不一定更好,但这是另一种选择。 它有一个好处,它可以在不支持终端服务的旧系统上工作,但如果你使用C#,这可能不是问题。 🙂