Windows system >> Windowsの知識 >  >> Windows Serverシステムのチュートリアル >> Windows Serverチュートリアル >> Windows 2000のユーザー管理 - Active Directoryの実例

Windows 2000のユーザー管理 - Active Directoryの実例

  

実用的なアプリケーションにおいて、サーバーから端末への制御ソフトウェアを使用したい場合は、ユーザー管理が必要になることがよくありますが、もちろんNT、W2Kは完全なユーザー管理モードを提供します。私達は私達のソフトウェアからNT、W2Kのユーザーを管理できることを望んでいるので、オペレーティングシステムに精通していないユーザーもいます。とても必要です。最近、誰かが端末管理ソフトウェアの作成を依頼しましたが、最初は必要ではないと感じましたが、必要であると言った後でPBを使用しました。そのため、ユーザーの追加、ユーザーの削除、パスワードの変更、グループへのユーザーの追加、グループからの削除、ユーザーリストの取得など、DLLを作成する必要がありました。長さが長すぎるため、読者にとって読みにくくなります。いくつかの機能は省略されています、必要なら私に連絡してください。 [email protected]

以下の関数は主にNT、W2K Active Directoryサービスを使用し、IADsContainerコンテナ、IAD、IADsUserインターフェイスなどのコンポーネントインターフェイスを提供します。

1.(このマシンから)ユーザーを削除します。

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->削除(L "user"、_ bstr_t(ユーザー名));
pContainer-> Release();

CoUninitialize();
return FALSE;
}

2、ユーザーを追加します。

BOOL __stdcall AddUser(char *ユーザー名、char *フルネーム、char *説明)
{
HRESULT hr;
> IADsContainer * pContainer = NULL;
のIAD *パッド= NULL;
のIDispatch * pDisp = NULL;
ログイン_bstr_t BSTR; = 255 ll_len
DWORD; CHAR lbBuffer [255]
;
:: GetComputerNameの(lbBuffer、& ll_len);

BSTR = "WinNTの://" + _bstr_t(lbBuffer)+ "" + _bstr_t( "コンピュータ"); //

アパートメントスレッドを初期化します。
hr = CoInitialize(NULL);
hr = ADsGetObject(bstr、IID_IADsContainer、(void **)& pContainer);
hr = pContainer - >作成(L "user"、 _bstr_t(ユーザ名)、& pDisp);
ログインpContainer->リリース();
((時間成功した場合!)){戻り時間を;}
ログイン時間= pDisp- > QueryInterface(IID_IADs、(void **)& pADs);
pDisp-> Release();
if(!SUCCEEDED(hr)){return 0;}
VARIANT var; BR> VariantInit(& VAR);
var.vt = VT_BSTR;
var.bstrVal = _bstr_t(フルネーム);
ログインpADs->(L "フルネーム"、VAR)を挿入します。
VariantClear(& VAR);

var.vt = VT_BSTR;
var.bstrVal = _bstr_t(説明);
ログインpADs->(L "説明" を置きます、var);
VariantClear(& var);

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

CoUninitialize();
return FALSE;
}

3.ユーザーパスワードの設定

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(ユーザー名)+ "ユーザー";

ファイル://初期化マンションのスレッドの
時間=のCoInitialize (NULL);
hr = ADsGetObject(bstr、IID_IADsUser、(void **)& pUser);
if(SUCCEEDED(hr))
{
hr = pUser-> SetPassword( _bstr_t(PWD));)
}
CoUninitializeの({
CoUninitializeの
(); TRUEを返す
}
ログインする場合)
((時間に成功);

FALSEを返す;}

ログイン

Copyright © Windowsの知識 All Rights Reserved