HRESULT отличается между Windows Server 2008 и другими версиями

При удалении объектов, которые не являются членами группы, мы получаем код ошибки 80072035 в Windows Server 2008.
Но Server 2012, 2016 не возвращает код ошибки, а возвращает статус успеха (0).

IDirectoryObject *pdoGroups = NULL;
HRESULT hr = ADsOpenObject(ldapPathOfGroup, userName, pwd, ADS_SECURE_AUTHENTICATION, IID_IDirectoryObject, (LPVOID*)&pdoGroups);
ADS_ATTR_INFO *attrInfo = NULL;
attrInfo = (ADS_ATTR_INFO*)AllocADsMem(sizeof(ADS_ATTR_INFO) * 1);
ADSVALUE *adsValues = NULL;
DWORD dw;
adsValues = (ADSVALUE*)malloc(sizeof(ADSVALUE) * 1);
LPWSTR wattributeValue = new WCHAR[wcslen(objectDN) + 1];
wcscpy(wattributeValue, objectDN);      //object not member of group
adsValues[0].dwType = ADSTYPE_DN_STRING;
adsValues[0].DNString = (ADS_DN_STRING)wattributeValue;
LPWSTR wattributeName = new WCHAR[10];
wcscpy(wattributeName, L"member");
attrInfo->pszAttrName = wattributeName;
attrInfo->pADsValues = adsValues;
attrInfo->dwControlCode = 4;
attrInfo->dwADsType = (ADSTYPE)1;
attrInfo->dwNumValues = 1;
//HR returned is 0 for Server 2012, 2016 but 2008 server return 80072035
hr = pdoGroups->SetObjectAttributes(attrInfo, 1, &dw);
//dw is 0 in case of 2008 version and dw is 1 in case of 2012 and 2016 versions.

Почему возвращенный HRESULT отличается в 2008 году?

[мы протестировали на сервере 2008,2012 и сервере 2016. но 2008 вернул 80072035, тогда как 0 возвращается к 2012 и 2016]

dw = 0 для версии 2008 года и dw = 1 для версий 2012 и 2016 года.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …