Monitorar Consumo de CPU com Script
-
segunda-feira, 20 de fevereiro de 2012 13:14
Bom Dia
Eu tenho um script na mão que monitora o uso do CPU usando o WMI, mas ele não esta mostrando o uso de CPU, porque quando eu executo ele, ele trás processos que não estão consumindo mais de 80% de CPU.
Segue o script que estou usando e se alguem souber aonde estou errando por favor me dizaer?
strComputer = "Pablo"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_PerfFormattedData_PerfProc_Process where PercentProcessorTime > 80")
For Each objItem in colItems
if objItem.PercentProcessorTime > 80 Then
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Processamento"
objMessage.From = "xxx"
objMessage.To = "xxx"
objMessage.TextBody = "Nome=" & objitem.NAme & " " & objItem.PercentProcessorTime
'==Esta seção fornece as informações de configuração para o servidor SMTP remoto.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Nome ou IP do servidor SMTP remoto
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
'Tipo de autenticação, NONE, Básico (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'O seu UserID no servidor SMTP
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx"
'Sua senha no servidor SMTP
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx"
'Porta do servidor (normalmente 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xxx
'Use SSL para a conexão (falso ou verdadeiro)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
'Tempo limite de conexão em segundos (o tempo máximo CDO tentará estabelecer uma conexão com o servidor SMTP)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==Fim SMTP remoto seção de configuração do servidor==
objMessage.Send
else
Wscript.Echo "-----------------------------------"
End if
next[]'s, Maikon Pablo Rodrigues
Todas as Respostas
-
segunda-feira, 20 de fevereiro de 2012 14:43
Olá brother,
Se entendi bem, você quer monitorar todos os processos com seus respectivos uso de CPU. Certo? Se for isto você pode utilizar o PsList da SysInternals.
Dá uma olhadinha neste blog
http://athiago.wordpress.com/2010/09/22/sysinternals-caso-pratico-de-uso-do-pslist/
Neste blog, o autor da uma idéia de como esta ferramenta funciona. Lembrando que ela faz parte da solução SysInternals e é da Microsoft. Então depois de baixar e copiar o PSlist para seu disco, você poderá utilizar a ferramenta pelo seu promot de comando.
Dá uma olhadinha e vê se é isto que você precisa ok!!!
Abraços e qualquer dúvida, estamos aqui!
-
segunda-feira, 20 de fevereiro de 2012 15:53Gostaria de usar um script mesmo estamos impossibilitado de usar qualquer tipo de programa em nosso servidor.
[]'s, Maikon Pablo Rodrigues
-
quarta-feira, 22 de fevereiro de 2012 12:56
Consegui achar um jeito de monitorar, pegando o processo _Total que especifica o CPU ocioso do servidor se este CPU esta menor que 20, quer dizer que o CPU do servidor esta usando mais de 80% de CPU assim ele envia um e-mail dizendo que o processo tal da maquina tal esta consumindo muito CPU.
Segue abaixo o Script:
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfProc_Process where Name = '_Total'") For Each objItem in colItems if objItem.PercentProcessorTime < 95 Then Set objMessage = CreateObject("CDO.Message") objMessage.Subject = "Processamento" objMessage.From = "xxx" objMessage.To = "xxx" objMessage.TextBody = "Nome=" & objitem.NAme & " " & objItem.PercentProcessorTime & strComputer '==Esta seção fornece as informações de configuração para o servidor SMTP remoto. objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = xxx 'Nome ou IP do servidor SMTP remoto objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx" 'Tipo de autenticação, NONE, Básico (Base64 encoded), NTLM objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = xxx 'O seu UserID no servidor SMTP objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx" 'Sua senha no servidor SMTP objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx" 'Porta do servidor (normalmente 25) objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xxx 'Use SSL para a conexão (falso ou verdadeiro) objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'Tempo limite de conexão em segundos (o tempo máximo CDO tentará estabelecer uma conexão com o servidor SMTP) objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 objMessage.Configuration.Fields.Update '==Fim SMTP remoto seção de configuração do servidor== objMessage.Send End if next
Obrigado a todos que ajudaram.
[]'s, Maikon Pablo Rodrigues
- Marcado como Resposta MpR_Pablo quarta-feira, 22 de fevereiro de 2012 12:56

