mstsc保存用户名和密码,实现自动登录远程桌面

https://blog.csdn.net/qq_23587541/article/details/82942365

MSTSC参数说明

首先可以使用mstsc /?来查看关于mstsc的参数说明

根据上述的命令说明,我这里实现的bat文件为

mstsc C:/a.rdp /console /v: xxx.xxx.xxx.xxx:3389

rdp文件生成方法

(下面转载出自https://www.cnblogs.com/ypyhy/p/6113358.html)

最近由于项目需要,需要做一个rdp文件上成,然后可以直接连远程桌面的功能,在度娘和谷叔搜索一番,所得甚少。闲话少说,来点干货:

看看系统给提供的是啥样的

我们要关心得是 用户名和密码,其他参数可以慢慢了解,可是这个密码是怎么加密的呢?

使用的是一个win32里面一个叫crypt32.dll的CryptProtectData方法,好了,关键的时候来咯~~~~

  1. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]

  2. internal struct DATA_BLOB

  3. {

  4. public int cbData;

  5. public IntPtr pbData;

  6. }

  7. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]

  8. internal struct CRYPTPROTECT_PROMPTSTRUCT

  9. {

  10. public int cbSize;

  11. public int dwPromptFlags;

  12. public IntPtr hwndApp;

  13. public string szPrompt;

  14. }

  15. [DllImport("crypt32.dll", CharSet = CharSet.Unicode, SetLastError = true)]

  16. private static extern bool CryptProtectData(ref DATA_BLOB pDataIn, string szDataDescr, ref DATA_BLOB pOptionalEntropy, IntPtr pvReserved, ref CRYPTPROTECT_PROMPTSTRUCT pPromptStruct, int dwFlags, ref DATA_BLOB pDataOut);

引用一下win32程序为我们生成密码。

  1. private static string Encrypt(string password)

  2. {

  3. byte[] bytes = Encoding.Unicode.GetBytes(password);

  4. DATA_BLOB dATA_BLOB = default(DATA_BLOB);

  5. DATA_BLOB dATA_BLOB2 = default(DATA_BLOB);

  6. DATA_BLOB dATA_BLOB3 = default(DATA_BLOB);

  7. dATA_BLOB.cbData = bytes.Length;

  8. dATA_BLOB.pbData = Marshal.AllocHGlobal(bytes.Length);

  9. Marshal.Copy(bytes, 0, dATA_BLOB.pbData, bytes.Length);

  10. dATA_BLOB3.cbData = 0;

  11. dATA_BLOB3.pbData = IntPtr.Zero;

  12. dATA_BLOB2.cbData = 0;

  13. dATA_BLOB2.pbData = IntPtr.Zero;

  14. CRYPTPROTECT_PROMPTSTRUCT cRYPTPROTECT_PROMPTSTRUCT = new CRYPTPROTECT_PROMPTSTRUCT

  15. {

  16. cbSize = Marshal.SizeOf(typeof(CRYPTPROTECT_PROMPTSTRUCT)),

  17. dwPromptFlags = 0,

  18. hwndApp = IntPtr.Zero,

  19. szPrompt = null

  20. };

  21. if (CryptProtectData(ref dATA_BLOB, "psw", ref dATA_BLOB3, IntPtr.Zero, ref cRYPTPROTECT_PROMPTSTRUCT, 1, ref dATA_BLOB2))

  22. {

  23. if (IntPtr.Zero != dATA_BLOB.pbData)

  24. {

  25. Marshal.FreeHGlobal(dATA_BLOB.pbData);

  26. }

  27. if (IntPtr.Zero != dATA_BLOB3.pbData)

  28. {

  29. Marshal.FreeHGlobal(dATA_BLOB3.pbData);

  30. }

  31. byte[] array = new byte[dATA_BLOB2.cbData];

  32. Marshal.Copy(dATA_BLOB2.pbData, array, 0, dATA_BLOB2.cbData);

  33. return BitConverter.ToString(array).Replace("-", string.Empty);

  34. }

  35. return string.Empty;

  36. }

有密码了,替换掉开始另存为的文件里的密码,我们自己的rdp文件就有咯!

附一个文件内容方法

  1. private static void rdpProfile(string filename, string address, string username, string password, string colordepth)

  2. {

  3. if (File.Exists(filename))

  4. {

  5. File.Delete(filename);

  6. }

  7. using (StreamWriter streamWriter = new StreamWriter(filename, true))

  8. {

  9. streamWriter.WriteLine("screen mode id:i:2");

  10. streamWriter.WriteLine("desktopwidth:i:0");

  11. streamWriter.WriteLine("desktopheight:i:0");

  12. streamWriter.WriteLine("session bpp:i:" + colordepth);

  13. streamWriter.WriteLine("winposstr:s:0,1,0,0,1234,792");

  14. streamWriter.WriteLine("compression:i:1");

  15. streamWriter.WriteLine("keyboardhook:i:2");

  16. streamWriter.WriteLine("audiocapturemode:i:0");

  17. streamWriter.WriteLine("videoplaybackmode:i:1");

  18. streamWriter.WriteLine("connection type:i:6");

  19. streamWriter.WriteLine("displayconnectionbar:i:1");

  20. streamWriter.WriteLine("disable wallpaper:i:1");

  21. streamWriter.WriteLine("allow font smoothing:i:1");

  22. streamWriter.WriteLine("allow desktop composition:i:1");

  23. streamWriter.WriteLine("disable full window drag:i:1");

  24. streamWriter.WriteLine("disable menu anims:i:1");

  25. streamWriter.WriteLine("disable themes:i:1");

  26. streamWriter.WriteLine("disable cursor setting:i:0");

  27. streamWriter.WriteLine("bitmapcachepersistenable:i:0");

  28. streamWriter.WriteLine("full address:s:" + address);

  29. streamWriter.WriteLine("audiomode:i:0");

  30. streamWriter.WriteLine("redirectprinters:i:0");

  31. streamWriter.WriteLine("redirectcomports:i:0");

  32. streamWriter.WriteLine("redirectsmartcards:i:0");

  33. streamWriter.WriteLine("redirectclipboard:i:1");

  34. streamWriter.WriteLine("redirectposdevices:i:0");

  35. streamWriter.WriteLine("redirectdirectx:i:1");

  36. streamWriter.WriteLine("drivestoredirect:s:");

  37. streamWriter.WriteLine("autoreconnection enabled:i:1");

  38. streamWriter.WriteLine("authentication level:i:2");

  39. streamWriter.WriteLine("prompt for credentials:i:0");

  40. streamWriter.WriteLine("negotiate security layer:i:1");

  41. streamWriter.WriteLine("remoteapplicationmode:i:0");

  42. streamWriter.WriteLine("alternate shell:s:");

  43. streamWriter.WriteLine("shell working directory:s:");

  44. streamWriter.WriteLine("gatewayhostname:s:");

  45. streamWriter.WriteLine("gatewayusagemethod:i:4");

  46. streamWriter.WriteLine("gatewaycredentialssource:i:4");

  47. streamWriter.WriteLine("gatewayprofileusagemethod:i:0");

  48. streamWriter.WriteLine("promptcredentialonce:i:1");

  49. streamWriter.WriteLine("use redirection server name:i:0");

  50. streamWriter.WriteLine("use multimon:i:0");

  51. if (!string.IsNullOrEmpty(username))

  52. {

  53. streamWriter.WriteLine("username:s:" + username);

  54. }

  55. if (!string.IsNullOrEmpty(password))

  56. {

  57. streamWriter.WriteLine("password 51:b:" + password);

  58. }

  59. }

  60. }

————————————————————————————————————————————————————————————————————————————————————————————————————————————————

更改mstsc远程端口方法

Windows 系统中的远程终端服务是一项功能非常强大的服务,同时也成了入侵者长驻主机的通道,入侵者可以利用一些手段得到管理员账号和密码并入侵主机。下面,我们来看看如何通过修改默认端口,防范黑客入侵。

众所周知,远程终端服务基于端口3389。入侵者一般先扫描主机开放端口,一旦发现其开放了3389端口,就会进行下一步的入侵,所以我们只需要修改该务默认端口就可以避开大多数入侵者的耳目。

步骤:

1、打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp,看见PortNamber值了吗?其默认值是3389,修改成所希望的端口即可,例如6111。

2、再打开

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP\Tcp,将PortNumber的值(默认是3389)修改成端口6111。

3、修改完毕,重新启动电脑,以后远程登录的时候使用端口6111就可以了。

mstsc保存用户名和密码,实现自动登录远程桌面相关推荐

  1. WinXP登录时不用输入用户名和密码,自动登录系统

    WinXP登录时不用输入用户名和密码,自动登录系统   单击"开始""运行",输入"rundll32 netplwiz.dll,UsersRunDll ...

  2. putty保存用户名和密码_使用PuTTY远程登录软件登录 Linux 实例

    本文以 PuTTY 软件为例,介绍如何在 Windows 系统的本地电脑中使用远程登录软件登录 Linux 实例. 使用密码登录 下载 Windows 远程登录软件,即 PuTTY. PuTTY 的获 ...

  3. iOS中Keychain保存用户名和密码

    摘要: 有用户就用用户名和密码,而现在的应用都少不了一个保存用户名和密码用于自动登录的功能,本文介绍使用iOS自带的Keychain方法保存用户名和密码. 说到保存用户名和密码,以前有用过本地的数据库 ...

  4. iOS 开发 -- 使用KeyChain保存用户名、密码并实现自动登录

    一.前言 我的话,只是写了个keychain使用的工具类,让我们使用的时候可以直接调用接口,以求方便. 但是关于keychain的一些概念还有一些官方API我都不打算说的,当然你要看下面一些东西的话可 ...

  5. Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入

    设计一个实现登录功能的Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入 var cookie = {};//设置 cookie.SetCookies=function(name ...

  6. 业务系统实现记住密码和自动登录功能

    业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...

  7. Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】

    2020-04-02-星期四[源码可私聊我,QQ:386335886] 写篇文章不容易,点个赞再走吧,求求了~  目   录 网络访问-思维导图 玩Android网站---查看登录Cookie 适配器 ...

  8. Cookie实现用户登录记住密码,实现自动登录

    什么是Cookie 在java是一个类,一对键和值组成,键值都是字符串类型,每个cookie只能保存一对键和值.每个cookie只能保存最大4K的数据 案列应用 保存用户名和密码在浏览器端,Cooki ...

  9. vue 记住密码下次自动登录

    <span><input type="checkBox" name="adviceCheck" id="adviceCheck&qu ...

最新文章

  1. aida64内存稳定性测试_250元就能买到16GB内存 这背后究竟是道德的沦丧还是人性的扭曲?...
  2. 就业模拟试题_Net(答案)
  3. java 模板实现原理,Java Web 模板代码生成器的设计与实现详解
  4. 云服务器带宽如何计算,云服务器怎么选择带宽
  5. python io多路复用框架_python之IO多路复用
  6. php函数查询sprintf,PHPsprintf函数用例解析
  7. expdp 简单例子
  8. 卡巴斯基发现ATM病毒Skimmer改进版
  9. java项目启动失败的解决方案
  10. Datalogic得利捷发布Android企业级前沿应用程序——OEMConfig, 并推出2019中国零售博览会展品系列
  11. emu8086:如何把数组里的值全部变为FFFF
  12. 用优盘装系统看不到计算机本身的硬盘,如果U盘安装系统找不到硬盘怎么办
  13. 机器学习虾扯淡之线性回归No.39
  14. WPF—TimeLine类
  15. 根据从数据库中获取到的值控制按钮被选中
  16. 好看的个人网站源码_新手想建个人网站,都要注意哪些关于自助建站源码的坑?...
  17. 去除眼袋(画笔涂抹法)
  18. 视频剪辑的实用技巧快速分享
  19. 管理小故事精髓 100例(转) 1
  20. UWB室内定位技术有什么风险呢?

热门文章

  1. Oracle数据库备份常用方法
  2. 图标设计灵感|简洁线性icon图标设计
  3. 航信笔记2018/09/03
  4. uboot mailbox
  5. firefox custom css,自定义FireFox的样式,火狐CSS样式使用教程
  6. java手机号归属地查询
  7. 前端,手机号码归属地查询
  8. 计算机网络(自顶向下学习笔记)---应用层协议之SMTP
  9. circular import问题
  10. C#开发的TD防御游戏详解——星际防御