Рузультат выполнения
Error := NetQueryDisplayInformation(StringTo OleStr(ledControllerName.Text), 2, CurrIndex,
EntriesRequest, PreferredMaximumLength, ReturnedEntryCount, @Info);
равен
5 (ERROR_ACCESS_DENIED).
Код:
// Данная функция получает информацию о всех рабочих станциях присутствующих в домене
function TfrmDomainInfo.EnumAllWorkStation: Boolean;
var
Tmp, Info: PNetDisplayMachine;
I, CurrIndex, EntriesRequest,
PreferredMaximumLength,
ReturnedEntryCount: Cardinal;
Error: DWORD;
begin
CurrIndex := 0;
repeat
Info := nil;
// NetQueryDisplayInformation возвращает информацию только о 100-а записях
// для того чтобы получить всю информацию используется третий параметр,
// передаваемый функции, который определяет с какой записи продолжать
// вывод информации
EntriesRequest := 100;
PreferredMaximumLength := EntriesRequest * SizeOf(TNetDisplayMachine);
ReturnedEntryCount := 0;
// Для выполнения функции, в нее нужно передать DNS имя контролера домена
// (или его IP адрес), с которого мы хочем получить информацию
// Для получения информации о рабочих станциях используется структура NetDisplayMachine
// и ее идентификатор 2 (двойка) во втором параметре
Error := NetQueryDisplayInformation(StringToOleStr(ledControllerName.Text), 2, CurrIndex,
EntriesRequest, PreferredMaximumLength, ReturnedEntryCount, @Info);
if Error in [NERR_Success, ERROR_MORE_DATA] then
try
Tmp := Info;
// Выводим информацию которую вернула функция в структуру
for I := 0 to ReturnedEntryCount - 1 do
begin
with lvWorkStation.Items.Add do
begin
Caption := Tmp^.usri2_name; // Имя рабочей станции
SubItems.Add(Tmp^.usri2_comment); // Комментарий
// Запоминаем индекс с которым будем вызывать повторно функцию (если нужно)
CurrIndex := Tmp^.usri2_next_index;
end;
Inc(Tmp);
end;
finally
NetApiBufferFree(Info);
end;
// Если результат выполнения функции ERROR_MORE_DATA
// (т.е. есть еще данные) - вызываем функцию повторно
until Error in [NERR_Success, ERROR_ACCESS_DENIED];
Result := Error = NERR_Success;
end;
Запускал в
Win7 залогинившись под учеткой
Администратора (того, что на
Win2003).
Почему денайед?
DelphiXE / Windows 7 SP1 64-bit (guest) / Windows 2003 Standart 32-bit (guest) / VMware-player-4.0.4-744019