Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Аудит пользователей в систему PowerShell (http://forum.oszone.net/showthread.php?t=280304)

smotritel89 04-04-2014 10:13 2332904

Аудит пользователей в систему PowerShell
 
Всем привет!

Хочу сделать скрипт, отображающий вход/выход пользователей в систему по RDP, на WinServ 2008, 2012

нашел на хабре статью, так у меня даже базовые вещи не отображаются:

ввожу: Get-EventLog security -message "*Тип входа:?10*" -after (Get-date -hour 0 -minute 0 -second 0) | ?{$_.eventid -eq 4624 }

в ответ ничего.

убераю -message "*Тип входа:?10*", отображается все по событию 4624.

Как нужно правильнее записать?

Kazun 04-04-2014 10:28 2332911

Могут быть проблемы с полем message из-за региональных настроек (оно будет пустое).
Попробуйте на 2012 для начала(т.к. в Windows Server 2008 FilterXPath не работает):
Код:

Get-WinEvent Security -FilterXPath "*[System[EventID=4624] and EventData[Data[@Name='LogonType']=10]]"

smotritel89 04-04-2014 10:38 2332915

да, выводиться,

но при добавлении -after (Get-date -hour 0 -minute 0 -second 0), т.е указать конкретную дату, ошибка.

то я так понял у Get-WinEvent нет параметра -after..

мне нужно будет оперировать еще с переменной, message, т.е отобразить
- Имя пользователя
- IP адрес.

как же быть?

Kazun 04-04-2014 11:00 2332924

Код:

$today = [int](new-timespan ([datetime]::Today)(get-date)).TotalMilliseconds
$filter = "*[System[EventID=4624 and TimeCreated[timediff(@SystemTime)<=$today]] and EventData[Data[@Name='LogonType']=10]]"
Get-WinEvent Security -FilterXPath $filter | Select TimeCreated,@{n="UserName";e={$_.properties[5].value}},@{n="IP";e={$_.properties[18].value}}


smotritel89 04-04-2014 11:22 2332933

Спасибо, то что надо!

smotritel89 04-04-2014 15:42 2333026

Осталось к Win 2003.
нашел вроде скрипт.
но столкнулся с непоняткой

вот строчки:
Код:

$event.message -match "Source Network Address:\s+(\d+)" | Out Null
$ipaddr = matches[1]

на выходе $ipaddr, только первые 2 цифры IP адреса.

как написать чтобы всю строчку вывел?

Kazun 04-04-2014 15:49 2333028

Самое простое:
Код:

-match "Source Network Address:\s+(\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3})"
или
Код:

$ipaddr = $event.ReplacementStrings[18]

Dobrezov 06-02-2016 02:49 2603012

Поделиться готовыми скриптами можно попросить? "От жадности" на все версии хотелось-бы. Ну, а по насущной потребности - на 2008R2 нужно.
Спасибо!
P.S. Или подскажите тут:
http://forum.oszone.net/showthread.p...68#post2602968


Время: 16:21.

Время: 16:21.
© OSzone.net 2001-