5 Handige VB Windows-scripts om uw computergebruik te automatiseren

5 Handige VB Windows-scripts om uw computergebruik te automatiseren

Of u nu een IT-analist bent of een gewone computergebruiker, er zijn veel taken die u vaak op uw pc moet uitvoeren. VB-scripts zijn verkleinde Visual Basic-programma's die dienen als Windows-scripts die alles kunnen doen, van het ophalen van belangrijke informatie over uw computerhardware tot het stoppen en starten van services of het resetten van uw netwerkkaart.





Het is mogelijk om te leren hoe u al deze afzonderlijke dingen op de normale manier kunt doen, of u kunt ze met batchbestanden doen. Maar VB-scripts zijn beter dan batchscripts omdat ze flexibeler zijn. Als u de volgende scripts op een gemeenschappelijke plaats opslaat die u snel kunt bereiken wanneer u ze nodig hebt, kunt u deze taken in een fractie van de tijd uitvoeren. U dubbelklikt gewoon op het script, beantwoordt een prompt en de taak is voltooid.





Bekijk de volgende VB Windows-scripts en als u er een ziet die u wilt gebruiken, kopieer en plak het script in Kladblok of ander hulpmiddel voor codeernotities en sla het op als een WSF-bestand.





Bereid uw Windows-scripts voor

Elk van de hieronder beschreven scripts wordt uitgevoerd met slechts een dubbelklik, zolang u het bestand de .WSF-extensie heeft gegeven en u de code aan het begin ook hebt ingesloten met:


En sluit de code af met:



WScript.Quit

Dit zorgt ervoor dat Windows de taal waarin uw script is geschreven herkent en correct verwerkt.

1. Gebruik Windows-scripts voor computerinformatie

Windows biedt iets dat WMI wordt genoemd, of Windows Management Instrumentation, dat uw script een interface biedt om toegang te krijgen tot componenten van het besturingssysteem. U kunt daadwerkelijk query's uitvoeren op WMI om actuele live-informatie over uw systeem te krijgen. Microsoft biedt een volledige lijst van alle categorieën van zoekopdrachten je kunt maken tegen het systeem.





We hebben besproken hoe u VBA kunt gebruiken om computerinformatie naar Excel te halen, maar u kunt hetzelfde doen met een eenvoudig VB-script buiten Excel.

In dit voorbeeld gaan we het systeem opvragen voor processorinformatie (familie, fabrikant en aantal cores), batterij-informatie (beschrijving en status) en logische schijfinformatie (naam, resterende vrije ruimte en totale grootte). Vervolgens voeren we al deze informatie uit naar een CSV-bestand zodat u het gemakkelijk kunt bekijken.





De eerste stap is om het FileSystemObject in te stellen dat u gaat gebruiken om naar het CSV-bestand te gaan, en het bestand te maken:

Set oFSO = CreateObject('Scripting.FileSystemObject')
sFile1 = 'MyComputerInfo.csv'
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

De volgende stap is om de WMI-query in te stellen en uit te voeren:

kun je ps4-games spelen op ps3
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Sorteer ten slotte de resultaten en voer de informatie uit naar het CSV-bestand. Als je zin hebt, begin dan met een paar regels om je uitvoerbestand er beter uit te laten zien:

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

Als u uw code nu uitvoert, ziet uw uitvoer er als volgt uit:

Voor de volgende twee secties van uw code gaat u de zoekopdracht herhalen en wijzigen om naar de aanvullende informatie te zoeken. Hier is de vraag naar de batterij-informatie:

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

En hier is de volgende sectie voor de logische schijfquery:

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

Vergeet ten slotte niet om de code te sluiten door het bestand te sluiten en de objecten op 'Niets' in te stellen:

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

Zet al die code in je nieuwe .WSF-bestand, voer het uit en zo ziet je uitvoer eruit:

Wissel de bovenstaande vragen in voor andere computerapparaten of software waarover u informatie wilt, en u kunt op elk gewenst moment met een muisklik een volledig systeemrapport krijgen.

2. Diensten stoppen en starten

Er zullen momenten zijn dat bepaalde services problemen hebben en slechts een snelle herstart vereisen om weer goed te kunnen werken. Dit is vooral waar in IT wanneer u gedwongen wordt serversoftware te gebruiken die soms een beetje buggy is.

Als u een minuut of zo wilt besparen op het herstartproces van de service, slaat u het volgende script gewoon op een geschikte plaats op. U wordt gevraagd de naam in te voeren van de service die u opnieuw wilt starten, en dan zal het precies dat doen.

Aangezien het stoppen en starten van services beheerdersrechten vereist, moet u de volgende code aan het begin van uw script plaatsen om uw script verhoogde privileges :

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

Zodra dit is gebeurd, voegt u de rest van de code toe om het invoervak ​​voor gebruikersinvoer uit te voeren, start u het opdrachtvenster en stuurt u het de opdrachten 'net stop' en '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}'

Dat is alles. U hoeft niet te zoeken naar de services-tool. Voer gewoon dit script uit en stop en start elke service binnen enkele seconden.

3. Wijzig registerinstellingen, standaard beheerderswachtwoord

Met het volgende script slaan we twee vliegen in één klap. Dit script laat je zien hoe je het register bewerken met een VB-script. Het geeft je ook een script waarmee je de standaard Windows-gebruikersnaam en -wachtwoord kunt instellen door die registerinstellingen te bewerken.

Dit is hoe het werkt. Ten eerste, aangezien het bewerken van het register beheerdersrechten vereist, moet u verhoogde bevoegdheden voor uw script instellen:

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

Voer eerst twee invoervakken uit om de gebruiker te vragen welke gebruikersnaam en wachtwoord hij moet gebruiken:

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

Stel vervolgens het shell-object in en schrijf die waarden naar de juiste registersleutels:

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

En dat is alles. Met de 'RegWrite'-methode kunt u elke waarde naar elke registersleutel schrijven met behulp van een VB Windows-script. Het enige dat u hoeft te weten, is het juiste pad.

Voer het script uit en beantwoord de prompts.

De waarden die u invoert, worden rechtstreeks ingevoegd in de registerinstellingen die u in het script hebt ingesteld.

Speel met het script en pas het naar wens aan. U kunt elke gewenste registersleutel bewerken, dus wees creatief!

4. Reset uw netwerkverbinding

Het opnieuw instellen van uw netwerkverbinding met behulp van VB-scripting is iets dat we hier eerder bij MakeUseOf hebben behandeld. De volgende versie hiervan is eigenlijk verkleind en veel eenvoudiger te implementeren. In plaats van om individuele netwerkkaarten te vragen, worden al uw actieve verbindingen opnieuw ingesteld, wat hopelijk eventuele netwerkproblemen zou oplossen.

Net als bij andere scripts waarvoor beheerdersrechten nodig zijn, moet u de sectie aan het begin toevoegen voor verhoogde bevoegdheden. Kopieer die code uit het bovenstaande script.

Maak vervolgens het WMI-object en vraag het naar een lijst met ingeschakelde netwerkadapters op uw systeem:

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

Loop ten slotte door alle ingeschakelde adapters en reset ze:

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

Dit zal al uw actieve netwerkadapters , wat vaak de snelste manier is om vervelende netwerkproblemen op te lossen. Houd dit script bij de hand en probeer het eerst als je een traag netwerk of andere rare netwerkproblemen hebt.

5. Apparaten of websites pingen

Ik heb mijn favoriete VB Windows-script voor het laatst bewaard. Dit is er een die ik eigenlijk als een geplande taak op mijn thuiscomputer heb ingesteld en die ik meerdere keren per dag laat draaien om te controleren of mijn website actief is. Ik heb het script me een e-mail sturen als de site niet beschikbaar is. U kunt hetzelfde script gebruiken om belangrijke servers of computers in uw netwerk te bewaken en uzelf te e-mailen wanneer uw script het apparaat niet kan pingen.

Stel eerst het script in voor het doel dat u wilt pingen, maak het shell-object en voer vervolgens de ping-opdracht uit.

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

Gebruik een Select Case-instructie om de Ping-resultaten te doorlopen en dienovereenkomstig te reageren. Als de resultaten nul zijn, weet u dat de site (of server) online is en hoeft u niets te doen. Als het een '1' retourneert, is de ping mislukt en moet u iets doen. In mijn geval stuur ik een e-mail met het Windows CDO-object:

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

Zodra het script wordt uitgevoerd en het apparaat of de website niet kan pingen, krijgt u een expresbericht.

Het is snel en gemakkelijk, en zeer efficiënt!

VB Windows-scripts gebruiken om uw computer te besturen

Dit zijn slechts enkele voorbeelden van enkele van de coole dingen die u kunt doen met VB-scripting om uw computergebruik te stroomlijnen. Er zijn tal van andere dingen die u kunt doen, zoals automatische back-ups maken met VB en Synctoy, telnet-commando's automatiseren of zelfs applicatievensters openen en beheren.

Wat zijn enkele dingen die u op uw computer hebt geautomatiseerd met een Windows-script? Schrijf je de jouwe met VB, of gebruik je een andere tool? zoals PowerShell ?

Deel Deel Tweeten E-mail Dit is waarom de FBI een waarschuwing heeft afgegeven voor Hive Ransomware

De FBI waarschuwde voor een bijzonder vervelende vorm van ransomware. Dit is waarom je extra op je hoede moet zijn voor Hive-ransomware.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Computerautomatisering
  • Scripting
Over de auteur Ryan Dube(942 artikelen gepubliceerd)

Ryan heeft een BSc-graad in Elektrotechniek. Hij heeft 13 jaar in de automatiseringstechniek gewerkt, 5 jaar in de IT en is nu een Apps Engineer. Als voormalig hoofdredacteur van MakeUseOf heeft hij gesproken op nationale conferenties over datavisualisatie en is hij te zien geweest op nationale tv en radio.

Meer van Ryan Dube

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren