5 Kasulikud VB Windowsi skriptid arvuti kasutamise automatiseerimiseks

5 Kasulikud VB Windowsi skriptid arvuti kasutamise automatiseerimiseks

Ükskõik, kas olete IT -analüütik või tavaline arvutikasutaja, peate arvutis sageli tegema palju ülesandeid. VB -skriptid on vähendatud Visual Basic programmid, mis toimivad Windowsi skriptidena ja mis võivad teha kõike, alates arvuti riistvara kohta olulise teabe hankimisest kuni teenuste peatamise ja käivitamiseni või võrgukaardi lähtestamiseni.





On võimalik õppida, kuidas kõiki neid üksikuid asju tavalisel viisil teha või teha neid partiifailide abil. Aga VB skriptid on paremad kui partiiskriptid sest nad on paindlikumad. Kui salvestate järgmised skriptid ühisesse kohta, kuhu vajaminev kiiresti jõuate, saate need ülesanded murdosa aja jooksul täita. Lihtsalt topeltklõpsake skripti, vastate viipale ja ülesanne on tehtud.





Vaadake järgmisi VB Windowsi skripte ja kui näete mõnda, mida soovite kasutada, kopeerige ja kleepige skript Märkmik või muu märkmete kodeerimise tööriist ja salvestage see WSF -failina.





Valmistage ette Windowsi skriptid

Kõik allpool kirjeldatud skriptid töötavad vaid topeltklõpsuga seni, kuni olete failile nime andnud laiendiga .WSF ja lisate ka koodi alguses:


Ja sulgege kood järgmiselt:



WScript.Quit

See tagab, et Windows tunneb ära skripti kirjutamise keele ja töötleb seda õigesti.

1. Arvutiteabe jaoks kasutage Windowsi skripte

Windows pakub midagi, mida nimetatakse WMI -ks või Windowsi haldusinstrumentatsiooniks, mis pakub teie skriptile liidest operatsioonisüsteemi komponentidele juurdepääsuks. Saate tegelikult käivitada päringuid WMI vastu, et saada oma süsteemi kohta praegust reaalajas teavet. Microsoft pakub täielikku nimekirja kõigist päringute kategooriad saate teha süsteemi vastu.





Oleme käsitlenud, kuidas kasutada VBA -d arvutiteabe Excelisse tõmbamiseks, kuid saate seda teha ka lihtsa VB -skripti abil väljaspool Excelit.

Selles näites esitame süsteemile päringu protsessoriteabe (perekond, tootja ja südamike arv), aku teabe (kirjeldus ja olek) ning loogilise ketta teabe (nimi, järelejäänud vaba ruum ja üldine suurus) kohta. Seejärel väljastame kogu selle teabe vaatamiseks CSV -faili.





Esimene samm on seadistada FileSystemObject, mida kasutate CSV -faili väljastamiseks, ja luua fail:

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

Järgmine samm on WMI päringu seadistamine ja selle täitmine:

kuidas redditil karma saada?
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Lõpuks sorteerige tulemused ja sisestage teave CSV -faili. Kui soovite olla väljamõeldud, sisestage sellele paar rida, et muuta väljundfail paremaks:

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

Kui käivitate oma koodi praegu, näeb teie väljund välja selline:

Koodi järgmise kahe jaotise puhul korratakse ja muudetakse päringut lisateabe otsimiseks. Siin on aku teabe päring:

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

Ja siin on loogilise ketta päringu järgmine jaotis:

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

Lõpuks ärge unustage koodi sulgeda, sulgedes faili ja seadistades objektide väärtuseks „Mitte midagi”:

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

Pange kogu see kood oma uude .WSF -faili, käivitage see ja teie väljund näeb välja järgmine:

Lihtsalt vahetage ülaltoodud päringud teiste arvutiseadmete või tarkvara kohta, mille kohta soovite teavet saada, ja saate täieliku süsteemi aruande igal ajal, kui soovite, vaid ühe hiireklõpsuga.

2. Teenuste peatamine ja käivitamine

Mõnikord on teatud teenustel probleeme ja nõuavad kiireks taaskäivitamist, et uuesti korralikult tööle hakata. Seda eriti IT -s tõsi kui olete sunnitud käitama serveritarkvara, mis on mõnikord natuke lollakas.

Kui soovite teenuse taaskäivitusprotsessist mõne minuti maha raseerida, salvestage lihtsalt järgmine skript mugavasse kohta. See palub teil sisestada selle teenuse nime, mille soovite taaskäivitada, ja siis teeb see täpselt seda.

Kuna teenuste peatamine ja käivitamine nõuab administraatoriõigusi, peate skripti andmiseks oma skripti algusesse sisestama järgmise koodi kõrgendatud privileegid :

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

Kui see on tehtud, lisage ülejäänud kood kasutaja sisendkasti käivitamiseks, käivitage käsuaken ja saatke sellele käsud „net stop” ja „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}'

See on kõik. Pole vaja teenuste tööriista otsida. Lihtsalt käivitage see skript ja peatage ning käivitage mõni teenus sekunditega.

3. Muutke registrisätteid, administraatori vaikeparooli

Järgmise skriptiga tapame ühe hoobiga kaks lindu. See skript näitab teile, kuidas seda teha muuta registrit VB skriptiga. See annab teile ka skripti, mis võimaldab teil määrata Windowsi vaikenime ja parooli, muutes neid registrisätteid.

See toimib järgmiselt. Esiteks, kuna registri muutmine nõuab administraatori õigusi, peate oma skripti jaoks seadistama kõrgemad õigused.

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

Esmalt käivitage kaks sisestuskasti, et küsida kasutajalt, millist kasutajanime ja parooli kasutada:

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

Seejärel seadistage shelliobjekt ja kirjutage need väärtused vastavatesse registrivõtmetesse:

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

Ja see on ka kõik. 'RegWrite' meetod võimaldab teil kirjutada mis tahes väärtuse mis tahes registrivõtmele, kasutades VB Windowsi skripti. Kõik, mida pead teadma, on sobiv tee.

Käivitage skript ja vastake viipadele.

Sisestatud väärtused sisestatakse otse skriptis seadistatud registrisätetesse.

Mängige stsenaariumiga ringi ja kohandage seda oma maitse järgi. Saate muuta mis tahes registrivõtmeid, mis teile meeldivad, nii et olge loominguline!

4. Lähtestage võrguühendus

Võrguühenduse lähtestamine VB skriptide abil on siin MakeUseOfis juba käsitletud. Selle järgmine versioon on tegelikult vähendatud ja seda on palju lihtsam rakendada. Selle asemel, et küsida individuaalseid võrgukaarte, lähtestab see kõik teie aktiivsed ühendused, mis loodetavasti lahendavad kõik võrguprobleemid.

Nagu teistegi skriptide puhul, mis vajavad administraatori õigusi, peate lisatud lõigu lisatud õiguste lisamiseks alguses lisama. Kopeerige see kood ülaltoodud skriptist.

Seejärel looge WMI -objekt ja küsige sealt oma süsteemis lubatud võrguadapterite loendit:

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

Lõpuks vaadake läbi kõik lubatud adapterid ja lähtestage need:

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

See lähtestab teie kõik aktiivsed võrguadapterid , mis on sageli kiireim viis tüütute võrguprobleemide lahendamiseks. Hoidke see skript käepärast ja proovige seda kõigepealt igal ajal, kui teil on aeglane võrk või muud imelikud võrguprobleemid.

5. Pinguseadmed või veebisaidid

Ma salvestasin oma lemmik VB Windowsi skripti viimaseks. Selle seadistasin ma tegelikult oma koduarvutis ajastatud ülesandena ja lasin seda mitu korda päevas käia, et kontrollida, kas minu veebisait on aktiivne. Sain skripti meilile, kui sait on maas. Saate seda sama skripti kasutada oma võrgu oluliste serverite või arvutite jälgimiseks ja e -kirja saatmiseks igal ajal, kui skript ei suuda seadet pingutada.

Esmalt seadistage skript sihtmärgi jaoks, mida soovite pingutada, looge shelliobjekt ja käivitage seejärel ping -käsk.

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

Kasutage Ping -tulemuste läbimiseks avaldust Select Case ja valige sellele vastavalt. Kui tulemused tulevad nulliga, siis teate, et sait (või server) on võrgus ja te ei pea midagi tegema. Kui see tagastab '1', siis ping ebaõnnestus ja peate midagi tegema. Minu puhul saadan meili Windowsi CDO objekti kasutades:

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

Kui skript töötab ja ei saa seadet või veebisaiti pingida, saate kiirsõnumi.

See on kiire ja lihtne ning igati tõhus!

VB Windowsi skriptide kasutamine arvuti juhtimiseks

Need on vaid mõned näited mõningatest lahedatest asjadest, mida saate VB -skriptimisega oma arvuti kasutamise sujuvamaks muutmiseks teha. Saate teha palju muid asju, näiteks automaatseid varukoopiaid VB ja Synctoyga, telneti käskude automatiseerimist või isegi rakenduste akende avamist ja juhtimist.

Milliseid asju olete oma arvutis Windowsi skripti abil automatiseerinud? Kas kirjutate oma, kasutades VB -d või mõnda muud tööriista nagu PowerShell ?

Jaga Jaga Piiksuma E -post Siin on põhjus, miks FBI andis hoiatuse taru lunavara eest

FBI andis hoiatuse eriti vastiku lunavara tüve eest. Siin on põhjus, miks peate Hive lunavara suhtes eriti ettevaatlik olema.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Arvuti automatiseerimine
  • Skriptimine
Autori kohta Ryan Dube(Avaldatud 942 artiklit)

Ryanil on elektrotehnika bakalaureusekraad. Ta on töötanud 13 aastat automaatikainsenerina, 5 aastat IT -alal ja on nüüd rakenduste insener. MakeUseOfi endine tegevtoimetaja on rääkinud üleriigilistel andmete visualiseerimise konverentsidel ning esinenud üleriigilises televisioonis ja raadios.

Rohkem Ryan Dube'ilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin