|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - отобрать пользователей по событию 4625 RemoteInteractive за определенную дату |
|
|
PowerShell - отобрать пользователей по событию 4625 RemoteInteractive за определенную дату
|
![]() Старожил Сообщения: 277 |
Добрый день, помогите пожалуйста накидать скрипт на powershell
Задача: нужно отобрать ТОП пользователей по событию 4625 RemoteInteractive (по RDP соединению) за определенную дату. чтобы выводило имя пользователя, время, ip адрес |
|
Отправлено: 21:45, 18-03-2017 |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать $Dateinception = get-date -year 2017 -month 3 -day 1 $Dateend = get-date -year 2017 -month 3 -day 18 $Events = get-eventLog -LogName Security -Newest 10000 -after $Dateinception -before $Dateend | Where-Object { $_.EventID -eq 4625 } $Data = New-Object System.Management.Automation.PSObject $Data | Add-Member NoteProperty Time ($null) $Data | Add-Member NoteProperty UserName ($null) $Data | Add-Member NoteProperty Address ($null) $Events | %{ $Data.time = $_.TimeGenerated $message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()} $Data.UserName = ($message | ?{$_ -like "Пользователь:*"} | %{$_ -replace "^.+:."} ) $Data.Address = ($message | ?{$_ -like "Адрес сети источника:*"} | %{$_ -replace "^.+:."}) $data } |
Отправлено: 23:31, 18-03-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать $Dateinception = get-date -year 2017 -month 3 -day 1 $Dateend = get-date -year 2017 -month 3 -day 18 $Events = get-eventLog -LogName Security -Newest 10000 -after $Dateinception -before $Dateend | Where-Object { $_.EventID -eq 4625 } $Data = New-Object System.Management.Automation.PSObject $Data | Add-Member NoteProperty Time ($null) $Data | Add-Member NoteProperty UserName ($null) $Data | Add-Member NoteProperty Address ($null) $Events | %{ $Data.time = $_.TimeGenerated $message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()} $Data.UserName = ($message | ?{$_ -like "Имя учетной записи:*"} | %{$_ -replace "^.+:."} ) $Data.Address = ($message | ?{$_ -like "Сетевой адрес источника:*"} | %{$_ -replace "^.+:."}) $data } |
Отправлено: 00:13, 19-03-2017 | #3 |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать Столбец UserName выводит лишние знаки (при этом содержит наименование учетной записи), т.к. скрипт ищет в логе любое соответствие параметра "Имя учетной записи:*". Т.к. данный параметр повторяется несколько раз, то выводится несколько значений, в том числе не нужных. Пока не очень представляю как это поправить.
Time UserName Address ---- -------- ------- 17.03.2017 12:04:10 { IO$, oadm} 16.03.2017 17:11:43 { -, USR1CV8} - 16.03.2017 17:05:45 { -, USR1CV8} - 16.03.2017 16:43:51 { -, USR1CV8} - 16.03.2017 15:01:14 { -, USR1CV8} - 15.03.2017 21:17:56 { IO$, oadm} 15.03.2017 21:17:17 { IO$, oadm} 15.03.2017 21:17:17 { IO$, oadm} 13.03.2017 11:52:13 { -, sanya} - 13.03.2017 11:51:56 { -, sanya} - 13.03.2017 11:51:51 { -, sanya} - 08.03.2017 12:48:08 { -, Алексей} 192.168.0.55 08.03.2017 12:47:02 { -, Алексей} 192.168.0.55 08.03.2017 12:45:16 { -, Алексей} 192.168.0.55 07.03.2017 9:39:54 { -, Алексей} 192.168.0.55 06.03.2017 9:00:14 { -, itllc1} - 05.03.2017 18:26:09 { -, USR1CV8} - 05.03.2017 18:18:37 { -, USR1CV8} - 05.03.2017 18:13:04 { -, USR1CV8} - 05.03.2017 18:09:23 { -, USR1CV8} - 05.03.2017 18:04:49 { -, USR1CV8} - 05.03.2017 17:59:17 { -, USR1CV8} - 05.03.2017 17:45:28 { -, USR1CV8} - 03.03.2017 23:52:53 { IO$, администратор} 03.03.2017 23:49:54 { IO$, администратор$p1r1t} 03.03.2017 23:49:39 { IO$, администратор$p1r1t} |
Отправлено: 10:08, 19-03-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Tosha_l:
Вот, например, первое: $Data.UserName = (@(($message | ?{$_ -like "Имя учетной записи:*"}))[0] | %{$_ -replace "^.+:."} ) Последнее: $Data.UserName = (@(($message | ?{$_ -like "Имя учетной записи:*"}))[-1] | %{$_ -replace "^.+:."} )
В других случаях надо смотреть, думать. Пишите, по какому принципу Вы определяете искомое из нескольких упоминаний. |
||
Отправлено: 10:32, 19-03-2017 | #5 |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать Спасибо, последнее то что нужно.
А каким образом отсортировать список по убываю поля UserName? Sort-Object -Property UserName куда нужно вставить? |
Отправлено: 13:41, 19-03-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Tosha_l:
А зачем по убыванию? |
|
Отправлено: 13:46, 19-03-2017 | #7 |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать Результирующий список, чтобы в этой таблице сортировка шла по имени пользователю. Чтобы отследить какой именно пользователь больше всего ошибается при авторизации
если поставить в конце | Sort-Object -Property UserName -Descending вроде сортировка проходит, но почему то запиши только одного пользователя остаются: Time UserName Address ---- -------- ------- 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t 03.03.2017 23:49:39 администратор$p1r1t ? |
Последний раз редактировалось Tosha_l, 19-03-2017 в 14:12. Отправлено: 13:56, 19-03-2017 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:13, 19-03-2017 | #9 |
![]() Старожил Сообщения: 277
|
Профиль | Отправить PM | Цитировать а откуда появился пользователь администратор$p1r1t, если раньше его было всего 2 записи с ним за этот период?
а как сделать так? Цитата Iska:
Count Name Group ----- ---- ----- 26 администратор$p1r1t {@{Time=03.03.2017 23:49:39; UserName= администратор$p1r1t; Address... ![]() |
|
Отправлено: 14:22, 19-03-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Удаление информации по событию | interminable | Хочу все знать | 26 | 22-02-2015 23:10 | |
CMD/BAT - Копирование файлов по маске за текущую дату или пропуская ранее скопированные файлы | jastreb83 | Скриптовые языки администрирования Windows | 3 | 19-08-2014 13:36 | |
CMD/BAT - [решено] ходить по каталогам не глубже второго вложенного и считать файлы за текущую дату | DeGReeS | Скриптовые языки администрирования Windows | 8 | 26-08-2013 17:43 | |
PowerShell - [решено] Копирование файлов за определенную дату | tarasov.evgeny | Скриптовые языки администрирования Windows | 2 | 15-12-2010 18:32 | |
[решено] JavaScript. Скрыть/показать элемент по событию. | System Failure | Вебмастеру | 12 | 20-07-2007 12:24 |
|