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

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

Que vous soyez un analyste informatique ou un utilisateur régulier d'ordinateurs, vous devrez peut-être effectuer de nombreuses tâches fréquemment sur votre PC. Les scripts VB sont des programmes Visual Basic réduits qui servent de scripts Windows et 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 endroit commun auquel vous pouvez accéder 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 que vous souhaitez utiliser, copiez et collez simplement le script dans Bloc-notes ou 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 d'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 :


Et fermez le code avec :



WScript.Quit

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

1. Utilisez 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 tous les catégories de requêtes vous pouvez faire contre le système.





Nous avons expliqué comment utiliser VBA pour extraire des informations informatiques dans Excel , mais vous pouvez faire la même chose à l'aide d'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 afficherons 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 = 'MyComputerInfo.csv'
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

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

comment faire une peau de pluviomètre
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 fantaisiste, faites-le précéder de quelques lignes pour améliorer l'apparence de votre fichier de sortie :

oFile1.WriteLine 'Processor Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Family:,'+CStr(objResult.Family)
oFile1.WriteLine strResults
strResults = 'Manufacturer:,'+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = 'Number of Cores:,'+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Next

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

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

oFile1.WriteLine ''
strQuery = 'SELECT Description,Status FROM Win32_Battery'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Battery Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Status:,'+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults = 'Description:,'+CStr(objResult.Status)
oFile1.WriteLine strResults
Next

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

oFile1.WriteLine ''
strQuery = 'Select Name, FreeSpace, Size from Win32_LogicalDisk'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Disk Information'
oFile1.WriteLine '------'
'Identify the Logical Disk Space
For Each objResult In colResults
strResults = 'Name:,'+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults = 'Free Space:,'+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults = 'Disk Size:,'+CStr(objResult.Size)
oFile1.WriteLine strResults
Next

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

oFile1.Close
Set oFile1 = Nothing
set colResults = Nothing
strResults = ''

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

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

2. Arrêter et démarrer les services

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 surtout vrai en informatique lorsque vous êtes obligé d'exécuter un logiciel serveur parfois un peu bogué.

Si vous souhaitez gagner environ une minute sur 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 administratifs, vous devez placer le code suivant au début de votre script pour donner à votre script privilèges élevés :

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

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 to Stop','Input Required')
cmdShell.Run 'cmd.exe'
WScript.Sleep 1000
cmdShell.SendKeys 'net stop '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'net start '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'Exit'
cmdShell.SendKeys '{Enter}'

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, le 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.

Voilà 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 :

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

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

strUserName=Inputbox('Enter the default User Name','Input Required')
strPassword=Inputbox('Enter the default Password','Input Required')

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

Set wshShell = CreateObject( 'WScript.Shell' )
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultUserName', strUserName, 'REG_SZ'
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultPassword', strPassword, 'REG_SZ'
Set wshShell = Nothing

Et c'est tout. La méthode 'RegWrite' vous permet d'écrire n'importe quelle valeur dans n'importe quelle clé de registre à l'aide d'un script VB Windows. Tout ce que vous avez à savoir est le chemin approprié.

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

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

Jouez avec le script et modifiez-le à votre guise. Vous pouvez modifier n'importe quelle clé de registre, 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 à MakeUseOf. La version suivante 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 à partir du script ci-dessus.

Ensuite, créez l'objet WMI et demandez-lui une liste des cartes réseau activées sur votre système :

strComputer = '.'
Set objWMIService = GetObject('winmgmts:\' & strComputer & 'ootCIMV2')
Set colItems = objWMIService.ExecQuery( _
'SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'')

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

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

Cela réinitialisera tous vos cartes réseau actives , 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. Ping sur les appareils ou les sites Web

J'ai enregistré mon script Windows VB préféré pour la fin. C'est une tâche que j'ai configurée en tant que tâche planifiée sur mon ordinateur personnel et que je l'exécute plusieurs fois par jour juste pour vérifier si mon site Web est actif. J'ai le script par e-mail 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 que vous souhaitez pinger, créez l'objet shell, puis exécutez la commande ping.

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

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

Select Case Ping
Case 0
Case 1
Set objMessage = CreateObject('CDO.Message')
Set objConfig = CreateObject('CDO.Configuration')
objConfig.Load -1
Set Flds = objConfig.Fields
With Flds
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate')=1
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusername')='xxxxxx@gmail.com'
.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
.Update
End With
With objMessage
Set .Configuration = objConfig
.Subject = 'Your site is offline'
.From = 'me@mycomputer.com'
.To = 'xxxxxx@gmail.com'
.TextBody = 'Hey, your website is offline.'
.Send
End With
End Select

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é.

C'est simple, rapide et efficace !

Utilisation de scripts Windows VB pour contrôler votre ordinateur

Ce ne sont 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 des commandes telnet, ou même ouvrir et contrôler des fenêtres d'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 un autre outil comme PowerShell ?

Partager Partager Tweeter E-mail Voici pourquoi le FBI a émis un avertissement pour Hive Ransomware

Le FBI a émis un avertissement concernant une souche de ransomware particulièrement désagréable. Voici pourquoi vous devez vous méfier particulièrement du ransomware Hive.

Lire la suite
Rubriques connexes
  • La programmation
  • Automatisation informatique
  • Script
A propos de l'auteur Ryan Dubé(942 articles publiés)

Ryan est titulaire d'un baccalauréat en génie électrique. Il a travaillé 13 ans dans l'ingénierie d'automatisation, 5 ans dans l'informatique, et est maintenant ingénieur d'applications. Ancien rédacteur en chef de MakeUseOf, il a pris la parole lors de conférences nationales sur la visualisation des données et a été présenté à la télévision et à la radio nationales.

Plus de Ryan Dube

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner