Hi All,

I want to enable/disable users who logged in Domain Name Server (DNS).
Through VC++ code.
If anyone has idea regarding this please reply me asap.

Thanks in advance for u r reply.

Regards,
Shalin.

Hi all,

Finaly I got the answer & here is the code in VC++.
Please Insert the ACTIVEDS.LIB & ADSIID.LIB files in your project.

Regards
Shashi Pawar.
//================= CODE =======================

#include "stdafx.h"
#include "ActiveDir.h"
#include "Activeds.h"
#include <comdef.h>
#include <Iads.h>
#include <Adshlp.h>


int main()
{

HRESULT hr = S_OK;
IADsContainer *pCont = NULL;
CoInitialize(NULL);

hr = ADsGetObject(L"WinNT://DOMAIN_NAME/COMP_NAME",
IID_IADsContainer, (void**) &pCont );
//Put your domain name & computer name.



if ( !SUCCEEDED(hr) ) 

{
   return hr;
}

_variant_t var;
IEnumVARIANTPtr pEnum; 
ADsBuildEnumerator (pCont,&pEnum);
int cnt=0;
ULONG ulFetched = 0L;

_variant_t vChild;
while((SUCCEEDED(ADsEnumerateNext(pEnum, 1, &vChild, &ulFetched)) && ulFetched==1)) 
{

IADsUser *pADs = NULL;
HRESULT hr = S_OK;


hr = V_DISPATCH(&vChild)->QueryInterface(IID_IADsUser, (void**)&pADs);
if(hr!=S_OK)
   break;

BSTR bstrName; 
pADs->get_Name(&bstrName);//stores the Usernames in a string.
CString csName=bstrName;

SysFreeString(bstrName);
printf("%s\n",csName);

if (csName == "User_Name")//put username here
hr = pADs ->put_AccountDisabled(VARIANT_FALSE);//TRUE for disable FALSE for enable the account.
        hr = pADs ->SetInfo (); //To commit the operation
        exit(0);

}

pADs->Release();//IADs user list
pCont->Release ();//free the objects container
}

}

Edited 3 Years Ago by Dani: Formatting fixed

Hello,

Great on the code!

Just wanted to clarify that no one logs in through DNS. DNS (Domain Naming Service) is a "yellow pages" of information concerning servers and computers on the internet, or in a private network. DNS maps the name www.apple.com to 17.x.y.z You will not receive a login prompt from a DNS server.

What you are talking about here is Active Directory, a pure Microsoft Thing. While hooks are becoming available for Mac and Linux to login to Active Directory, it is mainly a Windoze operation.

Code looks great though! I wonder if it would work from a linux box, assuming that the other libraries are available.

Christian

Hello,

Great on the code!

Just wanted to clarify that no one logs in through DNS. DNS (Domain Naming Service) is a "yellow pages" of information concerning servers and computers on the internet, or in a private network. DNS maps the name www.apple.com to 17.x.y.z You will not receive a login prompt from a DNS server.

What you are talking about here is Active Directory, a pure Microsoft Thing. While hooks are becoming available for Mac and Linux to login to Active Directory, it is mainly a Windoze operation.

Code looks great though! I wonder if it would work from a linux box, assuming that the other libraries are available.

Christian

hi,
U r right, it is for active directory users a pure windows thing,
I didnt tried such thing on linux, may be their are some libraries available.

Regards,
Shalin

This article has been dead for over six months. Start a new discussion instead.