Я пытаюсь использовать функцию setInfo () в C ++, чтобы внести несколько изменений в поле пользователя e-mail в Windows AD. Я делаю DLL, который экспортируется в службу Windows. Но setInfo () продолжает возвращать: < /p>
e_ads_invalid_user_object < /p>
< /blockquote>
Все работает нормально, если я составляю тот же код в Exe и запускаю его в командной строке. Но когда DLL экспортируется, и SetInfo () вызывается, он возвращает вышеуказанную ошибку. Это часть моего кода: < /p>
IADsUser *pUser = NULL;
RESULT hr = CoInitialize(0);
VARIANT var;
hr = ADsGetObject(L"LDAP://CN=Foo Bar,CN=Users,DC=mydomain,DC=com", IID_IADsUser, (void**) &pUser);
//hr = ADsOpenObject(L"LDAP://CN=Foo Bar,CN=Users,DC=mydomain,DC=com", NULL, NULL, ADS_SECURE_AUTHENTICATION, IID_IADsUser, (void**) &pUser);
VariantInit(&var);
V_BSTR(&var) = SysAllocString(L"foobar@email.com");
V_VT(&var) = VT_BSTR;
hr = pUser->Put(CComBSTR("mail"), var);
hr = pUser->SetInfo();
< /code>
Я могу успешно связываться с LDAP, привязка также работает с этим: < /p>
adsopenobject () < /p>
< /blockquote>
Когда я добавляю домен администратор, не подходит для использования. Имя пользователя/пароль для этого. Есть ли способ использовать setInfo () в DLL без предоставления учетных данных в коде? Это проблема с чтением/записи?
Подробнее здесь: https://stackoverflow.com/questions/275 ... ser-object