C# 管理远程桌面

工作中需要经常连接多台服务器,每台服务器密码定时修改。
最初的时候,是把账号密码记录在一个文本文件中,第一次连接,复制粘贴。之后就可以直接从连接历史中选出来。
但是后来服务器多了之后,连接历史中都是IP地址,经常认错。就萌生了使用工具管理的想法。
但是服务器账号密码这东西太敏感,对网上下载的工具不信任,就产生自己写一个工具的想法。
账号密码的管理,无非就是数据最基本的增删改查,无需赘言。
远程连接服务器时,遇到了麻烦。
连接服务器的方法很简单,生成RDP文件,然后

System.Diagnostics.Process.Start("mstsc.exe", RDP文件路径)

此方式方便。但是没办法传密码。如果连接的服务器没有在本机保存密码,或者保存的密码不对,就需要手动输入密码进行连接。
注:此处有个坑,网上很多人的blog里写道,可以在rdp文件中加入password属性,然后把密码通过某种方式加密后最有password的属性值,即自动连接,无须再输入密码。但是这个方法我就没成功过。也不知道那些个写或者转这个方法的人到底有没有尝试。
而后,又查了很多网站和资料。终于找到一个办法。
首先调用cmdkey.exe,将远程桌面的账号密码作为凭据,添加到本机的凭据管理中,然后在通过以上方法启动远程桌面即可。

Process process = new Process();
process.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
process.StartInfo.Arguments = "/generic:TERMSRV/" + IP地址 + " /user:" + 用户名+ " /password:" + 密码;
process.Start();

至此,远程桌面管理的功能就基本实现了。其他的无非是一些界面美化,操作习惯,等等。不再赘述。

不过试运行了一段时间后发现一个问题。在WindowsXP的电脑上是没有cmdkey.exe这个东西的。直接导致没办正常使用了。只能在Windows7和Windows10上正常使用。期他的系统没有测试,但是想来只要是版本高于Windows2003的系统也是能正常使用的。
想让WindowsXP正常使用,从Windows2003里复制一个到WindowsXP里就可以了。一定要是Windows2003的。其他系统里的不行。

源码下载

源码

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值