5 korisnih VB Windows skripti za automatizaciju upotrebe računala

5 korisnih VB Windows skripti za automatizaciju upotrebe računala

Bez obzira jeste li IT analitičar ili redoviti korisnik računala, postoji mnogo zadataka koje ćete morati često raditi na svom računalu. VB skripte su smanjeni programi Visual Basica koji služe kao Windows skripte koje mogu učiniti bilo što, od podizanja važnih informacija o hardveru vašeg računala, do zaustavljanja i pokretanja usluga ili vraćanja na zadano mrežne kartice.





Moguće je naučiti kako sve te pojedinačne stvari raditi na uobičajen način ili ih raditi pomoću paketnih datoteka. Ali VB skripte su bolje od serijskih skripti jer su fleksibilniji. Ako sljedeće skripte pohranite na uobičajeno mjesto do kojeg možete brzo doći kad vam zatreba, možete izvršiti te zadatke u djeliću vremena. Samo dvaput kliknite skriptu, odgovorite na upit i zadatak je gotov.





Pogledajte sljedeće VB Windows skripte i ako vidite bilo koje koje želite koristiti, samo kopirajte i zalijepite skriptu u Bilježnica ili drugi alat za kodiranje bilješki i spremite ga kao WSF datoteku.





Pripremite svoje Windows skripte

Svaka od dolje opisanih skripti izvodit će se samo dvostrukim klikom sve dok datoteku date naziv s .WSF ekstenzijom, a kôd ste na početku priložili i sa:


I zatvorite kôd sa:



WScript.Quit

To osigurava da će Windows prepoznati jezik na kojem je vaša skripta napisana i pravilno ga obraditi.

1. Koristite Windows skripte za informacije o računalu

Windows nudi nešto što se naziva WMI ili Windows Management Instrumentation, što vašoj skripti pruža sučelje za pristup komponentama operacijskog sustava. Zapravo možete pokrenuti upite protiv WMI -ja kako biste dobili trenutne informacije o svom sustavu. Microsoft nudi potpuni popis svih kategorije upita možete napraviti protiv sustava.





Opisali smo kako koristiti VBA za unošenje računalnih podataka u Excel, ali to možete učiniti i pomoću jednostavne VB skripte izvan Excela.

U ovom ćemo primjeru sustav upitati za podatke o procesoru (obitelj, proizvođač i broj jezgri), podatke o bateriji (opis i status) i podatke o logičkom disku (naziv, preostali slobodni prostor i ukupna veličina). Zatim ćemo sve te podatke prenijeti u CSV datoteku radi lakšeg pregleda.





Prvi korak je postavljanje FileSystemObject -a koji ćete koristiti za ispis u CSV datoteku i stvaranje datoteke:

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

Sljedeći korak je postavljanje WMI upita i njegovo izvršavanje:

što učiniti sa starim tvrdim diskovima
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Na kraju, sortirajte rezultate i ispišite podatke u CSV datoteku. Ako želite biti fensi, predgovorite ovo s nekoliko redaka kako bi vaša izlazna datoteka izgledala bolje:

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

Ako sada pokrenete kôd, vaš će ispis izgledati ovako:

Za sljedeća dva odjeljka koda samo ćete ponoviti i promijeniti upit kako biste potražili dodatne informacije. Evo upita s informacijama o bateriji:

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

I evo sljedećeg odjeljka za upit logičkog diska:

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

Na kraju, ne zaboravite zatvoriti kôd zatvaranjem datoteke i postavljanjem objekata na 'Ništa':

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

Stavite sav taj kôd u svoju novu .WSF datoteku, pokrenite je i evo kako će vaš izlaz izgledati:

Zamijenite gornje upite za bilo koje druge računalne uređaje ili softver o kojima želite dobiti informacije, a možete dobiti i cjelovito izvješće o sustavu kad god poželite, samo jednim klikom miša.

2. Zaustavi i pokreni usluge

Bit će trenutaka kada određene usluge imaju problema i zahtijevaju samo brzo ponovno pokretanje da bi se ponovno pravilno pokrenule. Ovo je posebno istina u IT -u kada ste prisiljeni pokrenuti poslužiteljski softver koji je ponekad pomalo grešan.

Ako želite obrijati minutu ili tako od procesa ponovnog pokretanja usluge, samo spremite sljedeću skriptu na neko prikladno mjesto. Od vas će se zatražiti da upišete naziv usluge koju želite ponovno pokrenuti, a zatim će učiniti upravo to.

Budući da zaustavljanje i pokretanje usluga zahtijeva administratorske ovlasti, morate postaviti sljedeći kôd na početak svoje skripte kako biste dali svoju skriptu povišene privilegije :

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

Nakon što to učinite, dodajte ostatak koda da biste pokrenuli okvir za unos za korisnički unos, pokrenite naredbeni prozor i pošaljite mu 'net stop' i 'net start commands':

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

To je sve. Nema potrebe tražiti alat za usluge. Samo pokrenite ovu skriptu i zaustavite i pokrenite bilo koju uslugu u nekoliko sekundi.

3. Promijenite postavke registra, zadanu administratorsku lozinku

Sa sljedećom skriptom, ubit ćemo dvije ptice jednim udarcem. Ova skripta će vam pokazati kako to učiniti urediti registar s VB skriptom. Također će vam dati skriptu koja će vam omogućiti da postavite zadano korisničko ime i lozinku za Windows uređivanjem tih postavki registra.

Evo kako to funkcionira. Prvo, budući da uređivanje registra zahtijeva administratorska prava, morat ćete postaviti povišena ovlaštenja za svoju skriptu:

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

Prvo pokrenite dva okvira za unos da biste pitali korisnika koje korisničko ime i lozinku treba koristiti:

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

Zatim postavite objekt ljuske i zapišite te vrijednosti u odgovarajuće ključeve registra:

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

I to je sve. Metoda 'RegWrite' omogućuje vam upisivanje bilo koje vrijednosti u bilo koji ključ registra pomoću VB Windows skripte. Sve što morate znati je odgovarajući put.

Pokrenite skriptu i odgovorite na upite.

Vrijednosti koje unesete umetnut će se izravno u postavke registra koje ste postavili u skripti.

Poigrajte se sa scenarijem i prilagodite ga svom ukusu. Možete urediti bilo koji ključ registra koji vam se sviđa, stoga budite kreativni!

4. Resetirajte mrežnu vezu

Poništavanje mrežne veze pomoću VB skriptiranja nešto je što smo već obradili ovdje na MakeUseOf. Sljedeća verzija ovoga je zapravo smanjena i mnogo je jednostavnija za implementaciju. Umjesto da traži pojedinačne mrežne kartice, resetira sve vaše aktivne veze što bi, nadamo se, riješilo sve probleme s mrežom koje možda imate.

Kao i kod drugih skripti koje trebaju administratorska prava, morat ćete dodati odjeljak na početku za povišene privilegije. Kopirajte taj kôd iz gornje skripte.

Zatim stvorite WMI objekt i upitajte ga za popis omogućenih mrežnih adaptera na vašem sustavu:

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

Na kraju, prođite kroz sve omogućene adaptere i resetirajte ih:

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

Ovo će poništiti sve vaše aktivni mrežni adapteri , koji je često najbrži način za rješavanje dosadnih problema s mrežom. Neka vam ova skripta bude pri ruci i isprobajte je svaki put kad imate sporu mrežu ili druge čudne mrežne probleme.

5. Ping uređaji ili web stranice

Zadnju sam sačuvao svoju omiljenu skriptu VB windows. Ovo je jedan koji sam zapravo postavio kao planirani zadatak na svom kućnom računalu i pokrenuo ga nekoliko puta dnevno samo da provjerim je li moja web stranica aktivna. Imam skriptu ako mi web stranica nije poslana. Istu skriptu možete koristiti za nadzor važnih poslužitelja ili računala na vašoj mreži i slanje e -pošte svaki put kad vaša skripta ne može pingati uređaj.

Najprije postavite skriptu za cilj koji želite pingati, stvorite objekt ljuske, a zatim pokrenite naredbu ping.

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

Pomoću izraza Select Case prođite kroz rezultate Ping -a i u skladu s tim odgovorite. Ako se rezultati vrate na nulu, znate da je web mjesto (ili poslužitelj) na mreži i da ne morate ništa učiniti. Ako vrati '1', ping nije uspio i morate nešto učiniti. U mom slučaju, šaljem e -poštu pomoću Windows CDO objekta:

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

Nakon što se skripta pokrene i ne može pingati uređaj ili web stranicu, dobit ćete trenutnu poruku.

Brzo je i jednostavno, a svaki učinkovit!

Korištenje VB Windows skripti za upravljanje računalom

Ovo je samo nekoliko primjera nekih zanimljivih stvari koje možete učiniti s VB skriptama kako biste pojednostavili korištenje računala. Postoji mnogo drugih stvari koje možete učiniti poput automatskih sigurnosnih kopija s VB i Synctoy, automatiziranja telnet naredbi ili čak otvaranja i upravljanja prozorima aplikacija.

Koje ste neke stvari automatizirali na računalu pomoću Windows skripte? Pišete li svoje pomoću VB -a ili koristite neki drugi alat poput PowerShella ?

Udio Udio Cvrkut E -pošta Evo zašto je FBI izdao upozorenje za otkupni softver u košnicama

FBI je izdao upozorenje o posebno gadnoj vrsti ransomwarea. Evo zašto morate biti posebno oprezni s Hive ransomwareom.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Računalna automatizacija
  • Skriptiranje
O autoru Ryan Dube(942 objavljenih članaka)

Ryan ima diplomu elektrotehnike. Radio je 13 godina u automatizaciji, 5 godina u IT -u, a sada je inženjer aplikacija. Bivši glavni urednik MakeUseOfa, govorio je na nacionalnim konferencijama o vizualizaciji podataka, a bio je i na nacionalnoj televiziji i radiju.

Više od Ryana Dubea

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu