Powershell function to get Sqlserver errorlog recent lines
I’ve started knocking up a function to return the last few lines of a sqlserver errorlog.
This is a little way from being finished….but I’ve already found it quite handy
function get-sqlerrorlog {
[CmdletBinding()]
Param(
[String] [alias("computer")] $ComputerName,
[Int] [alias("lines")] $NumberOfLines = 5
)
write-verbose "Running function $([string]$MyInvocation.MyCommand.name)"
Write-verbose "`$ErrorLogFolder: $ErrorLogFolder"
$ErrorLogFolder = dir sqlserver:\sql\$ComputerName
# Todo: need to work out how it works more > 1 named instance. This just picks 1st
[string]$ErrorLogFolder = $($ErrorLogFolder | select -first 1).errorlogpath
Write-verbose "`$ErrorLogFolder: $ErrorLogFolder"
$ErrorLogFolder = $ErrorLogFolder.replace(':', '$')
Write-verbose "`$ErrorLogFolder: $ErrorLogFolder"
$ErrorLogFolder = '\\' + $ComputerName + '\' + $ErrorLogFolder
Write-verbose "`$ErrorLogFolder: $ErrorLogFolder"
# Todo: it might be that the get-content could be speeded up by retrieving less lines
# Todo: seperate this bit out into seperate function ?
get-content "$ErrorLogFolder\ERRORLOG" | select -last $NumberOfLines
}
set-alias gsel get-sqlerrorlog