5 Nyttige VB Windows -scripts til automatisering af din computerbrug

5 Nyttige VB Windows -scripts til automatisering af din computerbrug

Uanset om du er en IT -analytiker eller en almindelig computerbruger, er der mange opgaver, du muligvis skal udføre ofte på din pc. VB -scripts nedskaleres Visual Basic -programmer, der fungerer som Windows -scripts, der kan alt fra at hente vigtige oplysninger om din computers hardware, til at stoppe og starte tjenester eller nulstille dit netværkskort.





Det er muligt at lære at gøre alle disse individuelle ting på den normale måde, eller gøre dem ved hjælp af batchfiler. Men VB -scripts er bedre end batch -scripts fordi de er mere fleksible. Hvis du gemmer følgende scripts på et fælles sted, som du hurtigt kan komme til, når du har brug for det, kan du udføre disse opgaver på en brøkdel af tiden. Du skal bare dobbeltklikke på scriptet, besvare en prompt, og opgaven er udført.





Tag et kig på følgende VB Windows -scripts, og hvis du ser nogen, du gerne vil bruge, skal du bare kopiere og indsætte scriptet i Notesblok eller andet værktøj til kodning af noter og gem den som en WSF -fil.





Forbered dine Windows -scripts

Hvert af de scripts, der er beskrevet nedenfor, kører med blot et dobbeltklik, så længe du har navngivet filen med .WSF -udvidelsen, og du har også vedlagt koden i begyndelsen med:


Og luk koden med:



WScript.Quit

Dette sikrer, at Windows genkender det sprog, dit script er skrevet på, og behandler det korrekt.

1. Brug Windows Scripts til computerinformation

Windows tilbyder noget, der kaldes WMI eller Windows Management Instrumentation, som giver dit script en grænseflade til at få adgang til komponenter i operativsystemet. Du kan faktisk køre forespørgsler mod WMI for at få aktuelle liveoplysninger om dit system. Microsoft tilbyder en komplet liste over alle kategorier af forespørgsler du kan gøre mod systemet.





Vi har dækket, hvordan du bruger VBA til at trække computerinformation til Excel, men du kan gøre det samme ved hjælp af et simpelt VB -script uden for Excel.

I dette eksempel vil vi spørge systemet om processorinformation (familie, producent og antal kerner), batteriinformation (beskrivelse og status) og logiske diskoplysninger (navn, resterende ledig plads og samlet størrelse). Derefter sender vi alle disse oplysninger ud til en CSV -fil for let visning.





Det første trin er at konfigurere det FileSystemObject, du vil bruge til at sende til CSV -filen, og oprette filen:

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

Det næste trin er at konfigurere WMI -forespørgslen og udføre den:

download enhver video fra ethvert websted online gratis
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Endelig skal du sortere gennem resultaterne og sende oplysningerne til CSV -filen. Hvis du vil være fancy, skal du forordse dette med et par linjer for at få din outputfil til at se bedre ud:

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

Hvis du kører din kode nu, ser dit output sådan ud:

I de næste to sektioner af din kode skal du bare gentage og ændre forespørgslen for at lede efter de yderligere oplysninger. Her er forespørgslen om batteriinformation:

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

Og her er det næste afsnit for den logiske diskforespørgsel:

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

Husk endelig at lukke koden ved at lukke filen og indstille objekterne til 'Intet':

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

Sæt al den kode i din nye .WSF -fil, kør den, og her er, hvordan dit output vil se ud:

Skift bare forespørgslerne ovenfor ud for andre computerenheder eller software, du vil have oplysninger om, og du kan få en fuld systemrapport, når som helst du vil, med et klik med musen.

2. Stop og start tjenester

Der vil være tidspunkter, hvor visse tjenester har problemer og kun kræver en hurtig genstart for at køre korrekt igen. Dette er især sandt inden for IT når du er tvunget til at køre serversoftware, der nogle gange er en lille smule buggy.

Hvis du vil barbere et minut eller deromkring af servicegenstartprocessen, skal du bare gemme følgende script et eller andet sted. Det vil bede dig om at indtaste navnet på den service, du vil genstarte, og så gør det præcis det.

Da stop og start af tjenester kræver administrative rettigheder, skal du placere følgende kode i starten af ​​dit script for at give dit script forhøjede privilegier :

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

Når dette er gjort, skal du tilføje resten af ​​koden for at køre inputboksen til brugerinput, starte kommandovinduet og sende den 'net stop' og 'net start -kommandoer':

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}'

Det er alt, hvad der skal til. Ingen grund til at jage rundt efter serviceværktøjet. Bare kør dette script, stop og start enhver service på få sekunder.

3. Skift registreringsindstillinger, standardadministratoradgangskode

Med det følgende script vil vi dræbe to fugle i ét smæk. Dette script viser dig hvordan redigere registreringsdatabasen med et VB -script. Det giver dig også et script, der lader dig angive standard Windows -brugernavn og adgangskode ved at redigere disse registreringsindstillinger.

Sådan fungerer det. For det første, da redigering af registreringsdatabasen kræver administratorrettigheder, skal du konfigurere forhøjede privilegier til dit script:

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

Kør først to inputbokse for at spørge brugeren, hvilket brugernavn og kodeord der skal bruges:

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

Konfigurer derefter shell -objektet, og skriv disse værdier til de relevante registernøgler:

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

Og det er alt, hvad der skal til. Metoden 'RegWrite' lader dig skrive enhver værdi til en hvilken som helst registreringsnøgle ved hjælp af et VB Windows -script. Alt du skal vide er den rigtige vej.

Kør scriptet, og besvar prompterne.

De værdier, du indtaster, indsættes direkte i de registreringsindstillinger, du har konfigureret i scriptet.

Leg med scriptet, og juster det til din smag. Du kan redigere alle registernøgler, du kan lide, så vær kreativ!

4. Nulstil din netværksforbindelse

Nulstilling af din netværksforbindelse ved hjælp af VB -scripting er noget, vi tidligere har dækket her på MakeUseOf. Den følgende version af dette er faktisk nedskaleret og meget enklere at implementere. I stedet for at bede om individuelle netværkskort nulstiller det alle dine aktive forbindelser, som forhåbentlig vil løse eventuelle netværksproblemer, du måtte have.

Som med andre scripts, der har brug for administratorrettigheder, skal du tilføje afsnittet i starten for at få forhøjede rettigheder. Kopiér denne kode fra scriptet ovenfor.

Opret derefter WMI -objektet, og spørg efter en liste over aktiverede netværkskort på dit system:

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

Slutt endelig gennem alle de aktiverede adaptere, og nulstil dem:

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

Dette nulstiller alle dine aktive netværkskort , som ofte er den hurtigste måde at løse irriterende netværksproblemer på. Hold dette script ved hånden, og prøv det først, hver gang du har et langsomt netværk eller andre underlige netværksproblemer.

5. Ping -enheder eller websteder

Jeg har gemt mit foretrukne VB windows script til sidst. Dette er en, som jeg faktisk konfigurerede som en planlagt opgave på min hjemmecomputer og lod den køre flere gange om dagen bare for at kontrollere, om mit websted er aktivt. Jeg har scriptet til at sende mig en e -mail, hvis siden er nede. Du kan bruge det samme script til at overvåge vigtige servere eller computere på dit netværk og e -maile dig selv, når dit script ikke kan pinge enheden.

Konfigurer først scriptet til det mål, du vil pinge, opret skalobjektet, og kør derefter ping -kommandoen.

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

Brug en Select Case -erklæring til at gennemgå Ping -resultaterne og reagere derefter. Hvis resultaterne kommer tilbage som nul, ved du, at webstedet (eller serveren) er online, og du ikke skal gøre noget. Hvis det returnerer et '1', mislykkedes pingen, og du skal gøre noget. I mit tilfælde sender jeg en e -mail ved hjælp af Windows CDO -objektet:

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

Når scriptet kører og ikke kan pinge enheden eller webstedet, får du en øjeblikkelig besked.

Det er hurtigt og nemt, og alt effektivt!

Brug af VB Windows Scripts til at styre din computer

Dette er blot nogle få eksempler på nogle af de fede ting, du kan gøre med VB -scripting for at strømline din computerbrug. Der er mange andre ting, du kan gøre som automatiserede sikkerhedskopier med VB og Synctoy, automatisering af telnetkommandoer eller endda åbne og styre applikationsvinduer.

Hvad er nogle af de ting, du har automatiseret på din computer med et Windows -script? Skriver du dit ved hjælp af VB, eller bruger du et andet værktøj som PowerShell ?

Del Del Tweet E -mail Her er hvorfor FBI udsendte en advarsel om Hive Ransomware

FBI udsendte en advarsel om en særlig grim stamme af ransomware. Her er hvorfor du skal være særlig forsigtig med Hive ransomware.

Læs Næste
Relaterede emner
  • Programmering
  • Computer automatisering
  • Scripting
Om forfatteren Ryan Dube(942 artikler udgivet)

Ryan har en bachelorgrad i elektroteknik. Han har arbejdet 13 år inden for automationsteknik, 5 år inden for IT, og er nu Apps Engineer. Tidligere administrerende redaktør for MakeUseOf har han talt på nationale konferencer om datavisualisering og er blevet vist på nationalt tv og radio.

Mere fra Ryan Dube

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere