Monitoramento de Serviços do SQL Server – VBScript

Neste artigo mostrarei um script (vbscript) que gera um arquivo no Excel com algumas informações sobre os serviços do SQL Server de um ou mais servidores.

O script irá retornar os seguintes campos:

• System Name: hostname do servidor;
• Display Name: nome do serviço que é mostrado no services.msc;
• Name: nome do serviço;
• Started: se o serviço está ou não iniciado;
• Start Mode: se o serviço está desabilitado, se é iniciado manualmente ou automaticamente;
• Logon Name: qual conta sobe o serviço;
• State: o status do serviço: running (rodando) ou stopped (parado).

Caso o serviço esteja parado, a linha estará com a fonte com cor vermelha.

Este script efetua um SELECT em uma classe (ou tabelas) do Windows – para mais informações destas classes, veja este post. Nesta classe ele coleta as informações referentes aos serviços que possuem o “SQL” no nome. Lembrando que ele não olha nada no banco de dados, ou efetua alguma conexão com o banco de dados, etc. Ele olha diretamente estas informações no SO!

Importante: Este script necessita de um driver, no caso o “Microsoft Excel Driver”. Verifique se você possuí o driver instalado: para isso, vá em Control Panel->Administrative Tools->Data Sources (ODBC), dê um duplo clique. Ele irá mostrar uma série de abas, na aba User DSN (a primeria aba), clique em Add. Veja se está listado o “Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)” ou “Microsoft Excel Driver (*.xls)”:

driverexcel

Caso você não possua o driver, você pode baixar neste link do MSDN.

Obs.: O usuário que executa o script precisa ter permissão para ler estas classes nos servidores onde serão feitas as verificações.

Para executar o script, é preciso criar um arquivo.txt com a lista dos servidores a serem verificados. No script o arquivo é este : C:\Maquinas.txt. Você pode mudar o caminho e o nome do arquivo no seguinte trecho código:

Set InputFile = fso.OpenTextFile(“C:\Maquinas.txt“)

Exemplo: C:\Maquinas.txt

localhost

O script do arquivo verifica_servicos.vbs é este:

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add
intRow = 2

objExcel.Cells(1, 1).Value = "System Name"
objExcel.Cells(1, 2).Value = "Display Name"
objExcel.Cells(1, 3).Value = "Name"
objExcel.Cells(1, 4).Value = "Started"
objExcel.Cells(1, 5).Value = "Start Mode"
objExcel.Cells(1, 6).Value = "Logon Name"
objExcel.Cells(1, 7).Value = "State"

Set Fso = CreateObject("Scripting.FileSystemObject")
Set InputFile = fso.OpenTextFile("C:\Maquinas.txt")
Do While Not (InputFile.atEndOfStream)
	strComputer = InputFile.ReadLine

	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
	Set colItems = objWMIService.ExecQuery("Select * From Win32_Service Where Name Like '%SQL%'")

	For Each objItem in colItems
		objExcel.Cells(intRow, 1).Value = objItem.SystemName
		objExcel.Cells(intRow, 2).Value = objItem.DisplayName
		objExcel.Cells(intRow, 3).Value = objItem.Name
		objExcel.Cells(intRow, 4).Value = objItem.Started
		objExcel.Cells(intRow, 5).Value = objItem.StartMode
		objExcel.Cells(intRow, 6).Value = objItem.StartName
		objExcel.Cells(intRow, 7).Value = objItem.State

		If objExcel.Cells(intRow, 7).Value = "Stopped" Then
			objExcel.Cells(intRow, 7).EntireRow.Font.ColorIndex = 3
		End If

		intRow = intRow + 1
	Next
Loop

objExcel.Range("A1:G1").Select
objExcel.Selection.Interior.ColorIndex = 19
objExcel.Selection.Font.ColorIndex = 11
objExcel.Selection.Font.Bold = True
objExcel.Cells.EntireColumn.AutoFit

Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
Set objRange = objExcel.Range("B2")
objRange.Sort objRange,1,,,,,,1

Execute o verifica_servicos.vbs, o resultado será:

result

Caso você queria saber mais sobre como utilizar o objeto Excel.Application, veja este link.

É isso aí!

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s