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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2016/2019/2022 (http://forum.oszone.net/forumdisplay.php?f=119)
-   -   Отслеживание удаление файлов (http://forum.oszone.net/showthread.php?t=353982)

krec 09-08-2023 09:44 3013619

Отслеживание удаление файлов
 
Уже третий раз, сотрудники обращаются, что каким то чудным образом из шары, который лежит на F: диске, под управлением Windows 2019 server, удаляются/теряются файлы.
то есть есть папка, где имеют доступа отдел из 10-и человек, там у каждого свои именные папки есть, и вот, в одном из этих папок пропадают или целые каталоги с файлами или единичные файлы.
Пытался посмотреть через прогу "recuva", но ничего не находит удаленных с этого диска.

Может есть встроенные средства отслеживание за файлами? кто удалил и когда.
Может аудит надо включить? ну чтоб на производительность сервера не влияло.

dmitryst 09-08-2023 11:16 3013633

krec, может, их тупо переносят мышью в другие папки? (у меня так было неоднократно, "Усё пропало, файла нет, стёрли!!!! Аааа!!!". Смотришь в поиске - а вот он, в другой папке лежит.... Ну у меня-то samba с настроенным аудитом, можно посмотреть, кто и когда что делал... Как в 2019 - не подскажу :( )

krec 09-08-2023 11:33 3013635

dmitryst, да, такой вариант тоже рассмотрел, делал поиск и по файлам, и по типу/расширению, нет ничего.

dmitryst 09-08-2023 11:45 3013638

krec, ну тогда пробуйте как-то так

Anton04 09-08-2023 12:01 3013640

Цитата:

Цитата krec
Может аудит надо включить? »

Как подсказал коллега dmitryst, аудит Вам поможет. Плюс к этому теневое копирование на сервере будет не лишним.

krec 09-08-2023 16:11 3013662

понял, спасибо, попробую. А без AD пойдет?
У нас просто AD нету. Но на сервере есть учетные записи, от локальных машин, по которым они подключаюся к шарам на сервере.

dmitryst 09-08-2023 16:15 3013663

Цитата:

Цитата krec
А без AD пойдет? »

Запускайте на сервере локальные политики - gpedit.msc. Вам нужен аудит сервера, вот на нем и включайте аудит, рабочие места не трогайте.

snark 10-10-2023 22:42 3017907

Делал по этой статье для английской версии Windows Server 2016, удаления пишутся в текстовые файлы, поиск по журналу каждые 10 минут (чтобы размазывать нагрузку). Файлы с записями об удалениях складываются в папку D:\.FileLog в подкаталоги ГГГГ\ММ\ДД. Есть ещё параллельная запись в MS SQL, но я убрал этот вариант, на первое время хватит и текстовиков. Конечно же, включен аудит успешных удалений от корня шары. Включены теневые копии для быстрого восстановления.

В строке
Код:

if (($Body -match ".*SHARE*") -and ($Body.User_ -notmatch 'DFS01*'))
SHARE — то название корневого каталога на файловом сервере, а DFS01 — имя самого файлового сервера. Эти значения замените своими.

Код:

$Time = (Get-Date) - (New-Timespan -Min 10)
$BodyL = ""

# $Events - содержит время и порядковый номер записи евента с ID=4660. И сортируем по порядковому номеру.
# При удалении файла создается сразу 2 записи, с ID=4660 и ID=4663.
$Events = Get-WinEvent -FilterHashtable @{LogName = "Security"; ID = 4660; StartTime = $time } | Select TimeCreated, @{n = "Record"; e = { ([xml]$_.ToXml()).Event.System.EventRecordID } } | sort Record
$TimeSpan = New-TimeSpan -sec 1
foreach ($event in $events) {
    $PrevEvent = $Event.Record
    $PrevEvent = $PrevEvent - 1
    $TimeEvent = $Event.TimeCreated
    $TimeEventEnd = $TimeEvent + $TimeSpan
    $TimeEventStart = $TimeEvent - (New-Timespan -sec 1)
    $Body = Get-WinEvent -FilterHashtable @{LogName = "Security"; ID = 4663; StartTime = $TimeEventStart; EndTime = $TimeEventEnd } | ? { ([xml]$_.ToXml()).Event.System.EventRecordID -match "$PrevEvent" } | ? { ([xml]$_.ToXml()).Event.EventData.Data | ? { $_.name -eq "ObjectName" } | ? { ($_.'#text') -notmatch ".*tmp" } | ? { ($_.'#text') -notmatch ".*~lock*" } | ? { ($_.'#text') -notmatch ".*~$*" } } | select TimeCreated, @{n = "File_"; e = { ([xml]$_.ToXml()).Event.EventData.Data | ? { $_.Name -eq "ObjectName" } | % { $_.'#text' } } }, @{n = "User_"; e = { ([xml]$_.ToXml()).Event.EventData.Data | ? { $_.Name -eq "SubjectUserName" } | % { $_.'#text' } } }
    if (($Body -match ".*SHARE*") -and ($Body.User_ -notmatch 'DFS01*')) {
        $LocalTime = ($Body.TimeCreated).ToString("yyyy-MM-dd HH:mm:ss")
        $BodyL = $BodyL + $LocalTime + "`t" + $Body.File_ + "`t" + $Body.User_ + "`n"
    }
}

$Hour = $Time.ToString("HH")
$Day = $Time.ToString("dd")
$Month = $Time.ToString("MM")
$Year = $Time.Year
$name = "DeletedFiles-" + $Year + $Month + $Day + "-" + $Hour + ".txt"
$YearF = "D:\.FileLog\" + $Year
$MonthF = $YearF + "\" + $Month
$DayF = $MonthF + "\" + $Day
$folders = $YearF, $MonthF, $DayF
foreach ($sub in $folders) {
    if (!(Test-Path $sub)) {New-Item -Path $sub -ItemType Directory}
}
$Outfile = $DayF + "\" + $name
$BodyL | Out-File $Outfile -Append



Время: 09:21.

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