【问题标题】:How can I control a Windows client from another client through a web server?如何通过 Web 服务器从另一个客户端控制 Windows 客户端?
【发布时间】:2016-01-20 13:29:43
【问题描述】:

总结

我正在尝试在 .net C# 中创建一个系统,该系统是一种 IT 工具,用于控制世界上任何地方的 Windows 客户端。代理需要通过 https 工作,并且控制权将通过代理 Web 服务器交给世界其他地方的管理控制台。我需要的控制类型的一个示例是命令行、注册表、文件资源管理器和 VNC。

当管理控制台请求时,客户端需要立即响应(如果它在线)。我知道这需要某种与 Web 服务器的持久连接。

详情

我目前正在使用运行 WCF 的 Web 服务器。在客户端上运行的代理运行良好,因为客户端可以在计时器上告诉 Web 服务器其状态,但是我很难知道管理控制台如何请求代理通过 WCF 连接控制注册表等。这是否需要使用不同的技术打开新连接?

我发现有诸如 SignalR 之类的技术看起来非常有趣并且可以提供帮助,但它旨在发送小于 32KB 的信息/消息,这显然不适用于注册表等远程工具。

我看到其他人使用 Kaseya 和 Naverisk 等远程控制技术,这非常令人沮丧。他们使用什么样的方法?

要求

代理不允许任何端口进入,因此它必须通过 https 与 Web 服务器建立连接,以准备接受来自管理控制台的请求。

问题

谁能指出我正确的方向,什么技术可以通过网络服务器进行这种类型的通信?

我只知道 .net,但如果需要,我会准备研究其他技术。

【问题讨论】:

    标签: asp.net .net wcf sockets signalr


    【解决方案1】:

    您可以使用 websockets,一旦建立连接,代理的出站连接就会升级为双向连接。然后管理控制台可以通过套接字发送消息。有许多用于 .NET 的 websocket 库可以提供帮助,并且可以使用 WCF NetHTTPSBinding。

    或者,Azure 中提供的带有 WCF 绑定的 Azure 服务总线中继可以做到这一点 - 双方建立出站连接,然后相互发送和接收消息。当一端在 Azure 中时,这更可靠,但在 Azure 之外使用两端的中继也可以。

    在正确的安全上下文 (ACL) 下运行的 Windows 应用程序(例如 Windows 服务)访问 Windows 注册表是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2016-03-19
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多