5 Hyödyllisiä VB Windows -skriptejä tietokoneen käytön automatisoimiseksi

5 Hyödyllisiä VB Windows -skriptejä tietokoneen käytön automatisoimiseksi

Olitpa IT -analyytikko tai tavallinen tietokoneen käyttäjä, sinun on ehkä tehtävä monia tehtäviä usein tietokoneellasi. VB -skriptit ovat pienennettyjä Visual Basic -ohjelmia, jotka toimivat Windows -komentosarjoina ja jotka voivat tehdä mitä tahansa tietokoneesi laitteistoa koskevien tärkeiden tietojen keräämisestä palvelujen pysäyttämiseen ja käynnistämiseen tai verkkokortin nollaamiseen.





On mahdollista oppia tekemään kaikki nämä yksittäiset asiat normaalisti tai tekemään ne erätiedostojen avulla. Mutta VB -komentosarjat ovat parempia kuin eräskriptit koska ne ovat joustavampia. Jos tallennat seuraavat komentosarjat yhteiseen paikkaan, johon pääset nopeasti tarvittaessa, voit suorittaa nämä tehtävät murto -osassa aikaa. Kaksoisnapsautat komentosarjaa, vastaat kehotteeseen ja tehtävä on valmis.





Tutustu seuraaviin VB Windows -skripteihin ja jos näet haluamasi, kopioi ja liitä komentosarja Muistio tai muu koodausmuistityökalu ja tallenna se WSF -tiedostona.





Valmistele Windows -komentosarjat

Jokainen alla kuvatuista komentosarjoista suoritetaan vain kaksoisnapsautuksella, kunhan olet nimennyt tiedoston .WSF -laajennuksella ja olet myös liittänyt koodin alussa:


Ja sulje koodi seuraavasti:



WScript.Quit

Tämä varmistaa, että Windows tunnistaa skriptisi kirjoittaman kielen ja käsittelee sen oikein.

1. Käytä Windows Scripts -tietokoneen tietoja

Windows tarjoaa jotain nimeltä WMI tai Windows Management Instrumentation, joka tarjoaa komentosarjalle käyttöliittymän käyttöjärjestelmän osien käyttämiseen. Voit itse suorittaa kyselyjä WMI: tä vastaan ​​saadaksesi ajantasaisia ​​tietoja järjestelmästäsi. Microsoft tarjoaa täydellisen luettelon kaikista kyselyluokat voit tehdä järjestelmää vastaan.





Olemme käsitelleet kuinka käyttää VBA: ta tietokoneiden tietojen viemiseen Exceliin, mutta voit tehdä saman käyttämällä yksinkertaista VB -komentosarjaa Excelin ulkopuolella.

Tässä esimerkissä aiomme kysyä järjestelmästä prosessorin tietoja (perhe, valmistaja ja ytimien lukumäärä), akutietoja (kuvaus ja tila) ja loogisia levytietoja (nimi, jäljellä oleva vapaa tila ja koko). Sitten tulostamme kaikki nämä tiedot CSV -tiedostoon, jotta niitä on helppo tarkastella.





Ensimmäinen vaihe on määrittää FileSystemObject, jota käytät tulostettaessa CSV -tiedostoon, ja luoda tiedosto:

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

Seuraava askel on määrittää WMI -kysely ja suorittaa se:

kuinka tehdä sademittarin iho
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Lopuksi lajittele tulokset ja lähetä tiedot CSV -tiedostoon. Jos haluat olla hieno, esipuhdista tämä muutamalla rivillä, jotta tulostustiedosto näyttää paremmalta:

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

Jos suoritat koodisi nyt, tulos näyttää tältä:

Koodin kahden seuraavan osan kohdalla vain toistat ja muutat kyselyä etsiäksesi lisätietoja. Tässä akun tiedot:

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 tässä on seuraava loogisen levyn kyselyn osa:

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

Muista lopuksi sulkea koodi sulkemalla tiedosto ja asettamalla objekteiksi 'Ei mitään':

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

Laita kaikki koodit uuteen .WSF -tiedostoon, suorita se, ja tulos näyttää tältä:

Vaihda vain yllä olevat kyselyt muille tietokonelaitteille tai ohjelmistoille, joista haluat tietoja, ja saat täyden järjestelmäraportin milloin tahansa vain hiiren napsautuksella.

2. Pysäytä ja käynnistä palvelut

Joskus joillakin palveluilla on ongelmia, ja ne tarvitsevat vain nopean uudelleenkäynnistyksen, jotta ne toimivat kunnolla uudelleen. Tämä on erityisen tärkeää totta IT -alalla kun joudut käyttämään palvelinohjelmistoa, joka on joskus hieman viallinen.

Jos haluat ajaa noin minuutin pois palvelun uudelleenkäynnistysprosessista, tallenna vain seuraava skripti sopivaan paikkaan. Se pyytää sinua kirjoittamaan palvelun nimen, jonka haluat käynnistää uudelleen, ja sitten se tekee juuri sen.

Koska palveluiden pysäyttäminen ja käynnistäminen edellyttää järjestelmänvalvojan oikeuksia, sinun on lisättävä seuraava koodi skriptisi alkuun skriptisi antamiseksi korotetut etuoikeudet :

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

Kun tämä on tehty, lisää loput koodista, jotta käyttäjä voi syöttää syöttökentän, käynnistää komentoikkunan ja lähettää sille 'net stop' ja 'net start -komennot':

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

Siinä kaikki. Palvelutyökalua ei tarvitse metsästää. Suorita tämä skripti ja pysäytä ja käynnistä palvelu muutamassa sekunnissa.

3. Muuta rekisteriasetuksia, järjestelmänvalvojan oletussalasana

Seuraavalla käsikirjoituksella aiomme tappaa kaksi lintua yhdellä iskulla. Tämä käsikirjoitus näyttää sinulle kuinka muokkaa rekisteriä VB -käsikirjoituksella. Se antaa sinulle myös komentosarjan, jonka avulla voit asettaa Windowsin oletuskäyttäjänimen ja -salasanan muokkaamalla näitä rekisteriasetuksia.

Näin se toimii. Ensinnäkin, koska rekisterin muokkaaminen edellyttää järjestelmänvalvojan oikeuksia, sinun on määritettävä komentosarjasi korotetut oikeudet:

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

Suorita ensin kaksi syöttökenttää ja kysy käyttäjältä, mitä käyttäjänimeä ja salasanaa haluat käyttää:

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

Määritä seuraavaksi kuoriobjekti ja kirjoita nämä arvot asianmukaisiin rekisteriavaimiin:

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

Ja siinä kaikki. 'RegWrite' -menetelmän avulla voit kirjoittaa minkä tahansa arvon mihin tahansa rekisteriavaimeen käyttämällä VB Windows -komentosarjaa. Sinun tarvitsee vain tietää oikea polku.

Suorita komentosarja ja vastaa kehotteisiin.

Antamasi arvot lisätään suoraan komentosarjassa määritettyihin rekisteriasetuksiin.

Pelaa käsikirjoituksella ja säädä sitä mieleiseksesi. Voit muokata haluamiasi rekisteriavaimia, joten ole luova!

4. Nollaa verkkoyhteys

Verkkoyhteyden nollaaminen VB -komentosarjojen avulla on käsitelty aiemmin täällä MakeUseOfissa. Seuraava versio tästä on itse asiassa pienennetty ja paljon yksinkertaisempi toteuttaa. Yksittäisten verkkokorttien kehottamisen sijaan se nollaa kaikki aktiiviset yhteytesi, mikä toivottavasti ratkaisee mahdolliset verkko -ongelmat.

Kuten muidenkin komentosarjojen kohdalla, jotka tarvitsevat järjestelmänvalvojan oikeuksia, sinun on lisättävä osio alussa, jotta saat lisää käyttöoikeuksia. Kopioi koodi yllä olevasta komentosarjasta.

Luo seuraavaksi WMI -objekti ja kysy siitä luettelo järjestelmässäsi olevista verkkosovittimista:

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

Lopuksi, kierrä kaikki käytössä olevat sovittimet läpi ja nollaa ne:

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

Tämä nollaa kaikki aktiiviset verkkosovittimet , joka on usein nopein tapa ratkaista ärsyttäviä verkko -ongelmia. Pidä tämä komentosarja käsillä ja kokeile sitä ensin aina, kun sinulla on hidas verkko tai muita outoja verkko -ongelmia.

5. Ping -laitteet tai verkkosivustot

Olen tallentanut suosikki VB Windows -skriptini viimeiseksi. Tämä on sellainen, jonka olen itse asettanut ajoitettuun tehtävään kotitietokoneellani ja annan sen suorittaa useita kertoja päivässä vain tarkistaakseni, onko verkkosivustoni aktiivinen. Minulla on skripti sähköpostitse, jos sivusto on poissa käytöstä. Saman komentosarjan avulla voit valvoa verkon tärkeitä palvelimia tai tietokoneita ja lähettää sähköpostia itsellesi aina, kun skriptisi ei voi pingottaa laitetta.

Määritä ensin skripti kohteelle, jonka haluat pingittää, luo shell -objekti ja suorita ping -komento.

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

Käytä Ping -tulosten valitsemista Select Case -lausekkeella ja vastaa sen mukaan. Jos tulokset palautuvat nollaksi, tiedät, että sivusto (tai palvelin) on verkossa eikä sinun tarvitse tehdä mitään. Jos se palauttaa arvon 1, ping epäonnistui ja sinun on tehtävä jotain. Minun tapauksessani lähetän sähköpostin käyttämällä Windows CDO -objektia:

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

Kun komentosarja suoritetaan eikä voi pingottaa laitetta tai verkkosivustoa, saat pikaviestin.

Se on nopeaa ja helppoa, ja kaikki tehokkaita!

Tietokoneen ohjaaminen VB Windows -skriptien avulla

Nämä ovat vain muutamia esimerkkejä hienoista asioista, joita voit tehdä VB -komentosarjojen avulla virtaviivaistaaksesi tietokoneen käyttöä. On monia muita asioita, joita voit tehdä, kuten automaattiset varmuuskopiot VB: n ja Synctoyn kanssa, telnet -komentojen automatisointi tai jopa sovellusten ikkunoiden avaaminen ja hallitseminen.

Mitä asioita olet automatisoinut tietokoneellasi Windowsin komentosarjan avulla? Kirjoitatko omasi käyttämällä VB: tä tai jotain muuta työkalua kuten PowerShell ?

Jaa Jaa Tweet Sähköposti Tästä syystä FBI antoi varoituksen Hive Ransomware -ohjelmasta

FBI antoi varoituksen erityisen ikävästä ransomware -kannasta. Tästä syystä sinun on oltava erityisen varovainen Hive -lunnasohjelmista.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Tietokoneautomaatio
  • Käsikirjoitus
Kirjailijasta Ryan Dube(942 artikkelia julkaistu)

Ryanilla on sähkötekniikan kandidaatin tutkinto. Hän on työskennellyt 13 vuotta automaatiotekniikassa, 5 vuotta IT -alalla ja on nyt sovellusinsinööri. MakeUseOfin entinen toimituspäällikkö, hän on puhunut kansallisissa datan visualisointia käsittelevissä konferensseissa ja hän on esiintynyt kansallisessa televisiossa ja radiossa.

Lisää Ryan Dubelta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi