BG Development


Страници: (3) [1] 2 3   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Мониторинг на login/logout в AD, Active Directory Domain Controller
THE STORM
Публикувано на: 06-02-2018, 22:17
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 771
Регистриран на: 19.08.05



Здравейте,

Търся ефективно решение на следното задание. Трябва да мога да следя кога даден юзър, се вписва и отписва(login/logout) в домейн контролера. Приложението ще е инсталирано като сервиз на самия Windows Server. Минималните изисквания са Windows Server 2012 R2.

Текущото решение е да следя event log-а за записи за вписване и отписване, което в по-натоварена система е доста бавно. Чудя се дали има начин чрез някое WinAPI, да се закача за въпросните събития и да получавам извикване във вид на callback или отблокиране на някоя WaitForSingle/MultipleObjects функция?
PMEmail Poster
Top
ici
Публикувано на: 06-02-2018, 22:23
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 15055
Регистриран на: 06.06.04



Виж този пример за нотификация от LDAP: https://msdn.microsoft.com/en-us/library/ms...7(v=vs.85).aspx


--------------------
Everything you can imagine is real. Pablo Picasso
PMEmail PosterUsers Website
Top
THE STORM
Публикувано на: 06-02-2018, 22:32
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 771
Регистриран на: 19.08.05



От това, което виждам идеята на кода е да следи за промени на дадени обекти. Това как ще ми помогне да разбера дали някой се е вписал или отписал? Може би има някакви конкретни обекти, които биват модифицирани при такива събития? Ако да ще те помоля да дадеш малко повече информация. icon_smile.gif

Това мнение е било редактирано от THE STORM на 06-02-2018, 22:32
PMEmail Poster
Top
ici
Публикувано на: 06-02-2018, 22:34
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 15055
Регистриран на: 06.06.04



Нямам информация просто се опитвам да ти помогна. WMI е другата идея засега: https://msdn.microsoft.com/en-us/library/aa...ror=-2147217396


--------------------
Everything you can imagine is real. Pablo Picasso
PMEmail PosterUsers Website
Top
THE STORM
Публикувано на: 06-02-2018, 22:40
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 771
Регистриран на: 19.08.05



Това и други подобни като WTSWaitSystemEvent() вече ги пробвах и за нещастие вършат работа за вписване/отписване само на конкретния компютър, като също така работят и за remote login(чрез Remote Desktop), но за LDAP вписвания и отписвания грам не ги грее. icon_smile.gif

Това мнение е било редактирано от THE STORM на 06-02-2018, 22:41
PMEmail Poster
Top
ici
Публикувано на: 06-02-2018, 22:41
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 15055
Регистриран на: 06.06.04



qwinsta вади такава информация, ама мисля че не е много адекватна и показва като логнати такива дето вече ги няма. Това може да го има като ефект и във WMI може би.

CODE
C:\Users\ivaylo>qwinsta
SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
services                                    0  Disc
>console           ivaylo                   16  Active
rdp-tcp                                 65536  Listen

C:\Users\ivaylo>qwinsta /?
Display information about Remote Desktop Sessions.

QUERY SESSION [sessionname | username | sessionid]
             [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]

 sessionname         Identifies the session named sessionname.
 username            Identifies the session with user username.
 sessionid           Identifies the session with ID sessionid.
 /SERVER:servername  The server to be queried (default is current).
 /MODE               Display current line settings.
 /FLOW               Display current flow control settings.
 /CONNECT            Display current connect settings.
 /COUNTER            Display current Remote Desktop Services counters informati
on.
 /VM                 Display information about sessions within virtual machines
.


C:\Users\ivaylo>


--------------------
Everything you can imagine is real. Pablo Picasso
PMEmail PosterUsers Website
Top
THE STORM
Публикувано на: 06-02-2018, 22:43
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 771
Регистриран на: 19.08.05



Подобно на споменатите по-горе API-та, qwinsta не хваща LDAP вписаните юзъри от други компютри в домейн контролера...
PMEmail Poster
Top
stewie
Публикувано на: 07-02-2018, 00:39
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3001
Регистриран на: 14.07.16



PM
Top
THE STORM
Публикувано на: 07-02-2018, 13:15
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 771
Регистриран на: 19.08.05



Варианта от първия линк не е оферта понеже скрипта трябва да е writable от всички.

Втория вариант с WMI доста съм го гледал но не ми става ясно как бързо и лесно от сървъра, мога да проверя логнатите клиенти в AD. Може ли да бъдеш малко по-конкретен?
PMEmail Poster
Top
wqw
Публикувано на: 07-02-2018, 16:21
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 5697
Регистриран на: 10.06.04



https://gist.github.com/wqweto/7888059

По принцип WMI event-ите най-вероятно са реализирани с polling на съответния event log, така че тука performance някакъв страхотен няма да се получи. До 1000 account-а ще работи според мен, а ако AD-то не е умрела виртуалка мисля и повече.

Това по-горе е доста раздуто и следи само 4625 (An account failed to log on) от Security лога, но може да се пипне и за success лесно.

Подобни скриптове най-лесно се слагат през Scheduled Tasks на On system startup със нещо като cscript //nologo my_logger.vbs /out:file_name ...

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (3) [1] 2 3  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0