.NET 命名空间中可用的终端服务命令?

发布于 2024-08-14 16:48:01 字数 69 浏览 7 评论 0原文

.NET 是否有与终端服务命令“QWINSTA”、“RWINSTA”和“TSDISCON”等效的命令?

谢谢

Are there .NET equivalent commands to terminal services commands 'QWINSTA', 'RWINSTA', AND 'TSDISCON'?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

路还长,别太狂 2024-08-21 16:48:01

目前没有等效的 .NET/托管 API。不过,您也许可以使用 wtsapi32.dll 中的函数。查看 pinvoke.net 了解如何从以下位置调用这些服务的一些示例托管代码...从以下内容开始:

WTSEnumerateSessions

WTSQuerySessionInformation

WTSLogoffSession

或者,如果您不想推出自己的 Win32 包装器,请查看“cassia" 项目。我没有使用过它,因此无法保证该解决方案的质量,但它似乎是一个用于访问本机 Windows 终端服务 API 的 .NET 库。

以下是如何在 C# 中使用 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);
    }
}

Currently there is no .NET / managed API equivalent. You can probably use the functions in wtsapi32.dll though. Check out pinvoke.net for some examples of how to invoke these from managed code... starting with the following:

WTSEnumerateSessions

WTSQuerySessionInformation

WTSLogoffSession

Or, if you don't want to roll your own Win32 wrapper, check out the "cassia" project. I have not used it and therefore cannot vouch for the quality of this solution, however it seems to be a .NET library used for accessing the native Windows Terminal Services API.

The following is an example of how you would use the cassia library in C# (taken from the project site):

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文