Get-PC/Get-PC/Private/EventLog.ps1

35 lines
1 KiB
PowerShell

function Get-PCEventLog {
param (
[parameter(ValueFromPipeline)]
[string]$cn
)
if(!(Test-Connection -ComputerName $cn -Count 1)){
Write-Warning "$cn is unreachable"
return
}
$day = Read-Host "Number of days back (max 10)"
if($day -in 1..10){
$days = (Get-Date) - (New-TimeSpan -Day $day)
}
else {
Write-Warning "Days out of range: Defaulting to 10"
$days = (Get-Date) - (New-TimeSpan -Day 11)
}
$outputTitle = "$cn | System Error Logs | Last $Day Days"
$events = @()
$events += Get-WinEvent -ComputerName $cn -FilterHashtable @{ LogName='System'; Level=1; StartTime=$days }
$events += Get-WinEvent -ComputerName $cn -FilterHashtable @{ LogName='System'; Level=2; StartTime=$days }
$events += Get-WinEvent -ComputerName $cn -FilterHashtable @{ LogName='System'; Level=3; StartTime=$days }
$events | Out-GridView -Title $outputTitle
return
}