点晴MIS内部交流论坛 加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 技术文档交流 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:7672 % 
admin

积分:74793
等级:网站管理员
文数:13697
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 C# 管理远程桌面


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

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

  • 1

此方式方便。但是没办法传密码。如果连接的服务器没有在本机保存密码,或者保存的密码不对,就需要手动输入密码进行连接。 
注:此处有个坑,网上很多人的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();

  • 1
  • 2
  • 3
  • 4

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

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


该文章在 2018/2/10 11:56:53 编辑过

  离 线  2018-2-10 11:56:52 
  本文章共有 0 页, 0 张回文,每页有 10 张回文 >> [ ]
页码:  
Copyright 2003-2024 ClickSun All Rights Reserved