0

我想使用没有用户名和密码的 mstsc.exe 连接到远程机器。因为我想在没有用户名和密码的情况下连接它,所以它应该以锁定会话状态连接。

所以我想要这样的东西,

  1. 用户将输入 IP 地址并点击连接按钮。
  2. 机器应与锁定状态连接。

我已经尝试过下面的代码,但没有奏效。

        Process rdcProcess = new Process();
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
        rdcProcess.StartInfo.Arguments = "/v " + "123.0.0.1 /public"; // ip or name of computer to connect
        rdcProcess.Start();

用户有什么办法可以使用 C# 做到这一点?

谢谢

-Sanket

4

1 回答 1

0

这是不可能的——Microsoft Windows 中的远程桌面服务器不允许未经身份验证的传入连接,原因很明显。未设置密码的用户帐户无法登录远程桌面,并且没有允许匿名身份验证的配置选项。

作为替代方案,我建议使用 VNC 服务器,它的工作方式不同(它共享启动 VNC 服务器的会话并镜像会话的帧缓冲区,而不是与其他会话分开并使用 GDI 重定向的真正远程桌面会话) . 您可以将 VNC 服务器配置为不需要密码即可连接,但当然强烈建议不要这样做。

但是,我不知道有任何 VNC 服务器最多只允许 1 个连接并阻止辅助连接,但由于几乎整个 VNC 生态系统都是开源的,您可能可以修改现有服务器以按照您希望的方式运行。一种可能性是设置一个没有密码的 VNC 服务器,然后一旦用户连接它,它就会设置一个新的随机生成的密码,从而阻止其他客户端连接。当前客户端断开连接时,它将清除密码。

于 2016-10-03T05:00:20.783 回答