Поделиться через


Функция NetGroupGetUsers (lmaccess.h)

Функция NetGroupGetUsers извлекает список членов определенной глобальной группы в базе данных безопасности, которая является базой данных диспетчера учетных записей безопасности (SAM) или, в случае контроллеров домена, Active Directory.

Синтаксис

NET_API_STATUS NET_API_FUNCTION NetGroupGetUsers(
  [in]      LPCWSTR    servername,
  [in]      LPCWSTR    groupname,
  [in]      DWORD      level,
  [out]     LPBYTE     *bufptr,
  [in]      DWORD      prefmaxlen,
  [out]     LPDWORD    entriesread,
  [out]     LPDWORD    totalentries,
  [in, out] PDWORD_PTR ResumeHandle
);

Параметры

[in] servername

Указатель на константную строку, указывающую DNS или NetBIOS-имя удаленного сервера, на котором выполняется функция. Если этот параметр имеет значение NULL, используется локальный компьютер.

[in] groupname

Указатель на константную строку, указывающую имя глобальной группы, члены которой должны быть перечислены. Дополнительные сведения см. в разделе "Примечания".

[in] level

Уровень информации запрашиваемых данных. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
0
Возвращает имена членов глобальной группы. Параметр bufptr указывает на массив GROUP_USERS_INFO_0 структур.
1
Возвращает имена и атрибуты членов глобальной группы. Параметр bufptr указывает на массив GROUP_USERS_INFO_1 структур.

[out] bufptr

Указатель на адрес буфера, получающего структуру информации. Система выделяет память для этого буфера. Чтобы освободить память, необходимо вызвать функцию NetApiBufferFree . Обратите внимание, что буфер необходимо освободить, даже если функция завершается сбоем с ERROR_MORE_DATA.

[in] prefmaxlen

Предпочтительная максимальная длина возвращаемых данных в байтах. Если указать MAX_PREFERRED_LENGTH, функция выделяет объем памяти, необходимый для хранения данных. Если указать другое значение в этом параметре, это может ограничить количество байтов, возвращаемых функцией. Если размер буфера недостаточен для хранения всех записей, функция возвращает ERROR_MORE_DATA. Дополнительные сведения см. в разделах Буферы функций управления сетью и Длина буфера функции управления сетью.

[out] entriesread

Указатель на значение, которое получает количество фактически перечисляемых элементов.

[out] totalentries

Указатель на значение, которое получает общее количество записей, которые можно было бы перечислить из текущей позиции резюме.

[in, out] ResumeHandle

Указатель на переменную, содержащую дескриптор возобновления, используемый для продолжения существующего перечисления пользователей. Дескриптор должен быть равен нулю при первом вызове и оставить без изменений для последующих вызовов. Если параметр ResumeHandle имеет значение NULL, дескриптор возобновления не сохраняется.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет NERR_Success.

Если функция завершается ошибкой, возвращаемое значение может быть одним из следующих кодов ошибок.

Код возврата Описание
ERROR_ACCESS_DENIED
Пользователь не имеет доступа к запрошенной информации.
ERROR_INVALID_LEVEL
Неправильный уровень системного вызова. Эта ошибка возвращается, если параметр уровня был указан как значение, отличное от 0 или 1.
ERROR_MORE_DATA
Доступны дополнительные записи. Укажите достаточно большой буфер для получения всех записей.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти для завершения операции.
NERR_InvalidComputer
Недопустимое имя компьютера.
NERR_GroupNotFound
Не удалось найти имя глобальной группы в структуре, на которую указывает параметр bufptr .
NERR_InternalError
Внутренняя ошибка.

Комментарии

Если вы вызываете эту функцию на контроллере домена под управлением Active Directory, доступ разрешен или запрещен на основе списка управления доступом (ACL) для защищаемого объекта. Список управления доступом по умолчанию позволяет просматривать сведения всем пользователям, прошедшим проверку подлинности, и членам группы "Доступ, совместимый с Windows 2000". Если вы вызываете эту функцию на рядовом сервере или рабочей станции, все пользователи, прошедшие проверку подлинности, смогут просматривать сведения. Сведения об анонимном доступе и ограничении анонимного доступа на этих платформах см. в разделе Требования к безопасности для функций управления сетью. Дополнительные сведения о списках управления доступом, ACE и маркерах доступа см. в разделе модель контроль доступа.

Дескриптор безопасности объекта Group используется для выполнения проверка доступа для этой функции.

Чтобы предоставить одному пользователю членство в существующей глобальной группе, можно вызвать функцию NetGroupAddUser . Чтобы удалить пользователя из глобальной группы, вызовите функцию NetGroupDelUser . Сведения о замене членства в глобальной группе см. в разделе NetGroupSetUsers.

Имена учетных записей пользователей могут содержать не более 20 символов, а имена групп — не более 256 символов. Кроме того, имена учетных записей не могут быть завершены точкой и не могут содержать запятые или любые из следующих печатных символов: ", /, , [, ], :, |, <, >, +, =, ;, ?, *. Имена также не могут содержать непечатаемые символы в диапазоне от 1 до 31.

При программировании для Active Directory вы можете вызвать определенные методы интерфейса службы Active Directory (ADSI), чтобы достичь тех же функций, которые можно достичь, вызывая функции группы управления сетью. Дополнительные сведения см. в разделе IADsGroup.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header lmaccess.h (включая Lm.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

GROUP_USERS_INFO_0

GROUP_USERS_INFO_1

Функции группы

NetApiBufferFree

NetGroupAddUser

NetGroupDelUser

NetGroupSetUsers

NetQueryDisplayInformation

NetUserGetGroups

Функции управления сетью

Общие сведения об управлении сетью