Главная » Функции WinAPI | [ Добавить вопрос ] |
Основные [1] |
Читать Системная функция NetUserEnum предоставляет информацию о зарегистрированных пользовательских аккаунтах на сервере (в системе). В зависимости от используемого уровня и фильтра получаемые данные о пользователях могут характеризоваться разным уровнем полноты. Представление функции в .Net.
На MSDN некоторые аргументы данной системной функции объясняются так: servername — входящий параметр [in], представляет строку, описывающую DNS или NetBIOS имя удаленного сервера, на котором выполняется функция. Если данный параметр null, то функция выполняется на локальном компьютере. level — входящий [in], описывает уровень получаемой информации о пользователе, он может приобретать значения 0, 1, 2, 3, 10, 11, 20, что связаны соответственно со структурами user_info_0, user_info_1, user_info_2, user_info_3, user_info_10, user_info_11, а последнее значение 20 связано с user_info_20 и user_info_23. filter — входящий [in], описывает тип аккаунта пользователя, что будет включен в перечисление. Может принимать константные целочисленные значения:
bufptr [out] — указатель на буфер, куда считываются данные о пользователях. Формат данного буфера зависит от используемого уровня. prefmaxlen [in] — максимальная длина считываемых данных, используется const int MAX_PREFERRED_LENGTH = -1. entriesread [out] — количество полученных элементов. Возвращаемое значение функции описывается такими константами:
Пример:
Этот код позволяет получить данные об аккаунтах пользователей в операционной системе Windows. Те же данные можно получить из реестра, но только тогда, когда аккаунт хоть один раз использовался пользователем. Если же аккаунт существует, но пользователь ни одного раза не побывал в нем, значит нет и его сохраненных настроек в реестре, а потому единственно возможным способом получить данные обо всех аккаунтах на локальном компьютере, это низкоуровневые функции Windows, включая NetUserEnum. В данном случае используется уровень 20 и структура User_Info_23 для получения информации о пользователях локального компьютера. Надо заметить, что в коде также получается встроенный сетевой аккаунт домашней группы "HomeGroupUser$". |