Главная страница
    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.49 MB
Время: 0.014 c
4-1134737392
Nickolay
2005-12-16 15:49
2006.03.05
WM_DEVICECHANGE - отлов подключения/отключения USB-устройства


3-1136835239
Rust007
2006-01-09 22:33
2006.03.05
Как загрузить Acess с паролем в Delphi


15-1139498551
PARUS
2006-02-09 18:22
2006.03.05
Дельфи-находка...


3-1136482144
VST
2006-01-05 20:29
2006.03.05
Соединение Delphi и mySQL


2-1139663837
Glex
2006-02-11 16:17
2006.03.05
Как поймать мышиное сообщение и передать его контролу?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский