ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Delphi, WMI. Как узнать имя пользователя удаленного компьютера в домене??
  #1  
Старый 03.11.2008, 16:48
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию Delphi, WMI. Как узнать имя пользователя удаленного компьютера в домене??

Нужен примерчик, а лучше грамотная консультация на пальцах по сабжу.

Мне надо узнать имя пользователя который сейчас работает на удаленной машине в домене.

То есть, имеется машина в домене, известно её имя, включенная, за которой работает пользователь. Необходимо подключиться к его WMI и узнать имя пользователя.

На VB/vbs/wsh задача решается намного проще, но хочу именно на Delphi 7. Может кто чем поможет..
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!

Последний раз редактировалось Dronga; 03.11.2008 в 17:08..
 
Ответить с цитированием

  #2  
Старый 05.11.2008, 15:55
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
По умолчанию

доступ к компу есть?
 
Ответить с цитированием

  #3  
Старый 05.11.2008, 15:57
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
По умолчанию

как вариант, если удалённая пробуй Telnet
 
Ответить с цитированием

  #4  
Старый 05.11.2008, 16:37
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию

К компу доступа нет. Гуру, мне бы всё-таки через WMI как-то..
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!
 
Ответить с цитированием

  #5  
Старый 05.11.2008, 16:54
Dian
Участник форума
Регистрация: 02.09.2008
Сообщений: 101
Провел на форуме:
196792

Репутация: 37
По умолчанию

Не знаю на счет WMI, но я пришел к выводу, что иногда вполне проходят "топорные" решения типа запуска nbtstat'а
 
Ответить с цитированием

  #6  
Старый 05.11.2008, 17:05
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

покрайней мере тут нужно иметь еще права админа на домене или подобные. чтобы можно было подключаться к другим компам с подобной целью. Ты лучше выложи код на VB а там можно будет глянуть и переписать на дельфу
 
Ответить с цитированием

  #7  
Старый 06.11.2008, 10:00
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

А вообще советую почитать хорошую статейку по использованию WMI в Delphi
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=698

довольно доступно описано. И есть у тебя есть код на VB то именно в WMIшной реализации практически одинаково будет всё
 
Ответить с цитированием

  #8  
Старый 07.11.2008, 20:33
NetSter
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме:
4275992

Репутация: 1188


По умолчанию

2 Dronga, в дельфине сильно не разбираюсь но вот что интересного нашел по твоей теме
Здесь
и очень интересная
КНИГА
 
Ответить с цитированием

  #9  
Старый 08.11.2008, 12:16
Dronga
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме:
3478464

Репутация: 714


Отправить сообщение для Dronga с помощью ICQ
По умолчанию

NetSter, спасибо, но в примере не используется WMI интерфейс. Вообще там uses не вижу.. Есть только external 'netapi32.dll' Name 'NetWkstaUserEnum';

За книгу отдельное спасибо, обязательно прогляжу, но может дашь линк сразу на нужный пример/главу?

slesh, вся проблема в том что это единственный мануал по теме на Delphi ))) Не хотел его здесь выкладывать сразу, думал может кто что ещё подскажет)))
Там используется для возвращаемых данных тип IEnumVariant, при этом сам автор называет это финтом ушами)) В силу весьма ограниченных знаний ищу более простой реализации на понятных типах данных. Поэтому очень желателен примерчик с адаптацией вывода в Edit, там где будет просто String. Стратегически важно проделать фокус на Delphi 7, но если будет проще, то вот пример на VB:
Код:
strComputer = Text1.Text
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colComputer = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer
    Text1.Text = objComputer.UserName
Next
Вешаем на нажатие кнопки, вводим в текстовое поле сетевое имя машины (не IP, а имя), далее программа подсоединяется к WMI интерфейсу удаленной машины, выполняет запрос. В итоге, в наш список возвращается текущий (!) пользователь.

Надо тоже самое на Delphi) Или кто-нибудь, объясните пожалуста, на пальцах что же такое IEnumVariant.. msdn смотрел, не понял.
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!

Последний раз редактировалось Dronga; 08.11.2008 в 12:20..
 
Ответить с цитированием

  #10  
Старый 08.11.2008, 12:52
NetSter
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме:
4275992

Репутация: 1188


По умолчанию

"Получение сетевого имени пользователя

Вы можете попробовать этот код. Я без проблем использовал его под Netware LAN в течение долгого времени. Работа программы зависит от наличия NWCALLS.DLL на машине пользователя, но если он использовал сеть хоть раз, данная библиотека должна присутствовать на его машине."

Код:
unit GetLogin;

{Данный модуль инкапсулирует несколько внешних функций библиотеки NWCALLS.DLL}
{Создан на основе кода Григория Трубецкого}
{Модуль содержит функции, возвращающие Netware User ID}
{и полное имя пользователя.}

interface
uses
SysUtils, Messages, Dialogs;
function GetUserLogin: string;
function GetUserFullName( SomeUser: string): string;

implementation
type
NWTimeStamp = record
Year:      byte;
Month:     byte;
Day:       byte;
Hour:      byte;
Minute:    byte;
Second:    byte;
DayOfWeek: byte;
end;

{Netware API - требуется NWCALLS.DLL}
function NWGetDefaultConnectionID(var Connection: word): word;
far; external 'NWCALLS';

function NWGetConnectionNumber(Connection: word; var ConnectionNumber:
word): word;
far; external 'NWCALLS';

function NWGetConnectionInformation(Connection: word;
ConnectionNumber: word;
ObjectName: pchar;
var ObjectType: word;
var ObjectID: word;
var LoginTime: NWTimeStamp):word;
far; external 'NWCALLS';

function NWReadPropertyValue(Connection:       word;
ObjectName:       pChar;
ObjectType:       word;
PropertyName:     pChar;
DataSetIndex:     byte;
DataBuffer:       pChar;
var More:             byte;
var Flags:            byte): word;
far; external 'NWCALLS';
{ конец секции работы с Netware API }

function GetUserLogin: string;
var
ConnectionID: word;
ConnectionNumber: word;
RC: word;
Name: array[0..50] of Char;
ObjectType: word;
ObjectID: word;
LoginTime: NWTimeStamp;
begin
RC := NWGetDefaultConnectionID(ConnectionID);
RC := NWGetConnectionNumber(ConnectionID, ConnectionNumber);
RC := NWGetConnectionInformation( ConnectionID,
ConnectionNumber,
Name,
ObjectType,
ObjectID,
LoginTime);

Result := StrPas(Name);
end;

function GetUserFullName( SomeUser: string): string;
{Реально имя пользователя является свойством 'IDENTIFICATON'.
Вы должны вызывать NWReadPropertyValue с параметрами (между прочим) вашего ConnectionID,
имени объекта (такое же, как и логин пользователя, сетевое имя которого мы пытаемся узнать)
и свойство name, которое нам необходимо получить, в нашем случае 'IDENTIFICATION'
(это и есть искомая величина - полное имя пользователя).}

var
ConnectionID: word;
RC: word;
Name: array[0..50] of Char;
ObjectType: word;
PropName: array[0..14] of Char;
DataSetIndex: byte;
FullName: array[0..127] of Char;
More: byte;
Flags: byte;
begin
RC := NWGetDefaultConnectionID(ConnectionID);
ObjectType := 256; {пользователь}
StrPCopy(PropName, 'IDENTIFICATION');
DataSetIndex := 1;
StrPCopy(Name, SomeUser);
RC := NWReadPropertyValue( ConnectionID,
Name,
ObjectType,
PropName,
DataSetIndex,
FullName,
More,
Flags);
if RC = 35324 then
MessageDlg('Пользователь ' + SomeUser + ' на этом сервере не обнаружен!',
mtError, [mbOK], 0);
Result := StrPas(FullName);
end;

end.
(c) копирайт
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Социальная инженерия. Профессиональное программирование. Последовательный взлом dinar_007 Болталка 15 23.12.2008 12:30
Установка Windoze глазами линуксоида (100% факты) nerezus Болталка 47 16.10.2005 15:06
Аудит аутентификации на Web-сайтах. Часть первая k00p3r Чужие Статьи 0 13.06.2005 11:22
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection для чайников, взлом ASP+MSSQL k00p3r Чужие Статьи 0 12.06.2005 12:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ