![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Как отфильтровать вывод скрипта, удалив из него строки с подстрокой |
|
PowerShell - Как отфильтровать вывод скрипта, удалив из него строки с подстрокой
|
Новый участник Сообщения: 14 |
Всем доброе время.
Нашел в сети powershell скрипт и допилил его под себя. (для русской Windows Server) Он на windows Server (2016) читает лог успешных попыток входа и выводит их за определенное время. Выводит он что-то типа такого: TimeGenerated ClientIP Username LogType ------------- -------- -------- ------- 23.04.2020 10:45:33 - -\СИСТЕМА Service 23.04.2020 10:41:44 - -\СИСТЕМА Service 23.04.2020 10:41:44 - -\СИСТЕМА Service 23.04.2020 10:35:26 192.168.0.66 MAINS\acidс RDP 23.04.2020 10:35:26 192.168.0.66 MAINS\acidс RDP 23.04.2020 10:35:25 - -\DWM-16 Interactive - local logon Можно ли как-то куда-то перенаправить вывод, чтобы отфильтровать строки, содержащие "-\СИСТЕМА"? Чтобы остались только: 23.04.2020 10:35:26 192.168.0.66 MAINS\acidс RDP 23.04.2020 10:35:25 - -\DWM-16 Interactive - local logon Get-EventLog -LogName Security -after ((Get-date).AddMinutes(-200))| ?{(4624) -contains $_.EventID -and $_.Message -match ‘Тип входа:’}| %{ #rdp - 10, без него будет выводить все логины match 'Тип входа:\s+(10)\s' (new-object -Type PSObject -Property @{ TimeGenerated = $_.TimeGenerated ClientIP = $_.Message -replace '(?smi).*Сетевой адрес источника:\s+([^\s]+)\s+.*','$1' UserName =(([regex]'(?<=Новый вход:.*[\s\S]*.*записи:.\s)([\s\S]*)(?=\s\n.*Домен)').match($_.message).value) UserDomain = $_.Message -replace '(?smi).*Имя рабочей станции:\s+([^\s]+)\s+.*','$1' LogonType = $_.Message -replace '(?smi).*Тип входа:\s+([^\s]+)\s+.*','$1' }) } | sort TimeGenerated -Descending | Select TimeGenerated, ClientIP ` , @{N='Username';E={'{0}\{1}' -f $_.UserDomain,$_.UserName}} ` , @{N='LogType';E={ switch ($_.LogonType) { 2 {'Interactive - local logon'} 3 {'Network conection to shared folder)'} 4 {'Batch'} 5 {'Service'} 7 {'Unlock (after screensaver)'} 8 {'NetworkCleartext'} 9 {'NewCredentials (local impersonation process under existing connection)'} 10 {'RDP'} 11 {'CachedInteractive'} default {"LogType Not Recognised: $($_.LogonType)"} } }} |
|
Отправлено: 11:13, 23-04-2020 |
Ветеран Сообщения: 1758
|
overrise,
Цитата:
|
|
Отправлено: 21:36, 16-05-2020 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать В самом событии дисконнекта, если на него посмотреть, есть и имя и пк с которого вышел пользователь и его IP.
Если в журнале Windows отфильтровать событие 4779(Данное событие возникает, когда пользователь отключается от существующего сеанса служб терминалов либо переключается с существующего рабочего стола с помощью быстрого переключения пользователей.), я вижу: AccountName serg AccountDomain FILESERVER LogonID 0xe44811e SessionName RDP-Tcp#58 ClientName LAPTOP ClientAddress 192.168.20.74 Может быть дело в парсинге данных? |
Отправлено: 09:47, 17-05-2020 | #22 |
Ветеран Сообщения: 1758
|
Цитата overrise:
|
|
Отправлено: 11:31, 17-05-2020 | #23 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Странно, при дисконнекте по RDP выскакивать должно это событие по любому. Законнектиться, закрыть соединение и оно появляется.
Вот XML события: - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> - <System> <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" /> <EventID>4779</EventID> <Version>0</Version> <Level>0</Level> <Task>12551</Task> <Opcode>0</Opcode> <Keywords>0x8020000000000000</Keywords> <TimeCreated SystemTime="2020-05-16T16:29:54.469735400Z" /> <EventRecordID>167278009</EventRecordID> <Correlation ActivityID="{C2DFD717-2AEC-0000-1DD7-DFC2EC2AD601}" /> <Execution ProcessID="736" ThreadID="3856" /> <Channel>Security</Channel> <Computer>fileserver</Computer> <Security /> </System> - <EventData> <Data Name="AccountName">serg</Data> <Data Name="AccountDomain">FILESERVER</Data> <Data Name="LogonID">0xe44811e</Data> <Data Name="SessionName">RDP-Tcp#58</Data> <Data Name="ClientName">LAPTOP</Data> <Data Name="ClientAddress">192.168.20.74</Data> </EventData> </Event> |
Отправлено: 18:35, 17-05-2020 | #24 |
Ветеран Сообщения: 1758
|
Ну а так, что-нибудь показывает?
$report = Get-EventLog -LogName Security -InstanceID 4624,4779 -Newest 10 | Foreach-Object { [PSCustomObject] @{ InstanceID = $_.InstanceID EventID = $_.EventID MachineName = $_.MachineName UserName = $_.ReplacementStrings[5] TimeGenerated = $_.TimeGenerated } } $report | Sort-Object TimeGenerated | Format-Table |
Последний раз редактировалось Foreigner, 17-05-2020 в 23:33. Отправлено: 23:16, 17-05-2020 | #25 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Вот такое выдает, по ходу там имя пользователя в другой переменной хранится при дисконнекте, если я правильно понимаю:
InstanceID EventID MachineName UserName TimeGenerated ---------- ------- ----------- -------- ------------- 4624 4624 fileserver serg 18.05.2020 8:15:03 4624 4624 fileserver serg 18.05.2020 8:15:03 4624 4624 fileserver DWM-7 18.05.2020 8:15:03 4624 4624 fileserver DWM-7 18.05.2020 8:15:03 4779 4779 fileserver 192.168.20.74 18.05.2020 8:15:51 4624 4624 fileserver serg 18.05.2020 8:16:02 4624 4624 fileserver serg 18.05.2020 8:16:03 4624 4624 fileserver serg 18.05.2020 8:16:03 4624 4624 fileserver DWM-7 18.05.2020 8:16:03 4624 4624 fileserver DWM-7 18.05.2020 8:16:03 |
Отправлено: 08:20, 18-05-2020 | #26 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Если я беру событие 4779 и вывожу echo $_.ReplacementStrings, то получаю вот такие ответы:
serg FILESERVER 0xe44811e RDP-Tcp#77 LAPTOP 192.168.20.74 serg FILESERVER 0xe44811e RDP-Tcp#78 LAPTOP 192.168.20.74 |
Отправлено: 08:41, 18-05-2020 | #27 |
Ветеран Сообщения: 1758
|
Цитата overrise:
$report = Get-EventLog -LogName Security -InstanceID 4624,4779 -Newest 10 | Foreach-Object { if ($_InstanceID -eq 4624) { $n = 5 } else { $n = 0 } [PSCustomObject] @{ InstanceID = $_.InstanceID EventID = $_.EventID MachineName = $_.MachineName UserName = $_.ReplacementStrings[$n] TimeGenerated = $_.TimeGenerated } } $report | Sort-Object TimeGenerated | Format-Table |
|
Отправлено: 08:53, 18-05-2020 | #28 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать При этом 4624:
S-1-0-0 - - 0x0 S-1-5-21-2348659260-1389582479-2633529765-1000 serg FILESERVER 0x1eba2ed5 3 NtLmSsp NTLM LAPTOP {00000000-0000-0000-0000-000000000000} - NTLM V2 128 0x0 - 192.168.20.74 0 %%1833 - - - %%1843 0x0 %%1843 Цитата Foreigner:
А вот что выдает новый скрипт: InstanceID EventID MachineName UserName TimeGenerated ---------- ------- ----------- -------- ------------- 4624 4624 fileserver S-1-5-18 18.05.2020 8:45:01 4624 4624 fileserver S-1-5-18 18.05.2020 8:45:01 4624 4624 fileserver S-1-5-18 18.05.2020 8:50:00 4624 4624 fileserver S-1-5-18 18.05.2020 8:55:00 4779 4779 fileserver serg 18.05.2020 8:56:27 4624 4624 fileserver S-1-0-0 18.05.2020 8:56:33 4624 4624 fileserver S-1-5-18 18.05.2020 8:56:34 4624 4624 fileserver S-1-5-18 18.05.2020 8:56:34 4624 4624 fileserver S-1-5-18 18.05.2020 8:56:34 4624 4624 fileserver S-1-5-18 18.05.2020 8:56:34 Походу да, Microsoft решила сделать для каждого события свой набор переменных. |
|
Отправлено: 08:55, 18-05-2020 | #29 |
Ветеран Сообщения: 1758
|
|
Отправлено: 09:02, 18-05-2020 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Как вставить в тело сообщения вывод из данного скрипта - | LLC | Скриптовые языки администрирования Windows | 8 | 06-04-2015 08:36 | |
CMD/BAT - [решено] Вычитание символов из строки и вывод на экран | Instant_SR | Скриптовые языки администрирования Windows | 4 | 25-07-2013 11:37 | |
CMD/BAT - [решено] Копирование имени файла и определённой строки из него в другой файл | Liquid Ocelot | Скриптовые языки администрирования Windows | 10 | 05-07-2013 09:35 | |
CMD/BAT - [решено] вывод строки из *.xml | LAKERS824 | Скриптовые языки администрирования Windows | 26 | 08-07-2012 00:09 | |
Запуск PHP-скрипта из командной строки Windows | vadimiron | Вебмастеру | 4 | 01-12-2005 15:12 |
|