Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.014 c
1-1138624499
tytus
2006-01-30 15:34
2006.03.05
Как копировать данные с последующей обработкой?


2-1139640073
Интересующийся
2006-02-11 09:41
2006.03.05
Обработка сервером формы пришедшей от клиента


9-1126006488
Trion
2005-09-06 15:34
2006.03.05
Вот захотел сделать игрушку типа 2d шутер с чего начать не знаю


2-1140178684
The Sound
2006-02-17 15:18
2006.03.05
Выход из loop a? (Или просто округление).


2-1140250059
Id
2006-02-18 11:07
2006.03.05
Печать в Excel-e





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский