February 19, 2013 at 7:57 am
Hi, I am running a script to collect a count of all errors in the current error log using smo, as below:
$sqlServer = new-object ("Microsoft.SqlServer.Management.Smo.Server") "MYSERVER"
$logs = $sqlServer.ReadErrorLog() | where {($_.Text -like "Error*" -or $_.Text -like "*Fail*") -and ($_.Text -notlike "*Found 0 Errors*")};
$count = $logs.Count
$count
and then dumping this into a monitor database.
This works fine for most servers, but I have a 2005 cluster that for some reason won't return the count. If I just read the error log into console that works fine, but the .Count method disappears completely from the object. It is like, for this server, the object returned from $sqlServer.ReadErrorLog() is different to the rest of the servers.
Any ideas?
Thanks for reading.
February 19, 2013 at 8:25 am
I think I may have answered my own question.
It appears that the ReadErrorLog function is returning it's own error, rather than a collection of errors from the server log, which is where my confusion lay. As it is a single error, there is no collection / count for it. This happens when it connects okay to the server to return an smo object, but the function call returns an authentication error.
Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy