Get-ServerErrors Powershell Function
Here’s a little Powershell function I’m using to check the Event Logs and SQL Server Error Logs in one easy swoop;
function Get-ServerErrors
{
# Server to check & hours back. Will only support default sql instances
# Could add a third param for instance and modify script where appropriate if needed
param ($server, [int]$hours);
[datetime]$after = $(Get-Date).AddHours(-$hours);
# Windows Event Log (Application & System) Errors & Warnings
Write-Host "Application Event Log Errors from $server after $after";
Write-Host "========================================================================";
Get-EventLog -ComputerName $server -LogName "Application" -EntryType "Error" -After $after | Format-List;
Write-Host "Press any key to continue or ctrl + c to quit";
$r = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown");
Write-Host "System Event Log Errors from $server after $after";
Write-Host "========================================================================";
Get-EventLog -ComputerName $server -LogName "System" -EntryType "Error" -After $after | Format-List;
Write-Host "Press any key to continue or ctrl + c to quit";
$r = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown");
Write-Host "Application Event Log Warnings from $server after $after";
Write-Host "========================================================================";
Get-EventLog -ComputerName $server -LogName "Application" -EntryType "Warning" -After $after | Format-List;
Write-Host "Press any key to continue or ctrl + c to quit";
$r = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown");
Write-Host "System Event Log Warnings from $server after $after";
Write-Host "========================================================================";
Get-EventLog -ComputerName $server -LogName "System" -EntryType "Warning" -After $after | Format-List;
Write-Host "Press any key to continue or ctrl + c to quit";
$r = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown");
# SQL Server Error Log
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") ;
$sql_server = new-object ("Microsoft.SqlServer.Management.Smo.Server") $server;
$sql_server.ReadErrorLog() | Where-Object {$_.Text -like "Error*" -and $_.LogDate -ge $after};
}
Usage is as follows;
Get-ServerErrors<server name> <hours back to check>;
</hours></server>