问题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;
}
问题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;
}
你改改吧。
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;
}
我下载了,不过我的AD不在本机上,AD所在机器的IP是192.168.202.2,用户名和密码分别是 "Administrator","mcafee123!@#",请问你的程序怎么改呀?