Weboldal keresés

Szerezze be a Windows Event Log Age-t PowerShell-szkripttel


A Windows eseménynaplóinak legalább 7 napig a rendszeren kell maradniuk, hogy hibaelhárítás vagy bármilyen más célból megtekinthesse őket. Alapértelmezés szerint a rendszer felülírja az eseménynaplókat, amikor eléri a maximális eseménynaplóméretet. Ez azt jelenti, hogy nem lesz elegendő naplózási előzménye, ami problémákat okozhat. Ebből a cikkből megtudhatja, hogyan szerezheti be a Windows Event Log Age PowerShell-parancsfájlt.

Windows Event Log Age PowerShell-szkript

A Get-EventLogAge.ps1 PowerShell szkript ellenőrzi a rendszer összes eseménynapló-mappáját, és jelentést készít az alábbi információkkal:

  1. LogName
  2. LegrégebbiEventDate
  3. LegújabbEventDate
  4. Napok a legrégebbi esemény óta
  5. MaxSizeMB
  6. Felhasznált százalék

Töltse le a Windows Event Log Age PowerShell-szkriptet

Hozzon létre két mappát a (C:) meghajtón:

  • Szkriptek
  • Temp

Töltse le és helyezze el a Get-EventLogAge.ps1 PowerShell-szkriptet a rendszer C:\scripts mappájába. Ha nincs szkriptek mappája, hozzon létre egyet.

Győződjön meg arról, hogy a fájl blokkolása fel van oldva, hogy elkerülje a hibákat a parancsfájl futtatásakor. További információ a cikkben: Nem digitálisan aláírt hiba a PowerShell-szkript futtatásakor.

Egy másik lehetőség az alábbi kód másolása és beillesztése a Jegyzettömbbe. Adja meg a Get-EventLogAge.ps1 nevet, és helyezze a C:\scripts mappába.

<#
    .SYNOPSIS
    Get-EventLogAge.ps1

    .DESCRIPTION
    Export the oldest and newest event logs dates to a CSV file.

    .LINK
    www.alitajran.com/get-windows-event-log-age-powershell-script/

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 08/22/2024 - Initial version
#>

# CSV file path to export
$CsvPath = "C:\temp\EventLogAgeReport.csv"

# Get the current date
$currentDate = Get-Date

# Get all log names
$logNames = Get-WinEvent -ListLog * | Select-Object -ExpandProperty LogName

# Create an array to hold the results
$results = @()

# Iterate through each log and find the oldest and newest events
foreach ($logName in $logNames) {
    # Get the oldest event directly
    $oldestEvent = Get-WinEvent -LogName $logName -MaxEvents 1 -Oldest -ErrorAction SilentlyContinue |
    Select-Object -Property TimeCreated

    # Get the newest event directly
    $newestEvent = Get-WinEvent -LogName $logName -MaxEvents 1 -ErrorAction SilentlyContinue |
    Select-Object -Property TimeCreated

    # Get the log's maximum size and current size
    $logInfo = Get-WinEvent -ListLog $logName

    $maxSize = [math]::Round($logInfo.MaximumSizeInBytes / 1048576, 2)
    $currentSize = [math]::Round($logInfo.FileSize / 1048576, 2)

    if ($maxSize -ne 0) {
        $percentageUsed = [math]::Round(($currentSize / $maxSize) * 100, 2)
    }
    else {
        $percentageUsed = "N/A"
    }

    if ($oldestEvent) {
        # Calculate the number of days since the oldest event
        $daysAgo = ($currentDate - $oldestEvent.TimeCreated).Days

        $results += [PSCustomObject]@{
            LogName              = $logName
            OldestEventDate      = $oldestEvent.TimeCreated
            NewestEventDate      = $newestEvent.TimeCreated
            DaysSinceOldestEvent = "$daysAgo"
            MaxSizeMB            = "$maxSize MB"
            PercentageUsed       = "$percentageUsed %"
        }
    }
    else {
        $results += [PSCustomObject]@{
            LogName              = $logName
            OldestEventDate      = "No events found"
            NewestEventDate      = "No events found"
            DaysSinceOldestEvent = "N/A"
            MaxSizeMB            = "$maxSize MB"
            PercentageUsed       = "$percentageUsed %"
        }
    }
}

# Export the results to a CSV file
$results | Export-Csv -Path $CsvPath -NoTypeInformation

Így néz ki.

Futtassa a Windows Event Log Age PowerShell-parancsfájl beszerzése

Exportálja a Windows Eseménynaplók életkorjelentését CSV-fájlba.

Futtassa a PowerShellt rendszergazdaként, és futtassa az alábbi parancsot.

C:\scripts\.\Get-EventLogAge.ps1

Keresse meg az EventLogAgeReport.csv fájlt a C:\temp útvonalon.

Nyissa meg a CSV-fájlt kedvenc alkalmazásával. Példánkban ez a Microsoft Excel.

Jól néz ki a riport!

Bővebben: Active Directory állapotellenőrzés PowerShell-szkripttel »

Következtetés

Megtanulta, hogyan szerezheti be a Windows Event Log Age-t PowerShell-szkripttel. Futtassa a szkriptet, és nézze meg a jelentést az összes részletért. Ne feledje, hogy legalább 7 napos eseménynapló-előzményekkel kell rendelkeznie az Ön számára fontos mappákhoz.

Tetszett ez a cikk? Lehet, hogy tetszeni fog a Szabad lemezterület ellenőrzése Windows rendszeren PowerShell-szkripttel. Ne felejtsen el követni minket és megosztani ezt a cikket.

Kapcsolódó cikkek