3 choses impressionnantes que vous pouvez faire avec Windows Scripting

  • Gabriel Brooks
  • 0
  • 2449
  • 243
Publicité

Que vous travailliez dans le domaine informatique, en tant que concepteur Web ou simplement étudiant ou employé de bureau, Windows Scripting a quelque chose à vous offrir. Bien sûr, Applescript Comment utiliser l'interface utilisateur d'Apple Scripting sur Mac Comment utiliser l'interface utilisateur d'Apple Scripting sur Mac le fait aussi, mais dans ce cas, je me concentre sur Windows. Lorsque je fais référence à Windows Scripting, je fais référence à des fichiers texte contenant du code enregistré en tant que fichiers .wsf, que Windows est en mesure de compiler et d'exécuter à la volée..

Il y a presque un an, j’ai écrit une introduction à Mieux écrire un script dans Windows: un tutoriel d’hôte de script Windows Mieux qu’un lot: un didacticiel d’hôte de script Windows qui montrait à quel point un script .wsf pouvait être plus puissant que les anciens Les professionnels de l'informatique écrivent et utilisent des scripts depuis des années. WSF vous donne la puissance d'un langage structuré tel que Visual Basic. Par défaut, vous pouvez créer un fichier VBScript ou JScript WSF sous Windows, qui fonctionnera parfaitement..

Au-delà de cet article d'introduction, je souhaitais aujourd'hui offrir trois outils typiques que les gens utilisent souvent dans un environnement informatique professionnel et à la maison. Ces trois outils incluent la lecture des entrées d’un fichier texte, l’envoi de commandes à divers périphériques de votre réseau et l’envoi de messages électroniques par script..

Le pouvoir de Windows Scripting

En apprenant chacune de ces petites composantes, vous pourrez les combiner dans un script automatisé plus volumineux. Je vais passer en revue de petits échantillons de script que vous pouvez assembler dans un script automatisé très cool. Ce script va prendre une liste d'adresses IP d'entrée dans un fichier texte, envoyer une requête ping à chacun de ces périphériques, puis envoyer un e-mail d'alerte si l'un de ces périphériques est hors service..

Lecture des fichiers d'entrée

La première étape de ce processus consiste à apprendre à lire et à traiter les informations d’un fichier texte d’entrée. Dans ce cas, j'ai créé un fichier texte appelé IPlist.ini qui réside dans le même répertoire que le script. Ce fichier contient une liste de toutes les adresses IP que je veux vérifier. Vous pouvez lire chaque ligne d'un fichier texte à l'aide du script suivant.

  Option Explicit On Error Resume Next
Dim strHost Dim strCommand Dim ReturnCode Dim strLine Dim oFSO, sFichier, oFichier, sTexte
Définir Shell = wscript.createObject ("wscript.shell") Définir oFSO = CreateObject ("Scripting.FileSystemObject") sFile = "c: \ utilisateurs \ propriétaire \ scripts \ IPlist.ini" Si oFSO.FileExists (sFile), définissez ensuite oFile. = oFSO.OpenTextFile (sFile, 1) Faites ce qui ne l'est pas oFile.AtEndOfStream sText = oFile.ReadLine If Trim (sText) - Then strCommand = sText wscript.echo "L'adresse IP est:" & sText End If Loop oFile.Close
Sinon WScript.Echo "Le fichier n'était pas là." Fin si WScript.Quit  

Le code utilise l’objet système de fichiers Windows pour ouvrir un fichier, puis lit une ligne de texte à la fois jusqu’à la fin du fichier..

Faire un ping avec un hôte

Maintenant que vous savez lire chaque adresse IP dans le fichier texte, comment procédez-vous pour exécuter une commande ping avec Windows Scripting?

Le ping est un peu plus compliqué que la lecture dans un fichier texte, car vous devez utiliser le script WMI (Windows Management Instrumentation). Voici à quoi ça ressemble.

  Option Explicit On Error Resume Next
Dim colPingResults, objPingResult, strQuery Dim strIPtext strIPtext = "192.168.1.105"
'Requête WMI strQuery = "SELECT * FROM Win32_PingStatus WHERE Address ='" & strIPtext & "'"
Définir colPingResults = GetObject ("winmgmts: //./root/cimv2") .ExecQuery (strQuery)
'Traduire les résultats de la requête
Pour chaque objPingResult dans colPingResults If Not IsObject (objPingResult) Then Ping = False wscript.echo strIPtext & "n'est pas pingable" ElseIf objPingResult.StatusCode = 0 alors Ping = True wscript.echo strIPtext & "Ping" est en couleur. echo strIPtext & "is not pingable" End If Next Définir colPingResults = Nothing WScript.Quit  

Vous avez vu comme c'était facile? Lorsque je l'exécute, une fenêtre contextuelle s'affiche pour indiquer si l'adresse IP était pingable ou non..

Dans ce script, je n'ai envoyé qu'une seule adresse IP à un ping, mais tout ce que vous avez à faire est d'intégrer ce ping dans le script précédent une fois que chaque adresse IP a été lue dans le fichier texte. Vous pouvez aussi envoyer une requête ping à chaque adresse IP de votre liste..

Envoi d'un email

Enfin, même s’il est agréable d’avoir un script qui vérifie les adresses IP et ouvre une fenêtre en cas d’erreurs, ne serait-il pas agréable d’exécuter le script quotidiennement, ou plusieurs fois par jour et de l’avoir email automatiquement avec des problèmes?

Pour ce faire, vous devez savoir comment envoyer un courrier électronique dans un script. Si vous effectuez une recherche en ligne, vous découvrirez des dizaines (ou plus) de façons d'accomplir cela. De loin, le plus populaire utilise l'approche CDO.

  Option Explicit On Error Resume Next
Const fromEmail = "[email protected]" Const mot de passe = "xxxxxxxx"
Dim emailObj, emailConfig Définir emailObj = CreateObject ("CDO.Message") emailObj.From = [email protected] emailObj.To = "[email protected]" emailObj.Subject = "Email de test" emailObj.TextBody = ". !! "
Définissez emailConfig = emailObj.Configuration emailConfig.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" emailConfig.Fields ("http://schemas.microsoft.com / cdo / configuration / smtpserverport ") = 465 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendusing ") = 2 emailConfig.Fields (" http://schemas.microsoft.com/cdo / configuration / smtpauthenticate ") = 1 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = true emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration / sendusername ") = fromEmail emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") = mot de passe emailConfig.Fields.Update emailObj.Send Définir emailobj = none Définir emailConfig = none WScript.Quit
 

Le script ci-dessus vous permettra d'envoyer le texte du corps du message sous forme d'e-mail à n'importe quelle adresse à l'aide de vos informations d'identification Gmail. Vous pouvez modifier les paramètres pour utiliser tout autre serveur de messagerie SMTP que vous aimez..

Il ne vous reste plus qu'à assembler ces trois éléments de code. Lorsque vous le faites, le script lit chaque liste d'adresses IP, envoie une requête ping à chacune d'elles, puis envoie cette chaîne en tant que corps du message à un courrier électronique de notification. Voici à quoi ce courrier ressemblera.

Comme vous pouvez l'imaginer, cela devient très utile dans le monde informatique, où vous avez une liste interminable de périphériques et de serveurs à surveiller, et ce, seulement 24 heures par jour. Chaque fois que vous pouvez avoir des scripts automatisés qui peuvent vérifier les choses pour vous, faites-le.

Essayez ces scripts Windows et voyez si cela vous aide à optimiser votre travail et à rendre les choses plus efficaces. Connaissez-vous d'autres choses intéressantes que vous pouvez faire avec Windows Scripting? Partagez vos pensées dans la section des commentaires ci-dessous.

Crédit d'image: Mario Alberto Magallanes Trejo




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.