国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Windows 2000用戶管理--活動(dòng)目錄實(shí)例

瀏覽:43日期:2023-10-21 08:02:32

在實(shí)際的應(yīng)用中,如我們要做一個(gè)服務(wù)器對(duì)終端的控制軟件,常需要管理用戶,當(dāng)然NT,W2K提供了完善的用戶管理模式,但有時(shí)我們并不希望從管理工具中去找啟動(dòng)用戶管理,這樣管理起來(lái)非常麻煩,我們常常希望能從我們的軟件上就可以管理NT,W2K的用戶,這樣對(duì)一些對(duì)操作系統(tǒng)不是很熟練的用戶來(lái)說(shuō)是非常必要的。就最近就有人要求我為其寫一個(gè)終端管理軟件,我剛開(kāi)始也覺(jué)得沒(méi)有什么必要,但經(jīng)他仔細(xì)說(shuō)來(lái)覺(jué)得還是有必要的,他是用PB的,他說(shuō)感覺(jué)好象很難做到,所以我只好為他編寫了一個(gè)DLL,其中帶有增加用戶,刪除用戶,修改密碼,增加用戶到組,從組中刪除,獲得用戶列表等等,由于篇幅太長(zhǎng),不便于讀者閱讀,故省去了一些函數(shù),如果需要請(qǐng)與本人聯(lián)系。 gxtlib@21cn.com

下面的函數(shù)主要利用了NT,W2K的活動(dòng)目錄服務(wù)一些組件接口,如IADsContainer 容器,IADs,IADsUser接口等。

1、刪除一個(gè)用戶(從本機(jī)器上)

BOOL __stdcall DeleteUser(char *username) { HRESULT hr; IADsContainer *pContainer=NULL; _bstr_t bstr; DWord ll_len=255; char lbBuffer[255]; ::GetComputerName(lbBuffer,&ll_len); bstr='WinNT://'+_bstr_t(lbBuffer)+','+_bstr_t('computer'); // 初 始化公寓線程 hr=CoInitialize(NULL); hr= ADsGetObject(bstr,IID_IADsContainer,(void **)&pContainer); pContainer->Delete(L'user',_bstr_t(username)); pContainer->Release();

CoUninitialize(); return FALSE; }

2、增加一個(gè)用戶

BOOL __stdcall AddUser(char *username,char *fullname,char *description) { HRESULT hr; IADsContainer *pContainer=NULL; IADs *pADs=NULL; IDispatch *pDisp=NULL; _bstr_t bstr; DWORD ll_len=255; char lbBuffer[255]; ::GetComputerName(lbBuffer,&ll_len);

bstr='WinNT://'+_bstr_t(lbBuffer)+','+_bstr_t('computer'); // 初 始化公寓線程 hr=CoInitialize(NULL); hr= ADsGetObject(bstr,IID_IADsContainer,(void **)&pContainer); hr=pContainer->Create(L'user',_bstr_t(username),&pDisp); pContainer->Release(); if( !SUCCEEDED(hr) ) { return hr; } hr = pDisp->QueryInterface(IID_IADs, (void**) &pADs ); pDisp->Release(); if ( !SUCCEEDED(hr) ) { return 0;} VARIANT var; VariantInit(&var); var.vt=VT_BSTR; var.bstrVal=_bstr_t(fullname); pADs->Put(L'FullName',var); VariantClear(&var);

var.vt=VT_BSTR; var.bstrVal=_bstr_t(description); pADs->Put(L'Description',var); VariantClear(&var);

hr=pADs->SetInfo(); hr=pADs->Release();

CoUninitialize(); return FALSE; }

3、設(shè)置用戶密碼

BOOL __stdcall SetUserPwd(char *username,char *pwd) { HRESULT hr; IADsUser *pUser; _bstr_t bstr; DWORD ll_len=255; char lbBuffer[255]; ::GetComputerName(lbBuffer,&ll_len);

bstr='WinNT://'+_bstr_t(lbBuffer)+'/'+_bstr_t(username)+',user'; file://初 始化公寓線程 hr=CoInitialize(NULL); hr= ADsGetObject(bstr,IID_IADsUser,(void **)&pUser); if (SUCCEEDED(hr)) { hr=pUser->SetPassword(_bstr_t(pwd)); if(SUCCEEDED(hr)) { CoUninitialize(); return TRUE; } } CoUninitialize();

return FALSE; }

標(biāo)簽: Windows系統(tǒng)
主站蜘蛛池模板: 定兴县| 大姚县| 周宁县| 莫力| 康定县| 垣曲县| 西峡县| 克拉玛依市| 建水县| 莫力| 三原县| 衡阳市| 郴州市| 宁阳县| 临朐县| 开原市| 广宗县| 谢通门县| 常熟市| 怀仁县| 虹口区| 阳西县| 虎林市| 含山县| 怀化市| 什邡市| 山东| 贺兰县| 余干县| 奈曼旗| 高平市| 奇台县| 新兴县| 包头市| 富平县| 高碑店市| 宁陕县| 长岭县| 贵德县| 九江县| 桂阳县|