Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

NetUserEnum в XP/Win2k3 возвращает пистой буффер [D6]


DelphiN! ©   (2005-12-13 12:30:00) 


var
  EntiesRead: DWORD;
  TotalEntries: DWORD;
  UserInfo: lpUSER_INFO_1;
  lpBuffer: Pointer;
  ResumeHandle: DWORD;
  Counter: Integer;
  NetApiStatus: LongWord;
  strl: TStringList;
begin
  try
    strl := TStringList.Create;
    ResumeHandle := 0;
    repeat
     NetApiStatus := NetUserEnum(Str2Wide(Comp), 1, 0, lpBuffer, 0, EntiesRead,
       TotalEntries, ResumeHandle);
     UserInfo     := lpBuffer;


С клиентов Windows 2000 список всех пользователей можно было пулучить без проблемм, сейчас перешли на winXP для клиентов и на Win2k3 для серверов. При этом ф-ия NetUserEnum стала возвращать код 51, возвращаемый ею буффер при этом пуст.
 В чем дело?


Rouse_   (2005-12-13 13:29:00) [1]

Да, кстати - в NT требуется адрес указателя а не указатель на буфер.

NetUserEnum(Str2Wide(Comp), 1, 0, @lpBuffer, DWORD(-1), EntiesRead,
      TotalEntries, ResumeHandle);


DelphiN!   (2005-12-13 13:29:00) [2]

Всем приношу извинения, переработал :)
Действительно 5 = ERROR_ACCESS_DENIED.
У меня прав небыло :)


Rouse_   (2005-12-13 13:25:00) [3]

ЗЫ:
51 = ERROR_REM_NOT_LIST = The remote computer is not available.
5 = ERROR_ACCESS_DENIED


clickmaker   (2005-12-13 13:21:00) [4]

неплохо бы еще заглядывать в раздел Win32 SDK reference - Numerical List of Error Codes
или вызывать ShowMessage(SysErrorMessage(ErrorCode))


Rouse_   (2005-12-13 13:21:00) [5]

А зачем ты prefmaxlen в ноль сбросил? он тебе ноль и выдает. Ставь пятым параметром DWORD(-1)


BiN   (2005-12-13 13:18:00) [6]


> DelphiN! ©   (13.12.05 13:15) [13]
>
> Сильно извеняюсь, код ошибки не 51, а 5, у меня просто фаервол
> немного погнал ...


справку читать будешь? раздел remarks

зы.
Причем здесь фаервол?


DelphiN!   (2005-12-13 13:15:00) [7]

Сильно извеняюсь, код ошибки не 51, а 5, у меня просто фаервол немного погнал ... А так проблемма остается


clickmaker   (2005-12-13 13:10:00) [8]


> DelphiN! ©   (13.12.05 13:05) [9]
> В переменной comp передаю ip адрес, например 198.162.0.90

не уверен, что под ХР будет по ip работать. Попробуй DNS/Netbios имя компа (\\compname)


BiN   (2005-12-13 13:08:00) [9]


> DelphiN! ©   (13.12.05 13:05) [9]
>
> В переменной comp передаю ip адрес, например 198.162.0.90(Адрес
> моего компьютера win2003 ent.)


RPC на целевой машине доступен?


BiN   (2005-12-13 13:06:00) [10]


> clickmaker ©   (13.12.05 13:02) [8]
>
> попробуй еще 3-м параметром подсунуть FILTER_NORMAL_ACCOUNT


msdn вроде пишет
A value of zero indicates all account types.


DelphiN!   (2005-12-13 13:05:00) [11]

В переменной comp передаю ip адрес, например 198.162.0.90(Адрес моего компьютера win2003 ent.)


clickmaker   (2005-12-13 13:02:00) [12]

написано же про 51
"Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off"

попробуй еще 3-м параметром подсунуть FILTER_NORMAL_ACCOUNT


DelphiN!   (2005-12-13 13:01:00) [13]


>  [6] BiN ©   (13.12.05 12:59)


Не работает на win2003 раньше на Win2000, работало


BiN   (2005-12-13 12:59:00) [14]

Проблема в том, что The remote computer is not available.
Проверь работу функции на локальной машине.


DelphiN!   (2005-12-13 12:53:00) [15]


>  [4] BiN ©   (13.12.05 12:48)



function Str2Wide(lpStr: String):PWideChar;
var
dwStrlen : Cardinal;
begin
dwStrLen := lstrlen(PChar(lpStr));
GetMem(Result,(dwStrLen+1)*2);
StringToWideChar(lpStr,Result,dwStrLen+1);
end;


Все правильно вроде


BiN   (2005-12-13 12:48:00) [16]


> DelphiN! ©   (13.12.05 12:30)

Скорее всего у тебя ошибка в Str2Wide.
Ибо ERROR_REM_NOT_LIST


Васяня   (2005-12-13 12:44:00) [17]


> DelphiN! ©  

На сколько я помню этот код отлично работает под XP... может у меня виндовс такой? :)


DelphiN!   (2005-12-13 12:40:00) [18]


>  [1] Васяня   (13.12.05 12:38)


На сколько я помню в статье было сделано по такому же принцыпу как и у меня


Васяня   (2005-12-13 12:38:00) [19]

Где тут на мастерах лежала стотья про мониторинг сети, рекомендую ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо