自动化远程桌面连接

15

我们在开发环境中使用许多远程桌面,并且有多个环境中部署的多个服务器。记住它们的IP地址、用户名和密码很繁琐。我想编写一个带有按钮的小实用程序。当单击时,我想自动从某个列表中获取用户名和密码来启动这些远程桌面。

我知道MS远程桌面有一个命令行等效工具: mstsc这个问题建议按照以下方式执行:

cmdkey /generic:TERMSRV/"computername or IP address" /user:"username" /pass:"password"
mstsc /v:"computer name or IP"

第一行运行成功并显示凭据已添加。然后当我运行第二行时,它会为指定的IP地址运行远程桌面连接并要求输入用户名和密码。我希望它能够自动应用在cmdkey中指定的凭据,简单地打开指定IP地址上的远程桌面连接。

这里有什么问题?使用这样的PowerShell脚本可能吗?

我可以通过HTML页面调用此脚本吗(因为我将放置许多其他资源到该网页上,这些资源将作为我们开发人员的一个站点链接,以便我们每次需要它们时不必浪费时间和精力去寻找它们)?通过注册应用程序到URI方案实现可能吗?

还有其他(标准)方法吗?


你不能使用PowerShell创建按钮。PowerShell是一种基于命令行的语言。如果要创建按钮,请查看C#和Visual Studio Express。 - Solaflex
计算机是否在域中? - Solaflex
好的,请尝试这个: cmdkey /generic:“计算机名称或IP” /user:“用户名” /pass:“密码” - Solaflex
请等几分钟。 这与PowerShell无关。 - Solaflex
2
为什么不使用类似Royal TS的RDP管理器呢? - James Woolfenden
显示剩余8条评论
3个回答

17

你尝试的问题在于参数/generic

根据cmdkey的官方网站/generic

标识与此条目相关联的计算机或域名。

在我的示例中,我将称呼这台计算机为计算机01

您是否希望将凭据关联到TERMSRV/Computer01? (就像您的示例/generic:TERMSRV/"计算机名称或IP地址"所说的那样)

不,您希望将其关联到普通计算机名称 计算机01

然后,您需要删除 TERMSRV/

工作结果为:

cmdkey /generic:"computername or IP" /user:"username" /pass:"password"

关于你的其他问题:

  1. 请参见上面的答案。
  2. 我不知道只使用HTML是否可能。 我认为不行。但是我也将一些PowerShell脚本实现到了ASP.NET中。这样可以实现。
  3. 请参见上面的答案。

我尝试在Windows 10上运行它,部分工作正常。每次使用批处理脚本时都会要求输入密码。您有任何想法如何使其在不立即要求密码的情况下正常工作吗? - Varun Jain

2
自2013年以来,许多系统操作员已经建议使用现成的工具来完成这项工作。在2013年时,Windows商店还不是很好(我的看法)。但现在它还可以。
商店中有Microsoft自己的远程桌面应用程序。该应用程序是通用的,即可在PC、移动电话和全息设备上运行。
什么好处?微软已将相同的应用程序提供给Android用户。我已经尝试过PC和Android版本。两者都非常好用。
所以试试吧。我现在是这些应用程序的常规用户。

1
如果您添加最低要求将会很好:最低操作系统版本:Windows 10、Windows 8.1、Windows 10 Mobile、Windows Phone 8.1 架构:ARM、x86、x64。 - tukan

0
这在Windows中对我部分有效。在命令提示符中输入以下两个命令后,它将为指定的IP地址打开RDP。但是,它仍然要求我输入与我在cmd命令中输入的用户名不同的密码(已保存在远程桌面连接中的用户名)。因为管理员不允许使用保存的凭据登录到远程计算机。
start cmdkey /generic:"enter your IP address" /user:"enter your username" /pass:"enter your password"
start mstsc /f /v:"enter your IP address"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接