//*************************************************************
//*
//* Является ли пользователь локальным администратором
//* или администратором домена
//*
//*************************************************************
BOOL TDialogs::IsAdministrator(LPSTR pUser, LPSTR pDomain)
{
//****
CHAR user[MAX_NAME_SIZE];
CHAR name[MAX_TEXT_SIZE];
WCHAR domain[MAX_NAME_SIZE];
LPUSER_INFO_1 info;
DWORD read;
DWORD total;
DWORD i;
BOOL administrator = FALSE;
// конвертируем параметры
wsprintf(user,"%s",pUser);
CharLowerBuff(user,strlen(user));
SystemToUnicode(pDomain,(LPWORD)domain);
// получаем список пользователей
if( NetUserEnum(domain,1,FILTER_NORMAL_ACCOUNT,(LPBYTE *)&info,MAX_PREFERRED_LENGTH,&read,&total,NULL) == NERR_Success )
{
// анализируем список пользователей
for( i=0; i<read; i++ )
{
// если пользователь администратор
if( (info+i)->usri1_priv == USER_PRIV_ADMIN )
{
// конвертируем имя для сравнения
UnicodeToSystem((LPWORD)(info+i)->usri1_name,name);
CharLowerBuff(name,strlen(name));
// если пользователь определен
if( CompareStrings(user,name) ) administrator = TRUE;
}
}
// освобождаем выделенные ресурсы
NetApiBufferFree(info);
}
// возвращаем результат
return administrator;
}
Как получить список пользователей домена
У меня есть задача: получить список пользователей в домене у меня на фирме, я попытался это сделать через функцию: NetUserEnum - но это оказалось невозможным, т.к. мне возвращается ошибка: 1265 (ERROR_DOWNGRADE_DETECTED), я нашел, что это не поддержываемый алгоритм шифрования со старых систем (DES - http://support.microsoft.com/kb/977321/en-us/).
Я пишу программу на Visual Studio 2010 на С++ на OS Microsoft Windows XP SP3 - домен находится на базе: Windows Server 2008 ...
Вот возник вопрос - как получить список пользователй из домена ?
P.S. ADO Active Directory - не предлагать, т.к. у нас запрещена такая возможность, я попытался использовать запрос - но получил ошибку: Access denied for users mode.
Как я могу получить список пользователей из домена на базе Windows Server 2008 из ОС Windows XP SP3 ?
Если кто уже пытался такое сделать - раскажыте, или покажите куда смотреть - чтобы это исправить, очень нужно ...
Заранее благодарен, жду ответа.
---
С ув. Евгений.
Тут вообще люди есть ? - знающие остались ? - мне ведь ну нужно решение, я просто спросил, где можно про это прочитать (про ошибку) ...
Код:
Вообщем я вот такой кодец использовал пару недель назад. Естественно оно не совсем то что надо вам, но это решается убираением парочки строк. Курсивом выделены мои собственные функции (мне так удобнее), так что их надо заменить на другие, типа strcmp и др... Имя домена может быть и именем локальной машины со всеми вытекающими отсюда... Но есть одно ограничение налагаемое системой, но вам оно врядли интересно, так как решается оно другим способом...
PS Кодец испытан с 2000 по 2008 - никаких нареканий...
Цитата: Yos
PS Кодец испытан с 2000 по 2008 - никаких нареканий...
Этот код я знаю, он не работает на нашем домене ... :(
Я писал:
Цитата: spyrytus
NetUserEnum - но это оказалось невозможным, т.к. мне возвращается ошибка: 1265 (ERROR_DOWNGRADE_DETECTED), я нашел, что это не поддержываемый алгоритм шифрования со старых систем (DES - http://support.microsoft.com/kb/977321/en-us/).
Какие есть еще предложения ? - как Outlook Express определяет всех пользователей домена (во-первых быстро, во-вторых всех) ? :mad:
Заранее благодарен ...
http://support.microsoft.com/kb/942564/ru - раздел временное решение (правда на корявом русском, о чем есть предупреждение).
А оутлок может и не использовать DES при обращении, а так же входить в доверенные приложения...
А оутлок может и не использовать DES при обращении, а так же входить в доверенные приложения...
http://kovanev.net/downloads/my-soft/202-export-fr...
Я оттачивал её в течение 1,5 лет, благодаря чему она обрела весьма большой функционал!
Советую воспользоваться очень удобной и легкой в использовании программой
Я оттачивал её в течение 1,5 лет, благодаря чему она обрела весьма большой функционал!