5 uporabnih skriptov VB Windows za avtomatizacijo uporabe računalnika

5 uporabnih skriptov VB Windows za avtomatizacijo uporabe računalnika

Ne glede na to, ali ste analitik IT ali navaden uporabnik računalnika, morate v računalniku pogosto opravljati veliko nalog. Skripti VB so pomanjšani programi Visual Basic, ki služijo kot skripti sistema Windows in lahko naredijo karkoli, od pridobivanja pomembnih informacij o strojni opremi vašega računalnika, do ustavitve in zagona storitev ali ponastavitve omrežne kartice.





Mogoče se je naučiti, kako vse te posamezne stvari narediti na običajen način, ali pa jih narediti s paketnimi datotekami. Ampak Skripti VB so boljši od paketnih ker so bolj prilagodljivi. Če naslednje skripte shranite na skupno mesto, ki je hitro dostopno, ko ga potrebujete, lahko te naloge opravite v delčku časa. Dvokliknite skript, odgovorite na poziv in naloga je končana.





Oglejte si naslednje skripte VB Windows in če vidite katere želite uporabiti, samo kopirajte in prilepite skript v Beležnica ali drugo orodje za kodiranje zapiskov in jo shranite kot datoteko WSF.





Pripravite svoje skripte za Windows

Vsak od spodaj opisanih skriptov se bo izvajal le z dvojnim klikom, če ste datoteko poimenovali z razširitvijo .WSF, kodo pa ste na začetku priložili tudi z:


In kodo zaprite z:



WScript.Quit

To zagotavlja, da Windows prepozna jezik, v katerem je napisan vaš skript, in ga ustrezno obdela.

1. Za računalniške informacije uporabite skripte Windows

Windows ponuja nekaj, kar se imenuje WMI ali Windows Management Instrumentation, ki vašemu skriptu nudi vmesnik za dostop do komponent operacijskega sistema. Pravzaprav lahko izvajate poizvedbe proti WMI, da dobite trenutne informacije o vašem sistemu v živo. Microsoft ponuja celoten seznam vseh kategorije poizvedb lahko naredite proti sistemu.





Opisali smo, kako z uporabo VBA potegniti računalniške podatke v Excel, vendar lahko to storite tudi s preprostim skriptom VB zunaj Excela.

V tem primeru bomo sistem poizvedovali o podatkih o procesorju (družina, proizvajalec in število jeder), informacijah o bateriji (opis in stanje) ter informacijah o logičnem disku (ime, preostali prosti prostor in skupna velikost). Nato bomo vse te podatke oddali v datoteko CSV za lažji ogled.





Prvi korak je, da nastavite FileSystemObject, ki ga boste uporabili za izpis v datoteko CSV, in ustvarite datoteko:

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

Naslednji korak je, da nastavite poizvedbo WMI in jo izvedete:

kako postaviti iso na usb
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Nazadnje razvrstite rezultate in iznesite podatke v datoteko CSV. Če želite biti domišljijski, to predgovorite z nekaj vrsticami, da bo vaša izhodna datoteka videti 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

Če kodo zaženete zdaj, bo tako videti vaš izhod:

V naslednjih dveh razdelkih kode boste samo ponovili in spremenili poizvedbo, da poiščete dodatne informacije. Tu je poizvedba o podatkih 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

In tukaj je naslednji razdelek za poizvedbo logičnega 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 koncu ne pozabite zapreti kode tako, da zaprete datoteko in nastavite predmete na 'Nič':

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

Vnesite vso to kodo v svojo novo datoteko .WSF, jo zaženite in tukaj bodo videti vaši rezultati:

Zgoraj zamenjajte poizvedbe za katere koli druge računalniške naprave ali programsko opremo, o kateri želite dobiti informacije, in lahko dobite celotno sistemsko poročilo, kadar koli želite, samo s klikom miške.

2. Storitve Ustavi in ​​zaženi

Prišli bodo časi, ko bodo nekatere storitve imele težave in zahtevajo le hiter ponovni zagon, da se znova pravilno zažene. To je še posebej res v IT ko ste prisiljeni zagnati strežniško programsko opremo, ki je včasih nekoliko napačna.

Če se želite obrisati minuto pred postopkom ponovnega zagona storitve, shranite naslednji skript na primerno mesto. Pozval vas bo, da vnesete ime storitve, ki jo želite znova zagnati, nato pa bo naredil točno to.

Ker ustavitev in zagon storitev zahtevata skrbniške pravice, morate na začetek skripta postaviti naslednjo kodo, če želite dati skript povišane privilegije :

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

Ko to storite, dodajte preostalo kodo, da zaženete vnosno polje za vnos uporabnika, zaženete ukazno okno in mu pošljete ukaze »net stop« in »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}'

To je vse. Orodja za storitve ni treba iskati. Samo zaženite ta skript in v nekaj sekundah ustavite in zaženite katero koli storitev.

3. Spremenite nastavitve registra, privzeto skrbniško geslo

Z naslednjim scenarijem bomo ubili dve ptici z enim kamnom. Ta skript vam bo pokazal, kako uredi register s skriptom VB. Prav tako vam bo dal skript, ki vam bo omogočil nastavitev privzetega uporabniškega imena in gesla za Windows z urejanjem teh nastavitev registra.

Evo, kako to deluje. Prvič, ker urejanje registra zahteva skrbniške pravice, boste morali za svoj skript nastaviti povišane pravice:

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

Najprej zaženite dve vnosni polji in vprašajte uporabnika, katero uporabniško ime in geslo naj uporabi:

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

Nato nastavite objekt lupine in te vrednosti zapišite v ustrezne registrske ključe:

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

In to je vse. Metoda 'RegWrite' vam omogoča, da v skript VB Windows zapišete poljubno vrednost v kateri koli registrski ključ. Vse kar morate vedeti je ustrezna pot.

Zaženite skript in odgovorite na pozive.

Vnesene vrednosti bodo vstavljene neposredno v nastavitve registra, ki ste jih nastavili v skriptu.

Poigrajte se s scenarijem in ga prilagodite po svojih željah. Uredite lahko katere koli registrske ključe, ki so vam všeč, zato bodite ustvarjalni!

4. Ponastavite omrežno povezavo

Ponastavitev omrežne povezave s skripti VB je nekaj, kar smo že obravnavali tukaj na MakeUseOf. Naslednja različica tega je dejansko poenostavljena in veliko enostavnejša za izvajanje. Namesto da bi zahteval posamezne omrežne kartice, ponastavi vse vaše aktivne povezave, kar bi upalo rešiti morebitne težave z omrežjem.

Tako kot pri drugih skriptih, ki potrebujejo skrbniške pravice, boste morali na začetku dodati razdelek za povišane pravice. Kopirajte to kodo iz zgornjega skripta.

Nato ustvarite objekt WMI in ga poizvedite za seznam omogočenih omrežnih vmesnikov v vašem sistemu:

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

Nazadnje preglejte vse omogočene vmesnike in jih ponastavite:

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

S tem boste ponastavili vse svoje aktivni omrežni adapterji , ki je pogosto najhitrejši način za reševanje nadležnih omrežnih težav. Naj bo ta skript pri roki in ga preizkusite vsakič, ko imate počasno omrežje ali druge čudne težave z omrežjem.

5. Ping naprave ali spletna mesta

Najljubši skript VB windows sem shranil nazadnje. To je tisto, kar sem dejansko nastavil kot načrtovano opravilo na svojem domačem računalniku in ga izvajal večkrat na dan samo zato, da preverim, ali je moje spletno mesto aktivno. Če mi je spletno mesto onemogočeno, mi je napisan skript. Ta isti skript lahko uporabite za spremljanje pomembnih strežnikov ali računalnikov v vašem omrežju in pošiljanje e -pošte vsakič, ko vaš skript ne more pingati naprave.

Najprej nastavite skript za cilj, ki ga želite pingati, ustvarite objekt lupine in nato zaženite ukaz ping.

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

Uporabite stavek Select Case, če želite poiskati rezultate Ping in se ustrezno odzvati. Če so rezultati nič, potem veste, da je spletno mesto (ali strežnik) na spletu in vam ni treba storiti ničesar. Če vrne '1', potem ping ni uspel in morate nekaj narediti. V mojem primeru pošljem e -poštno sporočilo z objektom Windows CDO:

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

Ko se skript zažene in ne more pingati naprave ali spletnega mesta, prejmete takojšnje sporočilo.

Hitro in enostavno in učinkovito!

Uporaba skriptov VB Windows za nadzor računalnika

To je le nekaj primerov nekaterih kul stvari, ki jih lahko naredite s skripti VB za racionalizacijo uporabe računalnika. Obstaja veliko drugih stvari, ki jih lahko naredite, na primer samodejno varnostno kopiranje z VB in Synctoy, avtomatiziranje ukazov telnet ali celo odpiranje in nadzor okna aplikacij.

Katere stvari ste avtomatizirali v računalniku s skriptom Windows? Ali svoje pišete z VB ali uporabite kakšno drugo orodje kot PowerShell ?

Deliti Deliti Cvrkutati E-naslov Tukaj je razlog, zakaj je FBI izdal opozorilo za koprivnico

FBI je izdal opozorilo o še posebej grdi vrsti odkupne programske opreme. Evo, zakaj morate biti še posebej previdni pri odkupni programski opremi Hive.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Računalniška avtomatizacija
  • Skriptiranje
O avtorju Ryan Dube(942 objavljenih člankov)

Ryan je diplomiral iz elektrotehnike. 13 let je delal na področju avtomatizacije, 5 let na področju IT, zdaj pa je inženir aplikacij. Nekdanji glavni urednik MakeUseOfa je govoril na nacionalnih konferencah o vizualizaciji podatkov in je bil predstavljen na nacionalni televiziji in radiu.

Več od Ryana Dubeja

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti