O programa monitora o resultado de uma função Visual Basic Script (VBScript).
No mesmo espírito da verificação "Aplicativo externo", as verificações "VBScript" e "Java-script" deixam o usuário criar testes específicos nessas linguagens. Nas configurações, escreva o código-fonte do script de teste e indique qual função é a principal (executável). Para o resultado positivo, o script precisa sempre devolver a cadeia "OK" . Se devolver outro valor, a verificação é considerada com falha e o programa alerta. Teste os scripts com os meios padrão do sistema operacional antes de configurar as verificações.
As verificações VBScript e Java-Script ampliam bastante a capacidade de monitoramento da rede e do hardware de rede.
Exemplos úteis de VBScript para monitoramento
1. Obter o tamanho da pasta, inclusive das subpastas
2. Verificar as datas dos arquivos de uma pasta (útil para monitorar gravações de CFTV em um servidor de arquivos)
3. Obter o uso de RAM em porcentagem
4. Obter o uso médio de todos os discos rígidos em porcentagem
5. Executar uma requisição GET ou POST (por HTTP)
6. Enviar uma mensagem ao Slack
1. Obter o tamanho da pasta, inclusive das subpastas
function Main
'Informe o caminho da pasta aqui:
Main = GetFolderSize("C:\\Logs\\")
'Use \\ em vez de \ no caminhoend function
Function GetFolderSize(Path)
Dim fso, fsize
Dim ctFolder, cFile, cFolder
Set fso=CreateObject("Scripting.FileSystemObject")
fsize = 0
Set ctFolder = fso.GetFolder(Path)
On Error Resume Next
For Each cFile In ctFolder.Files
fsize = fsize + cFile.Size
Next
For Each cFolder In ctFolder.SubFolders
fsize = fsize + GetFolderSize(cFolder.Path)
Next
GetFolderSize = fsize
End Function
2. Verificar as datas dos arquivos de uma pasta. Se todos os arquivos tiverem a data de hoje, o retorno é 1; caso contrário, 0. No lugar de um caminho local, informe uma pasta de rede.
function Main
Dim fso, fsize
Dim ctFolder, cFile, AR, sdate, sdate2, sdate3
Set fso = CreateObject("Scripting.FileSystemObject")'Informe o caminho da pasta aqui:
Set ctFolder = fso.GetFolder("C:\\Logs\\")
'Use \\ em vez de \ no caminhoAR = 1
sdate = CStr(Day(Date) & "." & Month(Date) & "." & Year(Date))
For Each cFile In ctFolder.Files
sdate2 = CStr(cFile.datelastmodified)
sdate3 = CStr(Day(sdate2) & "." & Month(sdate2) & "." & Year(sdate2))
If sdate <> sdate3 Then AR = 0
Next
Main=AR
End Function
3. Obter o uso de RAM em porcentagem. No lugar da chave %A, o programa coloca automaticamente o endereço do host, a partir dos parâmetros da verificação. O script usa uma consulta WMI — outras consultas podem seguir este exemplo.
function Main
strHostAddr = "%A"
strLogin = ""
strPassword = ""
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strHostAddr, "root\cimv2", strLogin, strPassword)
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
Main = Int((int(objItem.TotalVisibleMemorySize) - int(objItem.FreePhysicalMemory))/int(objItem.TotalVisibleMemorySize)*100)
Next
end function
4. Obter o uso médio de todos os discos rígidos em porcentagem
function Main
strHostAddr = "%A"
strLogin = ""
strPassword = ""
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strHostAddr, "root\cimv2", strLogin, strPassword)
Set colItems = objWMIService.ExecQuery("SELECT PercentIdleTime FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk where Name='_Total'",,48)
For Each objItem in colItems
Main = 100 - (int(objItem.PercentIdleTime))
Next
end function
5. Executar uma requisição GET ou POST (por HTTP). Serve como ação em resposta a um alerta de falha.
function Main
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "https://send.cpsms.dk/sendsms?to:79991234567?from:79991234567?msg:test", False
o.send
Main = ""
end function
6. Enviar uma mensagem ao Slack por URL de webhook (a partir do exemplo de requisição POST)
function Main
Dim request
Set request = CreateObject("MSXML2.XMLHTTP")
request.open "POST", "https://hooks.slack.com/services/AJHGK45J4/FTS5NFG73/UDz30ftMMzinOgFxhTx2zBBB", false
request.send "{""text"": ""It is a test! ""}"
Main = ""
end function
Para incluir esta verificação, selecione um host, clique em "Add check" e encontre o nome da verificação na janela do assistente.

Configure os parâmetros da verificação na janela que abrir. Depois, altere-os pelo item de menu "Edit Check...". Saiba como configurar os alertas da verificação e as outras opções.
Requisitos: Windows XP/Vista/7/8.1/10/11, Server 2003/2008/2012/2016/2019/2022.