5 noderīgi Windows skripti VB, lai automatizētu datora lietošanu

5 noderīgi Windows skripti VB, lai automatizētu datora lietošanu

Neatkarīgi no tā, vai esat IT analītiķis vai parasts datora lietotājs, datorā, iespējams, būs jāveic bieži uzdevumi. VB skripti ir samazināti Visual Basic programmas, kas kalpo kā Windows skripti, kas var darīt jebko, sākot ar svarīgas informācijas iegūšanu par datora aparatūru, beidzot ar pakalpojumu apturēšanu un palaišanu vai tīkla kartes atiestatīšanu.





Ir iespējams iemācīties veikt visas šīs atsevišķās lietas parastajā veidā vai veikt tās, izmantojot pakešu failus. Bet VB skripti ir labāki par sērijveida skriptiem jo tie ir elastīgāki. Ja šādus skriptus glabājat kopējā vietā, kur ātri nokļūt, kad tas ir nepieciešams, varat paveikt šos uzdevumus tikai daļu laika. Jūs vienkārši veicat dubultklikšķi uz skripta, atbildat uz uzvedni un uzdevums ir pabeigts.





Apskatiet šādus VB Windows skriptus un, ja redzat tos, kurus vēlaties izmantot, vienkārši kopējiet un ielīmējiet skriptu Piezīmju grāmatiņa vai cits kodēšanas piezīmju rīks un saglabājiet to kā WSF failu.





Sagatavojiet Windows skriptus

Katrs no tālāk aprakstītajiem skriptiem darbosies tikai ar dubultklikšķi, ja vien failam būs piešķirts paplašinājums .WSF, kā arī sākumā būsiet pievienojis kodu ar:


Un aizveriet kodu ar:



WScript.Quit

Tas nodrošina, ka sistēma Windows atpazīs skripta rakstīšanas valodu un pareizi to apstrādās.

1. Datora informācijai izmantojiet Windows skriptus

Windows piedāvā kaut ko tādu, ko sauc par WMI vai Windows pārvaldības instrumentāciju, kas nodrošina jūsu skriptam saskarni, lai piekļūtu operētājsistēmas komponentiem. Jūs faktiski varat izpildīt vaicājumus pret WMI, lai iegūtu aktuālu informāciju par savu sistēmu. Microsoft piedāvā pilnu sarakstu ar visiem vaicājumu kategorijas jūs varat veikt pret sistēmu.





Mēs esam apskatījuši, kā izmantot VBA, lai datorā ievilktu informāciju programmā Excel, taču to pašu varat izdarīt, izmantojot vienkāršu VB skriptu ārpus programmas Excel.

Šajā piemērā mēs vaicāsim sistēmai informāciju par procesoru (ģimeni, ražotāju un kodolu skaitu), informāciju par akumulatoru (apraksts un statuss) un loģisko diska informāciju (nosaukums, atlikušā brīva vieta un kopējais izmērs). Tad mēs visu šo informāciju izvadīsim CSV failā, lai to būtu ērti apskatīt.





Pirmais solis ir iestatīt FileSystemObject, ko izmantosit izvadīšanai CSV failā, un izveidot failu:

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

Nākamais solis ir iestatīt WMI vaicājumu un izpildīt to:

kas ir ar zona manā tālrunī
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Visbeidzot, kārtojiet rezultātus un izvadiet informāciju CSV failā. Ja vēlaties būt izsmalcināts, ievadiet to ar pāris rindiņām, lai izvades fails izskatītos labāk:

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

Ja jūs palaižat savu kodu tagad, jūsu rezultāts izskatīsies šādi:

Nākamajās divās koda sadaļās jūs vienkārši atkārtosit un mainīsit vaicājumu, lai meklētu papildu informāciju. Šeit ir akumulatora informācijas vaicājums:

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

Un šeit ir nākamā loģiskā diska vaicājuma sadaļa:

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

Visbeidzot, neaizmirstiet slēgt kodu, aizverot failu un iestatot objektus uz “Nekas”:

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

Ievietojiet visu šo kodu savā jaunajā .WSF failā, palaidiet to, un jūsu iznākums izskatīsies šādi:

Vienkārši nomainiet iepriekš minētos vaicājumus par citām datora ierīcēm vai programmatūru, par kuru vēlaties iegūt informāciju, un jūs varat iegūt pilnu sistēmas pārskatu jebkurā laikā, tikai ar peles klikšķi.

2. Apturēt un sākt pakalpojumus

Būs gadījumi, kad dažiem pakalpojumiem ir problēmas, un ir nepieciešama tikai ātra restartēšana, lai atkal sāktu darboties pareizi. Tas ir īpaši taisnība IT jomā kad esat spiests palaist servera programmatūru, kas dažkārt ir nedaudz kļūdaina.

Ja vēlaties noskūt apmēram minūti no pakalpojuma restartēšanas procesa, vienkārši saglabājiet šo skriptu ērtā vietā. Tas liks jums ierakstīt tā pakalpojuma nosaukumu, kuru vēlaties restartēt, un tad tas darīs tieši to.

Tā kā pakalpojumu apturēšanai un palaišanai ir nepieciešamas administratora privilēģijas, skripta sākumā ir jāievieto šāds kods, lai sniegtu savu skriptu paaugstinātas privilēģijas :

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

Kad tas ir izdarīts, pievienojiet atlikušo kodu, lai palaistu lietotāja ievades lodziņu, palaidiet komandu logu un nosūtiet tam “net stop” un “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}'

Tas arī viss. Nav nepieciešams meklēt pakalpojumu rīku. Vienkārši palaidiet šo skriptu un apstājieties un sāciet jebkuru pakalpojumu dažu sekunžu laikā.

3. Mainiet reģistra iestatījumus, noklusējuma administratora paroli

Ar šādu skriptu mēs nogalināsim divus putnus ar vienu akmeni. Šis skripts parādīs, kā to izdarīt rediģēt reģistru ar VB skriptu. Tas arī dos jums skriptu, kas ļaus jums iestatīt noklusējuma Windows lietotājvārdu un paroli, rediģējot šos reģistra iestatījumus.

Lūk, kā tas darbojas. Pirmkārt, tā kā reģistra rediģēšanai ir nepieciešamas administratora tiesības, jums būs jāiestata paaugstinātas skripta privilēģijas.

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

Vispirms palaidiet divus ievades lodziņus, lai pajautātu lietotājam, kādu lietotājvārdu un paroli izmantot:

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

Pēc tam iestatiet čaulas objektu un ierakstiet šīs vērtības atbilstošajās reģistra atslēgās:

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

Un tas ir viss. “RegWrite” metode ļauj ierakstīt jebkuru vērtību jebkurai reģistra atslēgai, izmantojot VB Windows skriptu. Viss, kas jums jāzina, ir pareizais ceļš.

Palaidiet skriptu un atbildiet uz uzvednēm.

Ievadītās vērtības tiks ievietotas tieši skriptā iestatītajos reģistra iestatījumos.

Spēlējiet ar skriptu un pielāgojiet to pēc savas patikas. Jūs varat rediģēt jebkuru reģistra atslēgu, kas jums patīk, tāpēc esiet radošs!

4. Atiestatiet tīkla savienojumu

Tīkla savienojuma atiestatīšana, izmantojot VB skriptu, ir aprakstīta šeit šeit vietnē MakeUseOf. Nākamā šīs versijas versija ir samazināta un to ir daudz vienkāršāk īstenot. Tā vietā, lai pieprasītu atsevišķas tīkla kartes, tas atiestata visus jūsu aktīvos savienojumus, kas, cerams, atrisinās visas iespējamās tīkla problēmas.

Tāpat kā citiem skriptiem, kuriem nepieciešamas administratora tiesības, jums būs jāpievieno sadaļa sākumā, lai iegūtu paaugstinātas privilēģijas. Kopējiet šo kodu no iepriekš minētā skripta.

Pēc tam izveidojiet WMI objektu un vaicājiet tajā jūsu sistēmā iespējoto tīkla adapteru sarakstu:

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

Visbeidzot, apskatiet visus iespējotos adapterus un atiestatiet tos:

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

Tas atiestatīs visu jūsu aktīvi tīkla adapteri , kas bieži vien ir ātrākais veids, kā atrisināt kaitinošas tīkla problēmas. Saglabājiet šo skriptu pie rokas un vispirms izmēģiniet to ikreiz, kad rodas lēns tīkls vai rodas citas dīvainas tīkla problēmas.

5. Ping ierīces vai vietnes

Pēdējam esmu saglabājis savu iecienīto VB windows skriptu. Šo es faktiski iestatīju kā ieplānotu uzdevumu savā mājas datorā un palaistu to vairākas reizes dienā, lai pārbaudītu, vai mana vietne ir aktīva. Man ir skripts, nosūtot man e -pastu, ja vietne nedarbojas. Šo pašu skriptu varat izmantot, lai uzraudzītu svarīgus tīkla serverus vai datorus un nosūtītu e -pastu sev ikreiz, kad skripts nevar pingēt ierīci.

Vispirms iestatiet skriptu mērķim, kuru vēlaties pingēt, izveidojiet čaulas objektu un pēc tam palaidiet ping komandu.

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

Izmantojiet paziņojumu “Izvēlēties lietu”, lai skatītu Ping rezultātus un attiecīgi reaģētu. Ja rezultāti ir nulle, jūs zināt, ka vietne (vai serveris) ir tiešsaistē, un jums nekas nav jādara. Ja tas atgriež “1”, tad ping neizdevās, un jums ir jādara kaut kas. Manā gadījumā es sūtu e -pastu, izmantojot Windows CDO objektu:

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

Kad skripts darbojas un nevar pingēt ierīci vai vietni, tiek parādīts tūlītējs ziņojums.

Tas ir ātri un vienkārši, turklāt visi efektīvi!

VB Windows skriptu izmantošana datora vadīšanai

Šie ir tikai daži piemēri dažām interesantām lietām, ko varat darīt, izmantojot VB skriptus, lai racionalizētu datora lietošanu. Ir daudzas citas lietas, ko varat darīt, piemēram, automātiskas dublēšanas ar VB un Synctoy, telnet komandu automatizēšana vai pat lietojumprogrammu logu atvēršana un kontrole.

Kādas lietas jūs esat automatizējis savā datorā, izmantojot Windows skriptu? Vai jūs rakstāt savu, izmantojot VB, vai kādu citu rīku piemēram, PowerShell ?

Kopīgot Kopīgot Čivināt E -pasts Lūk, kāpēc FIB izdeva brīdinājumu par Hive Ransomware

FIB izdeva brīdinājumu par īpaši nepatīkamu izpirkuma programmatūras celmu. Lūk, kāpēc jums īpaši jāuzmanās no Hive izpirkuma programmatūras.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Datoru automatizācija
  • Skriptu veidošana
Par autoru Raiens Dube(Publicēti 942 raksti)

Raiens ir ieguvis bakalaura grādu elektrotehnikā. Viņš ir strādājis 13 gadus automatizācijas inženierijā, 5 gadus IT jomā un tagad ir lietotņu inženieris. Bijušais MakeUseOf vadošais redaktors, viņš uzstājās nacionālajās datu vizualizācijas konferencēs un tika demonstrēts valsts televīzijā un radio.

Vairāk no Raiena Dube

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu