編程實現Windows系統自動登入

來源:互聯網
上載者:User
文章目錄
  • 編程實現Windows系統自動登入

編程實現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());
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.