#c #active-directory #ldap
#c #active-directory #ldap
Вопрос:
это пример кода в MSDN для удаления объекта, такого как user, … но когда я использую этот пример
, эта строка «Всплывает-> DeleteObject (0);» результат «E_ACCESSDENIED» почему? не могли бы вы мне помочь
IADsContainer *pCont;
LPWSTR adsPath = L"LDAP://OU=Sales,DC=Fabrikam,DC=com";
HRESULT hr = ADsGetObject(adsPath,IID_IADsContainer,(void**)amp;pCont);
if (FAILED(hr)) exit(hr);
IADsDeleteOps *pOps;
hr = pCont->QueryInterface(IID_IADsDeleteOps,(void**)amp;pOps);
pCont->Release();
if(FAILED(hr) exit(hr);
pOps->DeleteObject(0);
pOps-Release();
Ответ №1:
Учетная запись, которую вы используете для выполнения действия, не имеет разрешения на удаление целевого объекта.
Комментарии:
1. у меня есть имя пользователя и пароль администратора!
2. Является ли это контейнерным объектом? Возможно, вам придется сначала удалить содержимое, прежде чем удалять контейнер.
3. вы тестировали его самостоятельно? я тестирую его на пустой организационной единице и не сработал! : (если вы протестируете его, пожалуйста, сообщите мне подробности
Ответ №2:
Используйте ADsOpenObject, который принимает имя пользователя и пароль в качестве аргументов, передает учетные данные администратора, и код будет работать нормально. Для справочной ссылки