Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288

Поиск пользователя в журнале событий

10.01.2018, 11:25. Показов 5325. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо вычислить пользователя, который кладёт файл в каталог, через журнал аудита (безопасность).

1) Берём название файла, который лежит в С:\badmassenges\* (в эту папку сервис переносит забракованные файлы из каталогов C\toCB\mail\*\*)

2) Находим событие в журнале безопасности по фильтру (по ID = 4663, и имя файла, который создал в папке пользователь: C\toCB\mail\*\*"Название файла" Звёздочки указаны потому что папок много. )
Есть кусочек скрипта, который берёт первое событие в журнале по ID:

$EventXML = [xml](Get-WinEvent -MaxEvents 1 -FilterHashTable @{logname = "Security"; ID = 4663}).ToXml()
($EventXML.Event.EventData.Data[1]).InnerText

Но нужно чтобы скрипт находил пользователя, не www\vld-service (доменный сервисный пользователь), а обычного доменного пользователя

Ниже подробное описание события (пример который скрипт должен находить)

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- <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>4663</EventID> 
  <Version>0</Version> 
  <Level>0</Level> 
  <Task>12800</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x8020000000000000</Keywords> 
  <TimeCreated SystemTime="2018-01-09T01:51:34.843282500Z" /> 
  <EventRecordID>50485368</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="4" ThreadID="68" /> 
  <Channel>Security</Channel> 
  <Computer>VLD-SERVICE.www.ad</Computer> 
  <Security /> 
  </System>
- <EventData>
  <Data Name="SubjectUserSid">S-1-5-21-2079806146-619923507-1181445403-7416</Data> 
  <Data Name="SubjectUserName">petrov</Data> 
  <Data Name="SubjectDomainName">WWW</Data> 
  <Data Name="SubjectLogonId">0xb91b630</Data> 
  <Data Name="ObjectServer">Security</Data> 
  <Data Name="ObjectType">File</Data> 
  <Data Name="ObjectName">D:\CBmail\toCB\LysenkoTA\Файл на отправку.7z</Data> 
  <Data Name="HandleId">0x1e2c</Data> 
  <Data Name="AccessList">%%4417</Data> 
  <Data Name="AccessMask">0x2</Data> 
  <Data Name="ProcessId">0x4</Data> 
  <Data Name="ProcessName" /> 
  </EventData>
  </Event>
3) Выкусывал имя пользователя из строчки <Data Name="SubjectUserName">petrov</Data>

До этого хотел сделать скрипт, который просто будет возвращать owner файла, но из-за того что сервис когда переносит файл, меняется его владелец. Поэтому появилась идея выгребать владельца из журнала аудита.

Добавлено через 4 часа 2 минуты
т.е. ещё раз:

1) Берём название файла в папке к примеру $fileName = (Get-ChildItem С:\badmassenges\).Name
2) Находим event log самый первый в журнале security по ID = 4663, где
<Data Name="ObjectName">D:\CBmail\toCB\*\$file Name</Data>
далее <Data Name="SubjectUserName">petrov</Data> (доменный пользователь не vld-service, в данном примере пользователь petrov)
Вероятно <Data Name="ProcessId">0x4</Data> (поскольку было создание файла)
3) <Data Name="SubjectUserName">petrov</Data> выкусываем пользователя ( тут у нас petrov )

Добавлено через 1 час 30 минут
Вот попытался написать, но не получается сделать фильтр по условию номер 2

PowerShell
1
2
Get-WinEvent -MaxEvents 1 -FilterHashtable @{LogName=”Security”;ID=4663} | 
Select @{n=”Оператор”;e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “SubjectUserName”} |%{$_.’#text’}}}
Может кто то сможет помочь?

Добавлено через 22 часа 20 минут
Ещё раз добрый день!

Вот скрипт, прошу помочь довести его до конечного результата


PowerShell
1
2
3
4
5
6
7
$user = 'vld-service'
$path = 'D:\CBmail\toCB\05LysenkoTA\Файл на отправку.7z'
 
$xpath="*[System[EventID=4663] and EventData[Data[@Name='SubjectUserName']!='$user'] and EventData[Data[@Name='ObjectName']='$path']]"
Get-WinEvent -LogName Security -FilterXPath $xpath |
     Select-Object @{N='SubjectUserName';E={$_.Properties[1].Value}},
                            @{N='FileName';E={$_.Properties[6].Value}}
Нужно каким то образом записать в переменную $path полный путь к файлу "Файл на отправку.7z", зная только имя этого файла.

Т.Е. файл попадает в D:\CBmail\toCB\05LysenkoTA\Файл на отправку.7z, а потом автоматом пененосится в С:\badmassenges\Файл на отправку.7z. Задача: Нужно из журнала вытащить этот путь к файлу исключив путь С:\badmassenges\. Чтобы после его выполнения можно было найти нужное событие и вытащить пользователя из строчки
<Data Name="SubjectUserName">petrov</Data>

Заранее спасибо

Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2018, 11:25
Ответы с готовыми решениями:

Фильтрация в журнале событий Windows
Всем доброго времени суток! Помогите составить запрос к журналу событий нужно отфильтровать события которые были в промежутке от 8:00 до...

Регистрация событий в журнале
Всем привет! Подскажите, что я делаю не так)) Для учебы мне нужно на компьютере создать нового пользователя, учетная запись которого...

Ошибки в журнале событий
В последнее время компьютер начал медленно работать, загружаться и открывать приложения. Залез в журнал событий а там в разделе система...

2
96 / 17 / 5
Регистрация: 05.07.2015
Сообщений: 53
10.01.2018, 15:30
привет. не проверял. должно работать
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Get-WinEvent -MaxEvents 1 -FilterHashtable @{LogName=”Security”;ID=4663} | 
 
 
foreach {[xml]$_.toxml() } |         
 
select `
@{n="ComputerName";e={$_.Event.System.Computer}},
@{n="EventID";e={$_.Event.System.EventID}},
@{n="EventRecordID";e={$_.Event.System.EventRecordID }},
 
@{n="TimeCreated";e={$_.Event.System.TimeCreated.SystemTime | Get-date}},
 
@{n="SubjectUserName";e={$_.Event.EventData.SelectSingleNode("*[@Name=""SubjectUserName""]").innertext}},
@{n="ObjectName";e={$_.Event.EventData.SelectSingleNode("*[@Name=""ObjectName""]").innertext }} |
#... далее можно добавлять поля из DATA по аналогии.
 
tee -Variable result2 |
 
ft -AutoSize
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
10.01.2018, 16:24  [ТС]
Спасибо,dirigar, но не то. Необходимо:

1) Берём название файла в С:\badmassenges\file.txt
2) Ищем в журнале событие по фильтру (название файла file.txt) в котором ObjectBame - путь до перемещения этого файла в С:\badmassenges\ . Должен быть другой путь D:\CBmail\toCB\*\file.txt и записываем его в переменную $path

Для понимания когда пользователь кладёт файл в D:\CBmail\toCB\*\file.txt (где * папки могут быть разные) он забраковывается и перемещается в папку С:\badmassenges\file.txt. Мне нужно через журнал событий вычислить пользователя который кладёт в папку D:\CBmail\toCB\*\file.txt

А далее я выполню

PowerShell
1
2
3
4
5
6
7
$user = 'vld-service'
$path = 
 
$xpath="*[System[EventID=4663] and EventData[Data[@Name='SubjectUserName']!='$user'] and EventData[Data[@Name='ObjectName']='$path']]"
Get-WinEvent -LogName Security -FilterXPath $xpath |
Select-Object @{N='SubjectUserName';E={$_.Properties[1].Value}},
@{N='FileName';E={$_.Properties[6].Value}}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2018, 16:24
Помогаю со студенческими работами здесь

Дубли событий в журнале регистрации 7.7
Обнаружил интересную картину - в журнале регистрации на событие вводНового для одного и того-же документа есть несколько строчек, при этом...

Ошибки в журнале событий по видеокарте
Здравствуйте. купил пару дней назад видеокарту GF 770 GTX. До этого стояла Radeon HD 5870. До установки новой видеокарты удалил драйвера от...

Странное предупреждение в журнале событий
Вот столкнулся с таким предупреждением в журнале событий, как его решить подскажите пожалуйста.

Периодическая ошибка в журнале событий Windows!
Привет!Я совсем случайно открил журнал событий и обнаружил периодическуб постоянную ошибку - Service Control Manager.Что это за ошибка и...

В журнале событий: Неверный блок на устройстве \Device\Harddisk0
Добрый день! Примерно такая же проблема. Стоит два физических винта - C система и D база. Диска D вообще не видно и в журнале событий:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru