1. 程式人生 > >C#實現Windows啟動時自動實現認證

C#實現Windows啟動時自動實現認證

主要是通過登錄檔中的自動認證屬性來實現系統自動認證。

 public class AutoLogonSet
    {

        /// <summary>  
        /// 在登錄檔中新增、刪除開機自啟動鍵值  
        /// </summary>  
        public static int SetAutoBootStatu(bool isAutoBoot, string domainName, string userName, string pwd,out string sysType)
        {
            try
            {
                string execPath = Application.ExecutablePath;
                //RegistryKey rk = Registry.LocalMachine;
                RegistryKey rk = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,Environment.Is64BitOperatingSystem?RegistryView.Registry64:RegistryView.Registry32);//相容32位和64位系統
                sysType = Environment.Is64BitOperatingSystem ? "當前系統為64位系統" : "當前系統為32位系統";
                string path = string.Format("{0}", "Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon");
                RegistryKey rk2 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,Environment.Is64BitOperatingSystem?RegistryView.Registry64:RegistryView.Registry32).OpenSubKey(path, true);//相容32位和64位系統
                if (isAutoBoot)
                {
                    rk2.SetValue( "AutoAdminLogon", "1");
                    rk2.SetValue( "DefaultUserName", string.Format(@"{0}\{1}",domainName,userName));
                    rk2.SetValue("DefaultPassword", pwd);
                }
                else
                {
                    rk2.SetValue("AutoAdminLogon", "0");
                }
                rk2.Close();
                rk.Close();
                return 0;
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("[登錄檔操作]向登錄檔寫開機啟動資訊失敗, Exception: {0}", ex.Message));
                sysType = Environment.Is64BitOperatingSystem ? "當前系統為64位系統" : "當前系統為32位系統";
                return -1;
            }
        }  

    }

}

64位系統和32位系統相容

相關推薦

C#實現Windows啟動自動實現認證

主要是通過登錄檔中的自動認證屬性來實現系統自動認證。 public class AutoLogonSet    {        /// <summary>          /// 在登錄檔中新增、刪除開機自啟動鍵值          /// </summ

實現tomcat啟動自動執行程式碼

方法1:tomcat 自動執行servlet 寫一個servlet,在init()方法中寫好想要執行的程式,程式如下: eclipse新建一個web\Dynamic Web Project , name = myweb1 , 把tomcat中的 servlet-api.jar複製到lib中,新建一個類MyS

C程序編譯系統簡單實現信息儲存

printf 程序 int fwrite 簡單 pan 文件 fclose 讀取 1 /*將學生信息從文件讀出*/ 2 void IO_ReadInfo() 3 { 4 FILE *fp; 5 int i; 6 7 if((fp=f

bat結合maven 實現windows下maven自動打包指令碼

不知道你是否在開發中一直遇到這樣的問題,在maven打包的時候有2中方式,一種就是在ide工具裡面打包,然後在ide的輸出資訊裡面找到對應的war或者jar包所在位置,然後拷貝出來。另一種就是先找到專案所在的位置然後通過maven clean install 命令執行完畢之後

C# 讀取windows效能計數器,實現伺服器效能監控

一、背景介紹 在.net平臺開發,網站部署環境都是windows+IIS,很想知道伺服器執行時,相關的各種引數。比如:CPU利用率,磁碟讀寫速度,網路頻寬佔用,網站連結數等等。能夠有圖表的方式顯示就更好了。 用過阿里雲的雲監控的童鞋,對下面這個介面肯定不會陌生:

c++深淺拷貝&寫拷貝實現

一:淺拷貝&深拷貝 淺拷貝:在拷貝構造的時候,直接將原內容的地址交給要拷貝的類,兩個類共同指向一片空間。但是存在很大的缺陷:①一旦對s2進行操作,s1的內容也會改變;②析構時先析構s2,

ionic3實現app啟動進行網路監測功能

需要聯網的app一般都需要進行網路監測,尤其是在app啟動時,若未發現網路連線應給出提示,本文在參照官網的基礎上實現了app啟動進行網路監測,實現該功能其實非常簡單,只需用到cordova的一個外掛——cordova-plugin-network-information,實現

【Spring】@PostConstruct實現Spring啟動靜態注入

public class CommonParaUtil{ @Autowired private ParaPropMapper paraPropMapper; private static CommonParaUtil util; //這個屬性就

reat + cesium。 實現 初始化自動定位,鼠標移動實時展示坐標及視角高度, 淹沒分析

action mars extend mov sce 初始 globe 設置 定位 只貼實現淹沒分析這塊的代碼。 import styles from ‘./cesium.less‘; import React from ‘react‘; import Cesiu

javaweb項目啟動自動啟動rmi服務器實例

java warn 地址 public 配置 -name ace war -o 1.我們先寫一個web項目啟動時需要運行的類RmiRegisterServlet.java package com.mx.Servlet; import javax.servlet.Serv

Tomcat啟動自動運行某程序

指示 timertask 接口 throw time test ref 自定義 pre 項目需要和tmall實現長連接,接收tmall推送的Order消息,然後對消息進行邏輯處理。 目前寫了一個servlet,實現了permit的驗證,然後對tmall進行長連接操作,啟動後

JAVA工程啟動自動建立資料庫、資料表

很多時候,我們會有這樣的需求: 系統首次部署時,自動建立資料庫、表 執行單元測試時,資料庫、表維持初始化狀態方便測試。 本文對這種需求的實現做了可行性驗證。 **** 注意這邊需要配置具有建庫建表許可權的資料庫使用者名稱、密碼***** 資料庫配置檔案 jdb

讓樹莓派每次開機啟動自動發郵件報告時間和ip資訊

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:12px;">參考了這篇文章:<

虛擬機器中的Ubuntu16.04啟動自動設定解析度1920x1080

vmware不能自動適應Ubuntu16.04的解析度,而且Ubuntu16.04的display設定中也沒有1920x1080的解析度,因此需要通過修改/etc/profile檔案檔案來實現登入時自動設定解析度為1920x1080。 具體步驟如下: Ctrl+Alt+T

springWeb專案啟動自動載入方法及web專案啟動不能獲得spring的bean的解決方式

方式一:利用註解的方式和構造方法 @Service("testService") public class TestService { @Autowired private Service service; /** * spring在初始化bea

emacs啟動自動安裝package

簡介 本文主要介紹如何在emacs中,自動安裝/更新package init.el中配置追加 (require 'package) (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")

android啟動自動抓取logcat

建立一個指令碼 #!/bin/sh log_path=/cache/boot_logcat.log kernel_log=/cache/boot_kernel.log while true do df | grep cache cache_ch

spring啟動自動載入方法

@Component @Lazy(value=false) public class LoadConfigDataEngine { @PostConstruct public void in

Docker-mysql啟動自動執行SQL

說明 在用docker建立mysql容器的時,有時候我們期望容器啟動後資料庫和表會自動構建,初始化資料也已自動錄入,也就是說容器啟動後我們就能直接連上容器中的資料庫,使用其中的資料了。自動執行SQL這一過程存在於第一次使用映象構建容器時,下一次restart容器時則不會存在

安裝完Ubuntu啟動自動進入grub命令列模式的解決辦法

1. 先使用ls命令,找到Ubuntu的安裝在哪個分割槽: grub>ls會羅列所有的磁碟分割槽資訊,比方說:(hd0,1),(hd0,5),(hd0,3),(hd0,2)2. 然後依次呼叫如下命令: X表示各個分割槽號碼如果/boot沒有單獨分割槽,用以下命令:ls