FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

5 scripts VBScript Windows puissants pour automatiser votre PC

Que vous soyez analyste informatique ou utilisateur régulier, automatiser les tâches répétitives sur votre PC Windows est essentiel. Les scripts VBScript (Visual Basic Script) offrent une flexibilité supérieure aux fichiers batch pour récupérer des infos système, gérer les services ou réinitialiser le réseau.

Stockez ces scripts accessibles et exécutez-les d'un double-clic pour gagner un temps précieux. Copiez le code dans le Bloc-notes, enregistrez en .wsf. Voici cinq exemples éprouvés, basés sur WMI et objets COM natifs de Windows.

Préparation des scripts Windows

Chaque script s'exécute avec un double-clic si nommé .wsf et encadré ainsi :

<job>
<script language="VBScript">

Fermez par :

WScript.Quit
</script>
</job>

Windows reconnaîtra alors le VBScript et l'exécutera correctement. Avertissement : Certains scripts nécessitent des droits administrateur ; exécutez en tant qu'admin pour éviter les erreurs.

1. Récupérer les informations système

Utilisez WMI (Windows Management Instrumentation) pour interroger le système en temps réel. Microsoft documente exhaustivement les classes WMI sur docs.microsoft.com.

Ce script génère un fichier CSV avec infos processeur, batterie et disques. Commencez par créer le fichier :

Set oFSO = CreateObject("Scripting.FileSystemObject")
sFile1 = "MonOrdinateurInfo.csv"
Set oFile1 = oFSO.CreateTextFile(sFile1, True)

Requête processeur :

strQuery = "SELECT Family, Manufacturer, NumberOfCores FROM Win32_Processor"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery(strQuery)
oFile1.WriteLine "Informations processeur"
oFile1.WriteLine "------"
For Each objResult In colResults
  oFile1.WriteLine "Famille :," & CStr(objResult.Family)
  oFile1.WriteLine "Fabricant :," & CStr(objResult.Manufacturer)
  oFile1.WriteLine "Nombre de cœurs :," & CStr(objResult.NumberOfCores)
Next
5 scripts VBScript Windows puissants pour automatiser votre PC

Batterie :

oFile1.WriteLine ""
strQuery = "SELECT Description, Status FROM Win32_Battery"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery(strQuery)
oFile1.WriteLine "Informations batterie"
oFile1.WriteLine "------"
For Each objResult In colResults
  oFile1.WriteLine "Description :," & CStr(objResult.Description)
  oFile1.WriteLine "Statut :," & CStr(objResult.Status)
Next

Disque logique :

oFile1.WriteLine ""
strQuery = "SELECT Name, FreeSpace, Size FROM Win32_LogicalDisk"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery(strQuery)
oFile1.WriteLine "Informations disque"
oFile1.WriteLine "------"
For Each objResult In colResults
  oFile1.WriteLine "Nom :," & CStr(objResult.Name)
  oFile1.WriteLine "Espace libre :," & CStr(objResult.FreeSpace)
  oFile1.WriteLine "Taille :," & CStr(objResult.Size)
Next

Fermeture :

oFile1.Close
Set oFile1 = Nothing
Set colResults = Nothing
5 scripts VBScript Windows puissants pour automatiser votre PC

Adaptez les requêtes pour d'autres composants et obtenez des rapports complets en un clic.

2. Arrêter et redémarrer les services

Redémarrez un service bogué en secondes. Ajoutez d'abord l'élévation admin :

If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
  WScript.Quit
End If

Puis :

Set objShell = CreateObject("WScript.Shell")
strServiceName = InputBox("Nom du service à redémarrer :", "Service")
objShell.Run "cmd.exe", 1, False
WScript.Sleep 1000
objShell.SendKeys "net stop " & strServiceName & "{ENTER}"
WScript.Sleep 2000
objShell.SendKeys "net start " & strServiceName & "{ENTER}"
WScript.Sleep 1000
objShell.SendKeys "exit{ENTER}"

3. Modifier le registre et mot de passe admin par défaut

Élevez d'abord (code ci-dessus). Demandez les infos :

strUserName = InputBox("Nom d'utilisateur par défaut :", "Utilisateur")
strPassword = InputBox("Mot de passe par défaut :", "Mot de passe")

Écriture :

Set wshShell = CreateObject("WScript.Shell")
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", strUserName, "REG_SZ"
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", strPassword, "REG_SZ"
Set wshShell = Nothing
5 scripts VBScript Windows puissants pour automatiser votre PC5 scripts VBScript Windows puissants pour automatiser votre PC

Attention : Sauvegardez le registre avant modifications.

4. Réinitialiser les connexions réseau

Élevez admin. Liste adaptateurs actifs :

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetEnabled = True")

Réinitialisation :

For Each objItem in colItems
  objItem.Disable
  WScript.Sleep 1000
  objItem.Enable
Next

5. Ping et alerte par e-mail

Surveillez un site/serveur. Exemple ping :

strTarget = "topsecretwriters.com"
Set WshShell = WScript.CreateObject("WScript.Shell")
intPing = WshShell.Run("ping -n 1 " & strTarget, 0, True)

Alerte e-mail si échec (adaptez SMTP) :

Select Case intPing
  Case 1
    Set objMessage = CreateObject("CDO.Message")
    Set objConfig = CreateObject("CDO.Configuration")
    objConfig.Load -1
    Set Flds = objConfig.Fields
    With Flds
      .Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
      .Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
      .Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "votre@email.com"
      .Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "votre_motdepasse"
      .Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
      .Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
      .Update
    End With
    With objMessage
      Set .Configuration = objConfig
      .To = "dest@email.com"
      .From = "alert@pc.com"
      .Subject = "Site hors ligne"
      .TextBody = "Ping échoué pour " & strTarget
      .Send
    End With
End Select
5 scripts VBScript Windows puissants pour automatiser votre PC

Maîtrisez votre PC avec VBScript

Ces scripts illustrent le potentiel VBScript pour l'automatisation. Explorez backups, Telnet ou contrôle apps. PowerShell est une alternative moderne, mais VBS reste lightweight.

Qu'avez-vous automatisé ? Partagez en commentaires !

[]