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

5 scripts Windows VB utiles pour automatiser l'utilisation de votre ordinateur

Que vous soyez un analyste informatique ou un utilisateur régulier d'un ordinateur, vous devrez peut-être effectuer fréquemment de nombreuses tâches sur votre PC. Les scripts VB sont des programmes Visual Basic réduits qui servent de scripts Windows qui peuvent faire n'importe quoi, de la récupération d'informations importantes sur votre matériel informatique à l'arrêt et au démarrage de services ou à la réinitialisation de votre carte réseau.

Il est possible d'apprendre à faire toutes ces choses individuelles de manière normale, ou de les faire en utilisant des fichiers batch. Mais les scripts VB sont meilleurs que les scripts batch car ils sont plus flexibles. Si vous stockez les scripts suivants dans un emplacement commun accessible rapidement lorsque vous en avez besoin, vous pouvez accomplir ces tâches en une fraction du temps. Il vous suffit de double-cliquer sur le script, de répondre à une invite et la tâche est terminée.

Jetez un œil aux scripts VB Windows suivants et si vous en voyez un que vous souhaitez utiliser, copiez et collez simplement le script dans le Bloc-notes ou un autre outil de notes de codage et enregistrez-le en tant que fichier WSF.

Préparez vos scripts Windows

Chacun des scripts détaillés ci-dessous s'exécutera avec un simple double-clic tant que vous avez nommé le fichier avec l'extension .WSF, et que vous avez également inclus le code au début avec :

 

Cela garantit que Windows reconnaîtra la langue dans laquelle votre script est écrit et le traitera correctement.

1. Utiliser des scripts Windows pour les informations sur l'ordinateur

Windows propose quelque chose appelé WMI, ou Windows Management Instrumentation, qui fournit à votre script une interface pour accéder aux composants du système d'exploitation. Vous pouvez en fait exécuter des requêtes sur WMI pour obtenir des informations en temps réel sur votre système. Microsoft propose une liste complète de toutes les catégories de requêtes que vous pouvez effectuer sur le système.

Nous avons expliqué comment utiliser VBA pour extraire des informations informatiques dans Excel, mais vous pouvez faire la même chose en utilisant un simple script VB en dehors d'Excel.

Dans cet exemple, nous allons interroger le système pour obtenir des informations sur le processeur (famille, fabricant et nombre de cœurs), des informations sur la batterie (description et état) et des informations sur le disque logique (nom, espace libre restant et taille globale). Ensuite, nous sortirons toutes ces informations dans un fichier CSV pour une visualisation facile.

La première étape consiste à configurer le FileSystemObject que vous utiliserez pour générer le fichier CSV et à créer le fichier :

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

L'étape suivante consiste à configurer la requête WMI et à l'exécuter :

strQuery ="SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor" 
Set colResults =GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )

Enfin, triez les résultats et exportez les informations dans le fichier CSV. Si vous voulez être sophistiqué, faites précéder ceci de quelques lignes pour améliorer l'apparence de votre fichier de sortie :

oFile1.WriteLine "Informations sur le processeur" 
oFichier1.WriteLine "------"
Pour chaque objResult dans colResults
strResults ="Famille :,"+CStr(objResult. Famille)
oFile1.WriteLine strResults
strResults ="Fabricant :,"+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults ="Nombre de cœurs :,"+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Suivant

Si vous exécutez votre code maintenant, voici à quoi ressemblera votre sortie :

5 scripts Windows VB utiles pour automatiser l utilisation de votre ordinateur

Pour les deux prochaines sections de votre code, vous allez simplement répéter et modifier la requête pour rechercher les informations supplémentaires. Voici la requête d'informations sur la batterie :

oFile1.WriteLine "" 
strQuery ="SELECT Description,Statut FROM Win32_Battery"
Set colResults =GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )
oFile1.WriteLine "Informations sur la batterie"
oFichier1.WriteLine "------"
Pour chaque objResult dans colResults
strResults ="Statut :,"+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults ="Description :,"+CStr(objResult.Status)
oFile1.WriteLine strResults
Suivant

Et voici la section suivante pour la requête de disque logique :

oFile1.WriteLine "" 
strQuery ="Sélectionnez le nom, l'espace libre, la taille dans Win32_LogicalDisk"
Set colResults =GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )
oFile1.WriteLine "Informations sur le disque"
oFichier1.WriteLine "------"
'Identifier l'espace disque logique
Pour chaque objResult dans colResults
strResults ="Nom :,"+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults ="Espace libre :,"+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults ="Taille du disque :,"+CStr(objResult.Size)
oFile1.WriteLine strResults
Suivant

Enfin, n'oubliez pas de fermer le code en fermant le fichier et en définissant les objets sur "Rien":

oFile1.Close 
Set oFile1 =Rien
set colResults =Rien
strResults =""

Mettez tout ce code dans votre nouveau fichier .WSF, exécutez-le et voici à quoi ressemblera votre sortie :

5 scripts Windows VB utiles pour automatiser l utilisation de votre ordinateur

Remplacez simplement les requêtes ci-dessus par tout autre périphérique informatique ou logiciel sur lequel vous souhaitez obtenir des informations, et vous pouvez obtenir un rapport système complet à tout moment en un simple clic de souris.

2. Services d'arrêt et de démarrage

Il y aura des moments où certains services auront des problèmes et nécessiteront juste un redémarrage rapide pour fonctionner à nouveau correctement. C'est particulièrement vrai en informatique lorsque vous êtes obligé d'exécuter un logiciel serveur parfois un peu bogué.

Si vous souhaitez réduire d'environ une minute le processus de redémarrage du service, stockez simplement le script suivant dans un endroit pratique. Il vous demandera de saisir le nom du service que vous souhaitez redémarrer, puis il fera exactement cela.

Étant donné que l'arrêt et le démarrage des services nécessitent des privilèges d'administrateur, vous devez placer le code suivant au début de votre script pour donner à votre script des privilèges élevés :

Si non WScript.Arguments.Named.Exists("elevate") Alors 
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" &WScript.ScriptFullName &""" /elevate", "", "runas", 1
WScript.Quitter
Fin si

Une fois cela fait, ajoutez le reste du code pour exécuter la zone de saisie pour la saisie de l'utilisateur, lancez la fenêtre de commande et envoyez-lui les commandes "net stop" et "net start":

Set cmdShell =CreateObject("WScript.Shell") 
strServiceName=Inputbox("Inter Service à arrêter","Saisie requise")
cmdShell. Exécutez "cmd.exe"
WScript.Veille 1000
cmdShell.SendKeys " arrêt net " + strServiceName
cmdShell.SendKeys "{Entrée}"
WScript.Veille 1000
cmdShell.SendKeys "net start" + strServiceName
cmdShell.SendKeys "{Entrée}"
WScript.Veille 1000
cmdShell.SendKeys "Quitter"
cmdShell.SendKeys "{Entrée}"

C'est tout ce qu'on peut en dire. Pas besoin de chercher l'outil de services. Exécutez simplement ce script et arrêtez et démarrez n'importe quel service en quelques secondes.

3. Modifier les paramètres du registre, mot de passe administrateur par défaut

Avec le script suivant, nous allons faire d'une pierre deux coups. Ce script vous montrera comment modifier le registre avec un script VB. Il vous donnera également un script qui vous permettra de définir le nom d'utilisateur et le mot de passe Windows par défaut en modifiant ces paramètres de registre.

Voici comment cela fonctionne. Tout d'abord, étant donné que la modification du registre nécessite des droits d'administrateur, vous devrez configurer des privilèges élevés pour votre script :

Si non WScript.Arguments.Named.Exists("elevate") Alors 
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" &WScript.ScriptFullName &""" /elevate", "", "runas", 1
WScript.Quitter
Fin si

Exécutez d'abord deux champs de saisie pour demander à l'utilisateur quel nom d'utilisateur et mot de passe utiliser :

strUserName=Inputbox("Entrez le nom d'utilisateur par défaut","Entrée requise") 
strPassword=Inputbox("Entrez le mot de passe par défaut","Entrée requise")

Ensuite, configurez l'objet shell et écrivez ces valeurs dans les clés de registre appropriées :

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"
Définir wshShell =Rien

Et c'est tout ce qu'il y a à faire. La méthode "RegWrite" vous permet d'écrire n'importe quelle valeur sur n'importe quelle clé de registre à l'aide d'un script VB Windows. Tout ce que vous devez savoir est le chemin approprié.

Exécutez le script et répondez aux invites.

5 scripts Windows VB utiles pour automatiser l utilisation de votre ordinateur

Les valeurs que vous entrez seront insérées directement dans les paramètres de registre que vous avez configurés dans le script.

5 scripts Windows VB utiles pour automatiser l utilisation de votre ordinateur

Jouez avec le script et modifiez-le à votre guise. Vous pouvez modifier toutes les clés de registre que vous aimez, alors soyez créatif !

4. Réinitialisez votre connexion réseau

La réinitialisation de votre connexion réseau à l'aide de scripts VB est quelque chose que nous avons déjà couvert ici sur MakeUseOf. La version suivante de ceci est en fait réduite et beaucoup plus simple à mettre en œuvre. Au lieu de demander des cartes réseau individuelles, il réinitialise toutes vos connexions actives, ce qui, espérons-le, résoudra tous les problèmes de réseau que vous pourriez rencontrer.

Comme pour les autres scripts nécessitant des droits d'administrateur, vous devrez ajouter la section au début pour les privilèges élevés. Copiez ce code du script ci-dessus.

Ensuite, créez l'objet WMI et interrogez-le pour obtenir une liste des adaptateurs réseau activés sur votre système :

strComputer ="." 
Set objWMIService =GetObject("winmgmts:\\" &strComputer &"oot\CIMV2")
Set colItems =objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Où NetEnabled ='True'")

Enfin, parcourez tous les adaptateurs activés et réinitialisez-les :

Pour chaque objItem dans colItems 
objItem.Disable
WScript.Veille 1000
objItem.Enable
Suivant

Cela réinitialisera tous vos adaptateurs réseau actifs, ce qui est souvent le moyen le plus rapide de résoudre les problèmes de réseau ennuyeux. Gardez ce script à portée de main et essayez-le d'abord chaque fois que vous avez un réseau lent ou d'autres problèmes de réseau étranges.

5. Appareils ping ou sites Web

J'ai enregistré mon script Windows VB préféré pour la fin. C'est celui que j'ai configuré en tant que tâche planifiée sur mon ordinateur personnel et que je l'ai exécuté plusieurs fois par jour juste pour vérifier si mon site Web est actif. J'ai le script m'envoie si le site est en panne. Vous pouvez utiliser ce même script pour surveiller des serveurs ou des ordinateurs importants sur votre réseau et vous envoyer un e-mail chaque fois que votre script ne peut pas envoyer de ping à l'appareil.

Tout d'abord, configurez le script pour la cible à laquelle vous souhaitez envoyer un ping, créez l'objet shell, puis exécutez la commande ping.

strCible ="topsecretwriters.com" 
Définir WshShell =WScript.CreateObject("WScript.Shell")
Ping =WshShell.Run("ping -n 1 " &strCible, 0, Vrai)

Utilisez une instruction Select Case pour parcourir les résultats du ping et répondre en conséquence. Si les résultats reviennent à zéro, alors vous savez que le site (ou le serveur) est en ligne et vous n'avez rien à faire. S'il renvoie un "1", le ping a échoué et vous devez faire quelque chose. Dans mon cas, j'envoie un email en utilisant l'objet Windows CDO :

Select Case Ping 
Cas 0
Cas 1
Set objMessage =CreateObject("CDO.Message")
Set objConfig =CreateObject("CDO.Configuration")
objConfig.Load -1
Set Flds =objConfig.Fields
Avec Flds
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") =Vrai
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername")="[email protected]"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxxxxxxxxxxxxxxxx"
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465
.Mettre à jour
Terminer par
Avec objMessage
Définir .Configuration =objConfig
.Subject ="Votre site est hors ligne"
.From ="[email protected]"
.To ="[email protected]"
.TextBody ="Hé, votre site Web est hors ligne."
.Envoyer
Terminer par
Fin de sélection

Une fois que le script s'exécute et ne peut pas envoyer de ping à l'appareil ou au site Web, vous recevez un message instantané.

5 scripts Windows VB utiles pour automatiser l utilisation de votre ordinateur

C'est simple et rapide, et efficace !

Utilisation de scripts VB Windows pour contrôler votre ordinateur

Ce ne sont là que quelques exemples de certaines des choses intéressantes que vous pouvez faire avec les scripts VB pour rationaliser l'utilisation de votre ordinateur. Il y a beaucoup d'autres choses que vous pouvez faire comme des sauvegardes automatisées avec VB et Synctoy, automatiser les commandes telnet, ou même ouvrir et contrôler les fenêtres des applications.

Quelles sont certaines des choses que vous avez automatisées sur votre ordinateur avec un script Windows ? Écrivez-vous le vôtre en utilisant VB ou utilisez-vous un autre outil comme PowerShell ?


[]