Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

NetUserEnum в XP/Win2k3 возвращает пистой буффер   Найти похожие ветки 

 
DelphiN! ©   (2005-12-13 12:30) [0]


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, возвращаемый ею буффер при этом пуст.
 В чем дело?


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

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


 
DelphiN! ©   (2005-12-13 12:40) [2]


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


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


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


> DelphiN! ©  

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


 
BiN ©   (2005-12-13 12:48) [4]


> DelphiN! ©   (13.12.05 12:30)

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


 
DelphiN! ©   (2005-12-13 12:53) [5]


>  [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:59) [6]

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


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


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


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


 
clickmaker ©   (2005-12-13 13:02) [8]

написано же про 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:05) [9]

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


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


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


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


 
BiN ©   (2005-12-13 13:08) [11]


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


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


 
clickmaker ©   (2005-12-13 13:10) [12]


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

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


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

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


 
BiN ©   (2005-12-13 13:18) [14]


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


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

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


 
Rouse_ ©   (2005-12-13 13:21) [15]

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


 
clickmaker ©   (2005-12-13 13:21) [16]

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


 
Rouse_ ©   (2005-12-13 13:25) [17]

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


 
DelphiN! ©   (2005-12-13 13:29) [18]

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


 
Rouse_ ©   (2005-12-13 13:29) [19]

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
2-1140071932
dabreezy
2006-02-16 09:38
2006.03.05
Вопрос по TidHTTP


2-1140010954
micky_
2006-02-15 16:42
2006.03.05
Плавающие связи


4-1134648730
Deka
2005-12-15 15:12
2006.03.05
Сохранение заданного положения окна в Z-порядке.


15-1139576650
denis24
2006-02-10 16:04
2006.03.05
компонент типа dateedit


10-1089475597
mishka
2004-07-10 20:06
2006.03.05
mathcad и delphi - передача и возврат переменных?