编程实现Windows系统自动登录

原理

通过注册表修改实现。Windows内置了自动登录的机制,在登录系统时,winlogon会检查注册表下有没有设置自动登录,如果设置了就上就会读取用户名和密码,然后进行验证,通过后就登录进系统了。

方法

注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

键值:

键值 设置值 作用
AutoAdminLogon 1; 1表示自动登录,0表示禁止自动登录
DefaultDomainName 设置值 域名,如果没有就留空
DefaultUserName abc 登录系统用的用户名
DefaultPassword 123 登录系统用的用户名使用的密码,如果想加密保存就删除此键值
DontDisplayLastUserName 1  

注意,下面两个键值必须删除掉,否则会显示一个通知对话框。

  • LegalNoticeCaption
  • LegalNoticeText

另外还有2个键值,作用分别如下:

  • IgnoreShiftOverride 忽略shift键,默认在开机时按shift机会显示登录对话框(即使设置成自动登录),设置成1后,按shift键也没用了。
  • AutoLogonCount 设置自动登录次数
  • ForceAutoLogon 该值要删除掉

特别注意

由于密码是明文保存的,很不安全,所以windows中提供了一个秘密的地方来保存加密后的密码,就是在lsa中。sysinternals中autologon工具就是把密码保存进去的。 在Winlogon中,它会先到lsa中用找“DefaultPassword”的信息,找到后就用这个密码,如果找不到就到注册表下去找“DefaultPassword”值。

读写lsa的代码,这个代码是pinvoke.net 中找到的。原文:
http://www.pinvoke.net/default.aspx/advapi32/DefaultPassword.html

其中C++代码由微软提供:http://msdn.microsoft.com/en-us/library/aa378826(VS.85).aspx 
C#代码为:http://www.pinvoke.net/default.aspx/advapi32/LsaRetrievePrivateData.html 
获取LUAUtil类后,如下调用即可,

LSAutil lsa = new LSAutil("DefaultPassword");
lsa.SetSecret(“abc”);
Console.Write(lsa.GetSecret()); http://www.cnblogs.com/greenerycn/archive/2009/11/18/windows_auto_logon.html

编程实现Windows系统自动登录的更多相关文章

  1. Windows 系统自动登录配置

    1. open regedit 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 3.在打开的项右 ...

  2. winform系统自动登录实现

    转载:http://www.cnblogs.com/wuhuacong/archive/2012/08/21/2648339.html 系统自动登录有时候很必要,在用户自己绝对信任的电脑上,自动登录对 ...

  3. Windows开机自动登录账户

    如何在Windows设了账户密码的情况下开机自动登录账户,有以下两种方法. 通过Windows设置自动登录 按“Win+R”组合键打开“运行”框内输入“netplwiz”. 打开以下窗口,将“要使用本 ...

  4. windows 2003自动登录的具体步骤

    在win2003系统中,使用最多的可能就是远程操作了,关于远程操作的那些事很多用户还是有些迷茫的.如果win2003系统远程重启后,要重新登录系统十分的麻烦,如何才能实现重启后的自动登录呢?让高手告诉 ...

  5. windows 开机自动登录,或者说是开机后自动进入桌面

    这篇文章,对于XP以及XP以上版本有效,包括Windows Server服务器操作系统. 1.原理 --Windows自动登录的原理是,开始后,自动输入登录所使用的账号的用户名和密码,并且自动进入桌面 ...

  6. Windows开机自动登录及取消自动登录的设置

    开机自动登录 1.开始菜单搜索框输入 “netplwiz” 按回车 或“Win+R”组合键打开“运行”框内输入“netplwiz” 或“运行”框内输入“control userpasswords2”( ...

  7. windows系统中远程登录ubuntu18服务器的桌面

    下载:http://www.c-nergy.be/products.html 也可以直接服务器里 wget https://www.c-nergy.be/downloads/xRDP/xrdp-ins ...

  8. windows的自动登录和隐藏用户

    Launch Regedit. #r -> regedit 1. Navigate to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Cu ...

  9. windows开机自动登录

     控制台输入control userpasswords2 ,去掉下图中的√,输入登陆所用用户名密码即可.

随机推荐

  1. 关于ql createNativeQuery生成json数据

    当用createNativeQuery执行原生sql语句时,返回的数据json格式是只有值,没有键名的,在这种情况下要用Map.class对sql语句中的字段进行Map映射,这样返回的数据的json格 ...

  2. echo向文件中写入

    echo命令向一个文件写入内容的方法详解,感兴趣的朋友可以参考下. 覆盖型写法 (文件里原来的内容被覆盖)echo "aaa" > a.txtecho aaa > a. ...

  3. QF——网络之网络请求的几种方式,图片缓存

    同步请求和异步请求: 同步请求会阻塞主线程:不会开启新的线程,还是主线程,所以直到请求成功后,才能执行其它操作. 异步请求不会阻塞主线程.开启新的线程去请求服务器,而不影响用户的交互操作等其他动作. ...

  4. 如何实现select组件的选择输入过滤作用

    实现select组件的选择输入过滤作用的js代码如下: /** *其中//******之间的部分显示的是在没有选择输入过滤功能的代码上加入的功能代码 ** / (function ( $ ) { $. ...

  5. 内存(MRC)

    一.计数器的基本操作1> retain : +1, 方法返回的是对象本身2> release :-13> retainCount : 获得计数器4> dealloc  * 当一 ...

  6. 宏定义&CodeBlocks&Glib

    一.gcc的参数中-Dmacro             等价于代码里   #define macro -Dmacro=value  等价于代码里   #define macro value -Uma ...

  7. Oratop工具——实时数据库性能监控工具

    在任何系统优化过程中,“80/20原则”是我们一定要关注的问题.简单的说,就是我们系统80%的性能问题.现象,都是有少数几个甚至一个问题造成的.这就需要我们面对复杂的系统性能问题的时候,要学会“拨开云 ...

  8. stack的应用

    STL除了给我们提供了一些容器(container)以外,还给我们提供了几个容器适配器(container adapters),stack便是其中之一 看过STL源码的人都知道,stack其实是内部封 ...

  9. MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件

    MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效. 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度) 如果设置了背景色,就不保留透明背景 默认背景色是透明的 [cpp] ...

  10. BZOJ 3223 Tyvj 1729 文艺平衡树(Splay)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3223 [题目大意] 给出一数列,问m次区间翻转后的结果. [题解] Splay 区间翻 ...