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

Ответить
Аватара пользователя
smotritel89

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

Сообщение smotritel89 »

Всем привет!



Хочу сделать скрипт, отображающий вход/выход пользователей в систему по 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

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение Kazun »

Могут быть проблемы с полем message из-за региональных настроек (оно будет пустое).

Попробуйте на 2012 для начала(т.к. в Windows Server 2008 FilterXPath не работает):



Код:

Код: Выделить всё

Get-WinEvent Security -FilterXPath "*[System[EventID=4624] and EventData[Data[@Name='LogonType']=10]]"
Аватара пользователя
smotritel89

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение smotritel89 »

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



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



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



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

- Имя пользователя

- IP адрес.



как же быть?
Аватара пользователя
Kazun

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение Kazun »

Код: Выделить всё

$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

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение smotritel89 »

Осталось к Win 2003.

нашел вроде скрипт.

но столкнулся с непоняткой



вот строчки:



Код:

Код: Выделить всё

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

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



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

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение Kazun »

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



Код:

Код: Выделить всё

-match "Source Network Address:\s+(\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3})"

или



Код:

Код: Выделить всё

$ipaddr = $event.ReplacementStrings[18]
Аватара пользователя
Dobrezov

Re: PowerShell - Аудит пользователей в систему PowerShell

Сообщение Dobrezov »

Поделиться готовыми скриптами можно попросить? "От жадности" на все версии хотелось-бы. Ну, а по насущной потребности - на 2008R2 нужно.

Спасибо!

P.S. Или подскажите тут:

http://forum.oszone.net/showthread.p...68#post2602968
Ответить

Вернуться в «Скриптовые языки администрирования Windows»