5 naudingi „VB Windows“ scenarijai, skirti automatizuoti kompiuterio naudojimą

5 naudingi „VB Windows“ scenarijai, skirti automatizuoti kompiuterio naudojimą

Nesvarbu, ar esate IT analitikas, ar paprastas kompiuterio vartotojas, kompiuteryje gali tekti dažnai atlikti daugybę užduočių. „VB Scripts“ yra sumažintos „Visual Basic“ programos, kurios tarnauja kaip „Windows“ scenarijai ir kurios gali padaryti bet ką - nuo svarbios informacijos apie jūsų kompiuterinę įrangą surinkimo iki paslaugų sustabdymo ir paleidimo arba tinklo plokštės nustatymo iš naujo.





Galima išmokti atlikti visus tuos atskirus dalykus įprastu būdu arba atlikti juos naudojant paketinius failus. Bet VB scenarijai yra geresni nei paketiniai nes jie lankstesni. Jei toliau nurodytus scenarijus saugote įprastoje vietoje, kurią greitai pasiekiate, kai to reikia, galite atlikti šias užduotis per trumpą laiką. Tiesiog dukart spustelėkite scenarijų, atsakykite į raginimą ir užduotis bus atlikta.





Pažvelkite į šiuos „VB Windows“ scenarijus ir, jei matote norimus naudoti, tiesiog nukopijuokite ir įklijuokite scenarijų Užrašų knygelė ar kitas kodavimo užrašų įrankis ir išsaugokite jį kaip WSF failą.





Paruoškite „Windows“ scenarijus

Kiekvienas iš toliau aprašytų scenarijų bus paleistas tik dukart spustelėjus, kol failą pavadinsite plėtiniu .WSF, o pradžioje taip pat pridėsite kodą:


Ir uždarykite kodą:



WScript.Quit

Tai užtikrina, kad „Windows“ atpažins kalbą, kuria parašytas jūsų scenarijus, ir tinkamai ją apdoros.

1. Kompiuterio informacijai naudokite „Windows“ scenarijus

„Windows“ siūlo tai, kas vadinama WMI arba „Windows Management Instrumentation“, kuri suteikia jūsų scenarijui sąsają, leidžiančią pasiekti operacinės sistemos komponentus. Iš tikrųjų galite vykdyti užklausas prieš WMI, kad gautumėte dabartinę tiesioginę informaciją apie savo sistemą. „Microsoft“ siūlo visą sąrašą visų užklausų kategorijas galite padaryti prieš sistemą.





Mes aptarėme, kaip naudoti VBA, norint ištraukti kompiuterio informaciją į „Excel“, tačiau tą patį galite padaryti naudodami paprastą VB scenarijų ne „Excel“.

Šiame pavyzdyje sistemoje ieškosime procesoriaus informacijos (šeimos, gamintojo ir branduolių skaičiaus), akumuliatoriaus informacijos (aprašymas ir būsena) ir loginės disko informacijos (pavadinimas, likusi laisva vieta ir bendras dydis). Tada visą šią informaciją išvesime į CSV failą, kad būtų lengviau peržiūrėti.





Pirmasis žingsnis yra nustatyti „FileSystemObject“, kurį naudosite išvesti į CSV failą, ir sukurti failą:

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

Kitas žingsnis yra nustatyti WMI užklausą ir ją vykdyti:

atpalaiduojantys filmai užmigti
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Galiausiai surūšiuokite rezultatus ir išveskite informaciją į CSV failą. Jei norite būti išgalvotas, įveskite tai keliomis eilutėmis, kad jūsų išvesties failas atrodytų geriau:

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

Jei dabar paleisite savo kodą, jūsų išvestis atrodys taip:

Kituose dviejuose kodo skyriuose jūs tiesiog pakartosite ir pakeisite užklausą, kad ieškotumėte papildomos informacijos. Štai akumuliatoriaus informacijos užklausa:

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

Ir čia yra kitas loginio disko užklausos skyrius:

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

Galiausiai nepamirškite uždaryti kodo, uždarydami failą ir nustatydami objektus į „Nieko“:

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

Įdėkite visą šį kodą į naują .WSF failą, paleiskite jį ir štai kaip atrodys jūsų išvestis:

Tiesiog pakeiskite aukščiau pateiktas užklausas dėl kitų kompiuterių įrenginių ar programinės įrangos, apie kurią norite gauti informacijos, ir jūs galite gauti išsamią sistemos ataskaitą bet kuriuo metu, kai tik norite spustelėti pelę.

2. Sustabdyti ir paleisti paslaugas

Kartais gali kilti problemų, susijusių su tam tikromis paslaugomis, ir jas reikia greitai paleisti iš naujo, kad vėl veiktų tinkamai. Tai ypač tiesa IT srityje kai esate priverstas paleisti serverio programinę įrangą, kuri kartais būna šiek tiek klaidinga.

Jei norite nusiskusti minutę nuo paslaugos paleidimo iš naujo, tiesiog išsaugokite šį scenarijų patogioje vietoje. Jis paragins įvesti paslaugos, kurią norite iš naujo paleisti, pavadinimą ir tada tai padarys tiksliai.

Kadangi paslaugoms sustabdyti ir paleisti reikia administratoriaus teisių, scenarijaus pradžioje turite įdėti šį kodą, kad pateiktumėte scenarijų pakeltos privilegijos :

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

Kai tai bus padaryta, pridėkite likusį kodą, kad paleistumėte vartotojo įvesties laukelį, paleiskite komandų langą ir atsiųskite jam „net stop“ ir „net start“ komandas:

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

Tai viskas. Nereikia ieškoti paslaugų įrankio. Tiesiog paleiskite šį scenarijų ir sustabdykite bei paleiskite bet kurią paslaugą per kelias sekundes.

3. Pakeiskite registro nustatymus, numatytąjį administratoriaus slaptažodį

Naudodami šį scenarijų, vienu akmeniu nužudysime du paukščius. Šis scenarijus parodys, kaip tai padaryti redaguoti registrą su VB scenarijumi. Tai taip pat suteiks jums scenarijų, kuris leis jums nustatyti numatytąjį „Windows“ vartotojo vardą ir slaptažodį redaguojant tuos registro nustatymus.

Štai kaip tai veikia. Pirma, kadangi norint redaguoti registrą reikia administratoriaus teisių, turėsite nustatyti aukštesnes scenarijaus privilegijas:

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

Pirmiausia paleiskite du įvesties laukelius ir paklauskite vartotojo, kokį vartotojo vardą ir slaptažodį naudoti:

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

Tada nustatykite apvalkalo objektą ir įrašykite šias reikšmes į atitinkamus registro raktus:

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

Ir tai viskas. „RegWrite“ metodas leidžia įrašyti bet kokią vertę į bet kurį registro raktą naudojant „VB Windows“ scenarijų. Viskas, ką jums reikia žinoti, yra tinkamas kelias.

Paleiskite scenarijų ir atsakykite į užklausas.

Įvestos vertės bus įterptos tiesiai į registro nustatymus, kuriuos nustatėte scenarijuje.

Žaisk su scenarijumi ir pataisyk jį pagal savo skonį. Galite redaguoti bet kokius jums patinkančius registro raktus, todėl būkite kūrybingi!

4. Iš naujo nustatykite tinklo ryšį

Tinklo ryšio atkūrimas naudojant VB scenarijų yra tai, ką mes jau aptarėme čia, „MakeUseOf“. Tolesnė šios versijos versija iš tikrųjų yra sumažinta ir daug lengviau įgyvendinama. Užuot raginęs įvesti atskiras tinklo korteles, jis iš naujo nustato visus aktyvius ryšius, kurie, tikiuosi, išspręs visas tinklo problemas.

Kaip ir kitus scenarijus, kuriems reikia administratoriaus teisių, pradžioje turėsite pridėti skyrių, kad gautumėte aukštesnes privilegijas. Nukopijuokite šį kodą iš aukščiau esančio scenarijaus.

Tada sukurkite WMI objektą ir paprašykite jo jūsų sistemoje įjungtų tinklo adapterių sąrašo:

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

Galiausiai perjunkite visus įjungtus adapterius ir iš naujo nustatykite:

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

Tai atkurs visus jūsų aktyvūs tinklo adapteriai , kuris dažnai yra greičiausias būdas išspręsti erzinančias tinklo problemas. Laikykite šį scenarijų po ranka ir pirmiausia pabandykite jį bet kada, kai turite lėtą tinklą ar kitas keistas tinklo problemas.

5. „Ping“ įrenginiai ar svetainės

Paskutinį kartą išsaugojau savo mėgstamą „VB Windows“ scenarijų. Tai aš iš tikrųjų nustatiau kaip suplanuotą užduotį savo namų kompiuteryje ir paleidžiu ją kelis kartus per dieną tik norėdamas patikrinti, ar mano svetainė yra aktyvi. Aš turiu scenarijų el. Paštu, jei svetainė neveikia. Tą patį scenarijų galite naudoti norėdami stebėti svarbius tinklo serverius ar kompiuterius ir atsiųsti el. Paštu bet kuriuo metu, kai scenarijus negali įjungti įrenginio.

Pirmiausia nustatykite tikslo, kuriam norite pateikti ping, scenarijų, sukurkite apvalkalo objektą ir paleiskite ping komandą.

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

Naudokite „Select Case“ teiginį, kad galėtumėte peržiūrėti „Ping“ rezultatus ir atitinkamai atsakyti. Jei rezultatai grįžta į nulį, žinote, kad svetainė (arba serveris) yra prisijungusi ir jums nieko nereikia daryti. Jei jis grąžina „1“, ping nepavyko ir jums reikia ką nors padaryti. Mano atveju aš siunčiu el. Laišką naudodami „Windows CDO“ objektą:

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

Kai scenarijus paleidžiamas ir nepavyksta įkelti įrenginio ar svetainės, gausite momentinį pranešimą.

Tai greita ir paprasta, ir viskas efektyvu!

„VB Windows“ scenarijų naudojimas kompiuteriui valdyti

Tai tik keletas puikių dalykų, kuriuos galite padaryti naudodami VB scenarijus, kad supaprastintumėte kompiuterio naudojimą, pavyzdžių. Yra daug kitų dalykų, kuriuos galite padaryti, pavyzdžiui, automatinės atsarginės kopijos su VB ir „Synctoy“, automatizuotos „telnet“ komandos ar net atidaryti ir valdyti programų langus.

Kokius dalykus automatizavote savo kompiuteryje naudodami „Windows“ scenarijų? Ar rašote savo naudodami VB, ar naudojate kitą įrankį kaip „PowerShell“ ?

Dalintis Dalintis „Tweet“ Paštu Štai kodėl FTB paskelbė įspėjimą dėl „Hive Ransomware“

FTB paskelbė įspėjimą apie ypač bjaurią išpirkos programinę įrangą. Štai kodėl turite būti ypač atsargūs dėl „Hive“ išpirkos programos.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Kompiuterių automatizavimas
  • Scenarijaus rašymas
Apie autorių Ryanas Dube(Paskelbti 942 straipsniai)

Ryanas turi elektrotechnikos bakalauro laipsnį. Jis 13 metų dirbo automatikos inžinerijos srityje, 5 metus IT srityje, o dabar yra programų inžinierius. Buvęs „MakeUseOf“ vadovaujantis redaktorius, jis kalbėjo nacionalinėse duomenų vizualizavimo konferencijose ir buvo rodomas nacionalinėje televizijoje ir radijuje.

Daugiau iš Ryan Dube

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia