使用C 批量建立帳號

2021-05-25 16:11:41 字數 3614 閱讀 6105

如果乙個公司打算使用微軟的產品來構建自己的辦公自動化系統,那麼,建議採用主域控制的方式。那麼,必然就要用到活動目錄(ad),這樣,it 部門就需要為公司的每乙個員工來建立域帳號。如果公司比較大的話,這是乙個很大的工程。而且,我們會發現,有些工作量基本上是在重複勞動,人力資源部為了 給it部門提供人員名單,會錄入一次人員的各種資訊,比如姓名、工號、所屬部門、部門領導、**號碼等等,那麼,it人員在拿到這張表後,他又要重新錄入 一次。並且常常會因為人為的原因導致帳戶中出現錯誤。下面,我們就用c#編寫了乙個建立帳戶的程式。在這個程式中,它不但要建立域帳戶,它還會在相應的 exchange中建立相應的郵件帳戶。通過這個程式,人力資源部門只需要按照it部門提供的資料庫格式(access)填寫相關專案就可以了。首先,我 們需要定義一些變數:string strmemberof="";

string struserparm="";

string strmanager="";

string strscriptpath="";

string strdepartment="";

string strcompany="";

// string straccountexp;

string defaultnc = "dc=test,dc=net";  //這是預設的域

string alias = "";

string fullname = "";

string password = @"password";  //這是預設的初始密碼

string domainname = "test.net";

string strgivenname=""; //下面這個變數告訴程式將郵箱建在exchange的哪個儲存區域中string homemdb = "cn=test,cn=控股公司,"

+ "cn=informationstore,cn=mail,cn=servers,"

+ "cn=first administrative group,cn=administrative groups,"

+ "cn=test,cn=microsoft exchange,cn=services,"

+ "cn=configuration,dc=test,dc=net"; label1.text="開始從模板中載入資料!";

//獲取模板資訊 我們知道,建立的一批帳戶中,有許多的專案是相同的,所以,我們先建立好乙個帳戶作為模板,然後,通過讀取這個模板的資料作為新建的帳戶的相應專案的資料。這段**採用了ad的查詢物件:

directoryentry demb = new directoryentry();

demb.path="ldap://cn=模板, ou=專案組,ou=部門,dc=test, dc=net";

strmemberof=demb.properties["memberof"][0].tostring();

struserparm=demb.properties["userparameters"][0].tostring();

strmanager=demb.properties["manager"][0].tostring();

strscriptpath=demb.properties["scriptpath"][0].tostring();

strdepartment=demb.properties["department"][0].tostring();

strcompany=demb.properties["company"][0].tostring();

// straccountexp=demb.properties["accountexpires"].value.tostring();

demb.close();

label1.text="載入資料完畢!開始從資料庫中讀取新建帳戶資訊!";

//讀取資料庫獲取帳戶資訊

adodb.connection objconn;

adodb.command objcmd;

adodb.recordset objrs;

object objoptparm;

objoptparm="";

string str=@"jet oledb:global partial bulk ops=2;jet oledb:registry path=;jet oledb:database locking mode=1;data source=""db1.mdb"";mode=share deny none;jet oledb:engine type=5;provider=""microsoft.jet.oledb.4.0"";jet oledb:system database=;jet oledb:sfp=false;persist security info=false;extended properties=;jet oledb:compact without replica repair=false;jet oledb:encrypt database=false;jet oledb:create system database=false;jet oledb:don't copy locale on compact=false;user id=admin;jet oledb:global bulk transactions=1";

objconn=new adodb.connection();

try

catch(systemexception ex)

finally

objrs=new adodb.recordset();

objcmd=new adodb.command();

objcmd.commandtext="select * from sheet1";

objcmd.activeconnection=objconn;

try

catch(systemexception ex)

finally

try

// else

// );       user.commitchanges();

user.invoke("setpassword", new object);

user.commitchanges();

//this enables the new user.

user.properties["useraccountcontrol"].value = 0x200; //ads_uf_normal_account

user.commitchanges();

//obtain the imailboxstore inte***ce, create the mailbox, and commit the changes.

mailbox = (imailboxstore)user.nativeobject;

mailbox.createmailbox(homemdb);

user.commitchanges(); }

catch(exception ex)

// }

label1.text="建立帳戶:"+fullname+"-"+alias+"-"+strgivenname+"建立完畢!";

objrs.movenext(); }

}catch(systemexception ex)

finally

出處

批量建立EXCHANGE郵件帳號建立三部曲

第一步 從ad裡匯出使用者名稱 可以基於ou 將輸出的csv的dn列刪除,並去除可能的測試及其它用途使用者名稱。csvde f users gz.csv d ou mkt gz,dc xmkt,dc cc r objectcategory person objectclass user l disp...

批量建立EXCHANGE郵件帳號建立三部曲

第一步 從ad裡匯出使用者名稱 可以基於ou 將輸出的csv的dn列刪除,並去除可能的測試及其它用途使用者名稱。csvde f users gz.csv d ou mkt gz,dc xmkt,dc cc r objectcategory person objectclass user l disp...

企業資訊化系統基礎 AD 使用C 批量建立帳號

如果乙個公司打算使用微軟的產品來構建自己的辦公自動化系統,那麼,建議採用主域控制的方式。那麼,必然就要用到活動目錄 ad 這樣,it部門就需要為公司的每乙個員工來建立域帳號。如果公司比較大的話,這是乙個很大的工程。而且,我們會發現,有些工作量基本上是在重複勞動,人力資源部為了給it部門提供人員名單,...