Назад | Перейти на главную страницу

Есть ли программа / инструмент / сценарий для мониторинга или просмотра всех недавних * больших * файлов, созданных на сервере Windows?

Несколько лет управляю скромным сервером SBS 2003. Наша сетевая политика настроена на хранение профилей пользователей и папки «Мои документы» на сервере. В последнее время диск сервера заполнялся, и запуск WinDirStat каждые несколько недель позволил мне решить эту проблему, идентифицируя большие файлы и заботясь о них индивидуально.

Есть ли инструмент мониторинга, который проактивно ищет большие файлы (созданные недавно) и имеет встроенную систему отчетов / уведомлений, чтобы пинговать меня при создании больших файлов (возможно,> 100 МБ?)

Или есть программа / сценарий для фильтрации файлов и папок таким образом, чтобы они упорядочивали их таким образом, чтобы иметь большой вес во время создания файла VS размер файла?

Я искал вокруг и не могу найти инструмент Windows, который делает это.

Диспетчер ресурсов файлового сервера сделает то, что вы ищете.

Как установить на SBS 2003 R2 Вот.

Вы бы хотели создать File Screen Template и перейти оттуда:

Это также можно сделать с помощью сценария Powershell, который также должен работать для вас:

    #------------------------------------------------------------
# LargeFiles.CSV
# Server = Server name without any slashes. Full UNC name can be used
# Path = Can be any path but if you are using the administrative shares be
#        sure to use the "$"
#        Example:) L$\share\path\folder\etc or L$
#------------------------------------------------------------
#Get-ChildItem L:\ -Recurse | Where-Object {$_.Length -gt 10GB} | Select-Object @{Name="GB";Expression={$_.Length / 1GB}},Name

$FromAddress = "FromEmailAddress"
$ToAddress = "ToEmailAddress"
$MessageSubject = "Large Files Found"
$SendingServer = "SMTPServer.domain.local"

function CreateLargeFilesCSV
{
Write-Host "--------------------------------------------------------`r" -foreground yellow
Write-Host "The LargeFiles.csv file did not exist. This was created for you.`r" -foreground yellow
Write-Host "You must now populate this file with the proper information,`r" -foreground yellow
Write-Host "See files for more details.`r" -foreground yellow
New-Item LargeFiles.csv -type file
Add-Content LargeFiles.csv "Server,Path"
Add-Content LargeFiles.csv "SQL1,I$"
Add-Content LargeFiles.csv "SQL1,K$\Sharename\folder\etc"
}

function CheckSize
{
    foreach ($result in $results)
    {
        $strServer = $result.Server
        $strServer = "\\$strServer\"
        $strPath = $result.Path
        $strPath = "$strPath"
        $strMaxFileSize = $result.MaxFileSize
        Get-ChildItem $strServer$strPath -Recurse | Where-Object {$_.Length -gt 10GB} | Select-Object Name,@{Name="Size(GB)";Expression={"{0:N2}" -f ($_.Length/1GB)}},@{Name="Server";Expression={$strServer}},@{Name="Path";Expression={$strPath}} | ConvertTO-HTML | Format-Table -AutoSize | Out-File Results.txt -append
    }
}

if (Test-Path LargeFiles.csv)
{
    $Results = Import-CSV LargeFiles.csv | Select Server,Path
    CheckSize
}
else
{
    CreateLargeFilesCSV
}

$Answer = Get-Content Results.txt | Select-String "</colgroup>" -quiet

If ($Answer -eq $true)
{
    Write-Host "Found some large files"
    $MessageBody = (Get-Content Results.txt | out-string)
    $MessageBody = "Found some large files. Below is a list of these files`n$MessageBody"
    Remove-Item Results.txt

    ###Create the mail message
    $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody
    $SMTPMessage.IsBodyHTML = $true

    ###Send the message
    $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
    $SMTPClient.Send($SMTPMessage)
}
Else
{
    Write-Host "Nothing to send"
    Remove-Item Results.txt
}
- See more at: http://it-erate.com/hunting-alerting-large-files-powershell/#sthash.XI56yxdl.dpuf