Obtenga la antigüedad del registro de eventos de Windows con el script de PowerShell
Los registros de eventos de Windows deben permanecer al menos en el sistema durante 7 días para que pueda consultarlos para solucionar problemas o cualquier otro propósito. De forma predeterminada, los registros de eventos se sobrescribirán cuando se alcance el tamaño máximo de registro de eventos. Esto significa que no tendrá suficiente historial de registros, lo que puede causar problemas. En este artículo, aprenderá cómo obtener la antigüedad del registro de eventos de Windows con el script PowerShell.
Script de PowerShell de antigüedad del registro de eventos de Windows
El script de PowerShell Get-EventLogAge.ps1 verificará todas las carpetas de registro de eventos en el sistema y le proporcionará un informe con la siguiente información:
- Nombre de registro
- Fecha del evento más antiguo
- Fecha del evento más reciente
- Días desde el evento más antiguo
- Tamaño máximoMB
- Porcentaje utilizado
Descargar el script de PowerShell de antigüedad del registro de eventos de Windows
Cree dos carpetas en la unidad (C:):
- Guiones
- Temperatura
Descargue y coloque el script de PowerShell Get-EventLogAge.ps1 en la carpeta C:\scripts del sistema. Si no tiene una carpeta de scripts, cree una.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnale el nombre Get-EventLogAge.ps1 y colócalo en la carpeta C:\scripts.
<#
.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 -NoTypeInformationAsí es como se ve.
Ejecute el script de PowerShell Obtener antigüedad del registro de eventos de Windows
Exporte el informe de antigüedad de los registros de eventos de Windows a un archivo CSV.
Ejecute PowerShell como administrador y ejecute el siguiente comando.
C:\scripts\.\Get-EventLogAge.ps1Busque el archivo EventLogAgeReport.csv en la ruta C:\temp.
Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.
¡El informe tiene una pinta estupenda!
Leer más: Comprobación del estado de Active Directory con script de PowerShell »
Conclusión
Aprendió cómo obtener la antigüedad del registro de eventos de Windows con el script de PowerShell. Ejecute el script y consulte el informe para conocer todos los detalles. Recuerde tener al menos 7 días de historial de registros de eventos disponibles para las carpetas que son importantes para usted.
¿Disfrutaste este artículo? También te puede interesar Verifique el espacio libre en disco en Windows con el script de PowerShell. No olvides seguirnos y compartir este artículo.


