Le programme permet de surveiller le résultat d'une fonction Visual Basic Script (VBScript).
Comme le contrôle « Application externe », les contrôles « VBScript » et « JavaScript » permettent de créer des tests spécifiques dans ces langages. Dans les paramètres, écrivez le code source du script de test et indiquez quelle fonction est la fonction principale (exécutable). Pour un résultat positif, le script doit toujours renvoyer la chaîne « OK ». Si la valeur renvoyée est différente, le contrôle est en échec et l'application émet une alerte. Vérifiez le fonctionnement des scripts avec les outils du système avant de configurer les contrôles.
Les contrôles « VBScript » et « JavaScript » étendent nettement les possibilités de surveillance du réseau et des équipements.
Exemples utiles de scripts VB pour la surveillance
1. Obtenir la taille d'un dossier, sous-dossiers compris
2. Vérifier les dates des fichiers d'un dossier (utile pour surveiller les enregistrements de vidéosurveillance sur un serveur de fichiers)
3. Obtenir l'utilisation de la mémoire RAM, en pourcentage
4. Obtenir l'utilisation moyenne de tous les disques durs, en pourcentage
5. Exécuter une requête GET ou POST (HTTP)
6. Envoyer un message vers Slack
1. Obtenir la taille d'un dossier, sous-dossiers compris
function Main
'Indiquez ici le chemin du dossier :
Main = GetFolderSize("C:\\Logs\\")
'Utilisez \\ à la place de \ dans le cheminend 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. Vérifier les dates des fichiers d'un dossier. Si tous les fichiers ont la date du jour, le script renvoie 1, sinon 0. Vous pouvez indiquer un dossier réseau à la place d'un chemin local.
function Main
Dim fso, fsize
Dim ctFolder, cFile, AR, sdate, sdate2, sdate3
Set fso = CreateObject("Scripting.FileSystemObject")'Indiquez ici le chemin du dossier :
Set ctFolder = fso.GetFolder("C:\\Logs\\")
'Utilisez \\ à la place de \ dans le cheminAR = 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. Obtenir l'utilisation de la mémoire RAM, en pourcentage. À la place de la clé %A, le programme substitue automatiquement l'adresse de l'hôte issue des paramètres du contrôle. Le script interroge WMI. Vous pouvez en écrire d'autres sur ce modèle.
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. Obtenir l'utilisation moyenne de tous les disques durs, en pourcentage
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. Exécuter une requête GET ou POST (HTTP). Vous pouvez l'utiliser comme action en réponse à une alerte en échec.
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. Envoyer un message vers Slack via une URL de webhook (sur le modèle de la requête 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"": ""Ceci est un test ! ""}"
Main = ""
end function
Pour ajouter ce contrôle, sélectionnez un hôte, cliquez sur « Ajouter un contrôle », puis recherchez le nom du contrôle dans la fenêtre de l'assistant.

Configurez les paramètres du contrôle dans la fenêtre qui s'affiche. Vous pourrez les modifier ensuite à l'aide de la commande « Modifier le contrôle... ». Pour en savoir plus, consultez comment configurer les alertes du contrôle et les autres options.
Configuration requise : Windows XP/Vista/7/8.1/10/11, Server 2003/2008/2012/2016/2019/2022 pris en charge.