问题1、见以下代码
问题2、如何枚举所有域用户(网上的编译不通过,最好发我邮箱[email protected])//创建用户时出错
bool AddUser()
{
IADs *pIADs = NULL;
IADsContainer *pContainer=NULL;
wstring RootPath =L"LDAP://192.168.202.2/rootDSE";
HRESULT hr = ADsOpenObject(RootPath.c_str(),
L"Administrator",
L"mcafee123!@#",
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(LPVOID*)&pIADs); if (SUCCEEDED(hr))
{
hr = pIADs->QueryInterface(IID_IADsContainer,(void**)&pContainer);
}
if (pIADs)
{
pIADs->Release();
pIADs = NULL;
} IDispatch *pDis = NULL;
IADsUser *pUser=NULL;
//创建用户
hr = pContainer->Create(CComBSTR("user"), CComBSTR("testuser"), &pDis);//这里出错!!!
if (SUCCEEDED(hr))
{
hr = pDis->QueryInterface(IID_IADsUser, (void**)&pUser);
if (SUCCEEDED(hr))
{
//hr = Set();
}
} if (pDis)
{
pDis->Release();
pDis = NULL;
}
    return true;
}

解决方案 »

  1.   

    http://blog.csdn.net/Tr0j4n/archive/2009/11/19/4834412.aspx
      

  2.   

    这是我工程里的。
    你改改吧。
    LRESULT CDlgRest::OnCreateUser(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
    {
        TCHAR szName[100];
        ::GetWindowText(GetDlgItem(IDC_FR_UserName), szName, _countof(szName));    //Create an ordinary account
        NET_API_STATUS nRet = 0;
        DWORD dwErr = 0;
        USER_INFO_1 ui1;
        ZeroMemory(&ui1, sizeof(USER_INFO_1));
        ui1.usri1_name = szName;
        ui1.usri1_priv = USER_PRIV_USER;
        ui1.usri1_flags = UF_DONT_EXPIRE_PASSWD | UF_PASSWD_NOTREQD;
        nRet = NetUserAdd(NULL, 1, (LPBYTE)(&ui1), &dwErr);
        if (nRet == NERR_UserExists)
        {
            MsgBox(CLang::Text(LNG_ForcedRest, _T("132"), _T("User is exists!")));
            return 0;
        }    //Add that accout into the Users group
        _LOCALGROUP_MEMBERS_INFO_3 lmi;
        lmi.lgrmi3_domainandname = ui1.usri1_name;
        nRet = NetLocalGroupAddMembers(NULL, _T("Users"), 3, (LPBYTE)(&lmi), 1);
        if (nRet == NERR_Success)
        {
            ::EnableWindow(GetDlgItem(IDC_FR_UserName), FALSE);
            ::EnableWindow(GetDlgItem(IDC_FR_CreateUser), FALSE);
            MsgBox(CLang::Text(LNG_ForcedRest, _T("133"), _T("Create limited user succeeds!")),
                   STR_AppName, MB_ICONINFORMATION);
        }
        else
        {
            MsgBox(CLang::Text(LNG_ForcedRest, _T("134"), _T("Create limited user fails!") \
                               _T("please confirm as an administrator?")), STR_AppName, MB_ICONWARNING);
        }    return 0;
    }
      

  3.   


    我下载了,不过我的AD不在本机上,AD所在机器的IP是192.168.202.2,用户名和密码分别是 "Administrator","mcafee123!@#",请问你的程序怎么改呀?