Hanki Windows Event Log Age PowerShell-komentosarjalla

Windowsin tapahtumalokien tulisi pysyä järjestelmässä vähintään 7 päivää, jotta voit tarkastella niitä vianetsintää tai muita tarkoituksia varten. Oletusarvoisesti tapahtumalokit korvataan, kun tapahtumalokin enimmäiskoko saavutetaan. Tämä tarkoittaa, että sinulla ei ole tarpeeksi lokihistoriaa, mikä voi aiheuttaa ongelmia. Tässä artikkelissa opit hankkimaan Windows Event Log Age -ohjelman PowerShell-komentosarjan avulla.

Windows Event Log Age PowerShell-komentosarja

Get-EventLogAge.ps1 PowerShell-komentosarja tarkistaa kaikki järjestelmän tapahtumalokikansiot ja antaa sinulle raportin, jossa on seuraavat tiedot:

  1. LogName
  2. Vanhin Tapahtumapäivämäärä
  3. Uusin Tapahtumapäivämäärä
  4. Päiviä vanhimmasta tapahtumasta
  5. Suurin koko MB
  6. Käytetty prosenttiosuus

Lataa Windows Event Log Age PowerShell-komentosarja

Luo kaksi kansiota(C:)ajaa:

  • Käsikirjoitukset
  • Temp

Lataa ja aseta Get-EventLogAge.ps1 PowerShell-komentosarja järjestelmäänC: scriptskansio. Jos sinulla ei ole komentosarjakansiota, luo sellainen.

Varmista, että tiedosto on estetty estääksesi virheet komentosarjaa suoritettaessa. Lue lisää artikkelista Ei digitaalisesti allekirjoitettu virhe PowerShell-skriptiä suoritettaessa.

Toinen vaihtoehto on kopioida ja liittää alla oleva koodi Muistioon. Anna sille nimiGet-EventLogAge.ps1ja aseta se C:scripts-kansioon.

<#
    .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:tempEventLogAgeReport.csv"

# Get the current date
$currentDate = Get-Date

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

# Create a generic list to store report data
$Report = [System.Collections.Generic.List[Object]]::new()

# 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

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

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

Tältä se näyttää.

Suorita Hanki Windows Event Log Age PowerShell-komentosarja

Vie Windowsin tapahtumalokien ikäraportti CSV-tiedostoon.

Suorita PowerShell järjestelmänvalvojana ja suorita alla oleva komento.

Lue myös:Tehtävien ajoitus PowerShell-komentosarjan ja sähköpostihälytyksiä suorittamiseen

C:scripts.Get-EventLogAge.ps1

Etsi tiedostoEventLogAgeReport.csvpolullaC: temp.

Avaa CSV-tiedosto suosikkisovelluksellasi. Esimerkissämme se on Microsoft Excel.

Raportti näyttää hyvältä!

Johtopäätös

Opit saamaan Windows Event Log Age -ohjelman PowerShell-komentosarjan avulla. Suorita komentosarja ja katso kaikki tiedot raportista. Muista, että vähintään 7 päivän tapahtumalokihistoria on saatavilla sinulle tärkeille kansioille.

Piditkö tästä artikkelista? Saatat myös pitää Tarkista vapaa levytila ​​Windowsissa PowerShell-skriptillä. Älä unohda seurata meitä ja jakaa tämä artikkeli.

Related Posts