BgInfo, WMI and SQL Server
BgInfo from Sysinternals (now Windows Sysinternals, by Mark Russinovich) automatically displays relevant information about a Windows computer on the desktop's background, such as the computer name, IP address, service pack version, and more interesting features like WMI query results!
Often when I walked up to several systems in our data center by using a console switch, I have quickly to know important aspects of theirs configurations and if all SQL-Servers Services are running.
And there for I make a small script, which I use with
...
BgInfo, to display the SQL-Services and other informations.
The VB-script use a WMI query and check up SQL-Server properties. It looks like this:
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
i = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
"\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM " _
&"Win32_Service WHERE Name = 'MSSQLSERVER' " _
&"OR Name = 'SQLBrowser' OR Name = 'SQLSERVERAGENT' " _
&"OR Name = 'SQLWriter' OR Name = 'MsDtsServer' " _
&"OR Name = 'msftesql' OR Name = 'MSSQLServerOLAPService'" _
&"", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
strConn = "Driver={SQL Server};SERVER=" & strComputer
On Error Resume Next
Set objDB = CreateObject("ADODB.Connection")
For Each objItem in colItems
If objItem.state <> "Running" Then
Echo "******************************************"
Echo objItem.Name & " is " & objItem.state
Echo "******************************************"
Else
Echo objItem.Name & " is " & objItem.state
If objItem.Name = "MSSQLSERVER" Then i = 1
End If
Next
If i = 1 Then
objDB.Open(strConn)
If err.number <> 0 then
quitit
Else
sqlVers
End If
ElseIf i=0 then quitit
End If
Sub sqlVers()
strSQL = "select v=@@version"
Set objRS = objDB.Execute(strSQL)
If err.number <> 0 Then
quitit
Exit Sub
End if
strVer = objRS.Fields("v").value
If err.number <> 0 Then
quitit
Exit sub
End If
strSQL = " + CAST(SERVERPROPERTY ('productlevel')" _
& " AS varchar(30)) + ', Build ' " _
& " + CAST( SERVERPROPERTY('ProductVersion')" _
& " AS varchar(30)) + ', ' " _
& " + CAST( SERVERPROPERTY('Edition')" _
& " AS varchar(30)) + ', ' " _
& " + (CASE SERVERPROPERTY('EngineEdition')" _
& " WHEN 1 THEN 'Personal or Desktop'" _
& " WHEN 2 THEN 'Standard'" _
& " WHEN 3 THEN 'Enterprise'" _
& " WHEN 4 THEN 'Express'" _
& " END + ' Database Engine Edition')"
If instr(strVer, "2005 - 9") > 0 Then
strSQL = "SELECT v= 'SQL Server 2005 '" + strSQL
Set objRS = objDB.Execute(strSQL)
strVer = objRS.Fields("v").value
ElseIf instr(strVer, "2000 - 8") > 0 Then
strSQL = "SELECT v= 'SQL Server 2000 '" + strSQL
Set objRS = objDB.Execute(strSQL)
strVer = objRS.Fields("v").value
ElseIf instr(strVer, "7.00.1063") Then
strVer = "SQL Server 7.0 SP4"
ElseIf instr(strVer, "7.00.961") Then
strVer = "SQL Server 7.0 SP3"
ElseIf instr(strVer, "7.00.842") Then
strVer = "SQL Server 7.0 SP2"
ElseIf instr(strVer, "7.00.699") Then
strVer = "SQL Server 7.0 SP1"
ElseIf instr(strVer, "7.00.623") Then
strVer = "SQL Server 7.0"
End If
Echo strVer
End Sub
Sub quitit()
Echo "(Sorry, No Bonus!)"
End Sub
And the result :-)

CU
tosc
| Print article | This entry was posted by Torsten Schuessler on 2008-06-27 at 11:23:09 . Follow any responses to this post through RSS 2.0. |
http://www.insidesql.org/blogs/htsrv/trackback.php?tb_id=245
Schlagwort-Wolke
backup «best practices» books «case study» «cumulative update» datetime dmv ebook exams humor index indexoptimize integrity «io affinity» kb links loginproperty maintenance «ms sql server 2005» «ms sql server 2008» performance php profiler rebuild «reporting services» reports reviews serverproperty «service pack» «service pack 3» sharepoint sp_msforeachdb «sql 2008» «sql pass» «sql server» «sql server 2005» «sql server 2008 r2» «sql server builds» sqlcat sqlpass «sqlpass franken» sqlsrv ssms ssmstoolspack t-sql «technical note» tempdb tools troubleshooting whitepapers





2008-10-25 @ 22:40:52
:-)
2008-10-25 @ 22:41:52
Good job!
2010-10-19 @ 21:14:34
I know this is a little old but maybe someone looks at it. How would you adjust the script to account for SQL 2008 and SQL 2008 R2?