如果乙個公司打算使用微軟的產品來構建自己的辦公自動化系統,那麼,建議採用主域控制的方式。那麼,必然就要用到活動目錄(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部門提供人員名單,...