0

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.

5
Contributors
8
Replies
9
Views
13 Years
Discussion Span
Last Post by William Hemsworth
0

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 by Dani: Formatting fixed

0

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

0

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 topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.