【问题标题】:Can't connect to rdp in windows service无法连接到 Windows 服务中的 rdp
【发布时间】:2016-06-30 14:57:28
【问题描述】:

我正在尝试使用 rdp 登录服务器。我有一个使用 rdp 自动登录到服务器的 Windows 进程。这是行不通的。当我监控服务器时,我没有看到用户已登录。这是我的代码:

public static void ConnectToRDP(string server, string user, string password)
    {
        Process rdcProcess = new Process();
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
        rdcProcess.StartInfo.Arguments = string.Format("/generic:TERMSRV/{0} /user:", server) + string.Format(@"TEST\{0} /pass:{1}", user, password);
        rdcProcess.Start();

        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
        rdcProcess.StartInfo.Arguments = string.Format("/v {0}", server); 
        rdcProcess.Start();
    }

当我从本地计算机启动代码时,代码运行良好,但部署到服务器后,它没有运行。有什么想法吗?

【问题讨论】:

  • 可能这是部署服务器上的权限问题。您所在位置是否有任何网络或服务器管理员...?
  • 感谢您的回答。部署服务器是安全的,这是肯定的。我会检查权限,我会回复你。
  • 大家好,我又回来了。我已经检查过,但所有权限都根据系统管理员正确设置。应该设置哪些权限?你能给我更多的解释吗?

标签: c# service rdp


【解决方案1】:

我的代码中有一个错误。我已将域设置为 TEST 硬编码,而不是将其更改为生产域。该代码工作正常,它连接到远程桌面。我已经对代码进行了更改:

public static void ConnectToRDP(string domain, string server, string user, string password)
    {
        Process rdcProcess = new Process();
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
        rdcProcess.StartInfo.Arguments = string.Format("/generic:TERMSRV/{0} /user:", server) + string.Format(@"{0}\{1} /pass:{2}", domain, user, password);
        rdcProcess.Start();

        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
        rdcProcess.StartInfo.Arguments = string.Format("/v {0}", server); 
        rdcProcess.Start();
    }

感谢您的宝贵时间。

【讨论】:

    猜你喜欢
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    相关资源
    最近更新 更多