Introduction
The listing demonstrates how to use Active Directory Service to manage the users on WinNT and Windows 2000.
IADsContainer
interface lets you crawl through the active directory. To manage users, you need to get ADS object with path WinNT://DomianName/MachineName. IADsWinNTSystemInfo
interface provides this information. Once we have a container, we enumerate through the container and if the object supports IADsUser
interface, we add it as the user in the ListView
. IADsUser
then lets you manage properties for individual users.
IADsWinNTSystemInfo *pNTsys;
HRESULT hr = CoCreateInstance(CLSID_WinNTSystemInfo,
NULL,CLSCTX_INPROC_SERVER,
IID_IADsWinNTSystemInfo, (void**)&pNTsys);
pNTsys->AddRef();
BSTR bstrCompName;
pNTsys->get_ComputerName(&bstrCompName);
CString cscompName=bstrCompName;
SysFreeString(bstrCompName);
BSTR bstrDomainName;
pNTsys->get_DomainName(&bstrDomainName);
CString CSDomainName=bstrDomainName;
SysFreeString(bstrDomainName);
pNTsys->Release();
ADSPath.Format("WinNT://%s/%s",CSDomainName,cscompName);
hr=ADsGetObject(ADSPath.AllocSysString(),IID_IADsContainer,(void **)&pUsers);
IEnumVARIANTPtr pEnum;
ADsBuildEnumerator (pUsers,&pEnum);
int cnt=0;
while(1)
{
_variant_t vChild;
hr=ADsEnumerateNext (pEnum,1,&vChild,NULL);
if(hr!=S_OK)
break;
hr=vChild.pdispVal->QueryInterface (IID_IADsUser,(void **)&pChild);
if(hr!=S_OK)
continue;
else
}