5 Scripturi Windows VB utile pentru automatizarea utilizării computerului

5 Scripturi Windows VB utile pentru automatizarea utilizării computerului

Indiferent dacă sunteți analist IT sau un utilizator obișnuit al computerului, este posibil să aveți nevoie de multe sarcini pe computerul dvs. Scripturile VB sunt reduse programele Visual Basic care servesc ca scripturi Windows care pot face orice, de la extragerea informațiilor importante despre hardware-ul computerului dvs., până la oprirea și pornirea serviciilor sau resetarea plăcii de rețea.





Este posibil să învățați cum să faceți toate acele lucruri individuale în mod normal sau să le faceți folosind fișiere batch. Dar Scripturile VB sunt mai bune decât scripturile batch pentru că sunt mai flexibili. Dacă stocați următoarele scripturi într-un loc obișnuit la care puteți ajunge rapid când aveți nevoie de el, puteți îndeplini aceste sarcini într-o fracțiune din timp. Doar faceți dublu clic pe script, răspundeți la o solicitare și sarcina este terminată.





Aruncați o privire la următoarele scripturi VB Windows și, dacă vedeți vreunul pe care doriți să îl utilizați, copiați și lipiți scriptul în Notepad sau alt instrument de notare de codificare și salvați-l ca fișier WSF.





Pregătiți-vă scripturile Windows

Fiecare dintre scripturile detaliate mai jos va rula cu doar un dublu clic, atâta timp cât ați numit fișierul cu extensia .WSF și ați adăugat codul la început cu:


Și închideți codul cu:



WScript.Quit

Acest lucru asigură faptul că Windows va recunoaște limba în care este scris scriptul dvs. și îl va procesa corect.

1. Utilizați Scripturi Windows pentru informații despre computer

Windows oferă ceva numit WMI sau Windows Management Instrumentation, care oferă scriptului dvs. o interfață pentru a accesa componentele sistemului de operare. Puteți efectua de fapt interogări împotriva WMI pentru a obține informații live curente despre sistemul dvs. Microsoft oferă o listă completă a tuturor categorii de interogări poți face împotriva sistemului.





Am prezentat cum să utilizați VBA pentru a trage informații despre computer în Excel, dar puteți face același lucru folosind un script VB simplu în afara Excel.

În acest exemplu, vom interoga sistemul pentru informații despre procesor (familie, producător și numărul de nuclee), informații despre baterie (descriere și stare) și informații logice pe disc (nume, spațiu liber rămas și dimensiunea totală). Apoi vom afișa toate aceste informații într-un fișier CSV pentru vizualizare ușoară.





Primul pas este să configurați FileSystemObject pe care îl veți folosi pentru a ieși în fișierul CSV și să creați fișierul:

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

Următorul pas este să configurați interogarea WMI și să o executați:

cum să preluați mesajele șterse din messenger
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

În cele din urmă, sortați rezultatele și trimiteți informațiile în fișierul CSV. Dacă doriți să fiți elegant, prefațați acest lucru cu câteva linii pentru a vă ajuta să faceți ca fișierul de ieșire să arate mai bine:

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

Dacă rulați codul acum, așa va arăta rezultatul:

Pentru următoarele două secțiuni ale codului dvs., veți repeta și schimba interogarea pentru a căuta informații suplimentare. Iată interogarea cu informații despre baterie:

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

Iată următoarea secțiune pentru interogarea pe disc logic:

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

În cele din urmă, nu uitați să închideți codul închizând fișierul și setând obiectele la „Nimic”:

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

Introduceți tot codul în noul fișier .WSF, rulați-l și iată cum va arăta ieșirea:

Trebuie doar să schimbați interogările de mai sus pentru orice alte dispozitive sau software pentru computer despre care doriți să obțineți informații și puteți obține un raport complet al sistemului oricând doriți cu doar un clic al mouse-ului.

2. Opriți și porniți serviciile

Vor exista momente în care anumite servicii au probleme și necesită doar o repornire rapidă pentru a rula din nou corect. Aceasta este mai ales adevărat în IT când ești forțat să rulezi software de server care uneori este puțin buggy.

Dacă doriți să vă radeți un minut sau ceva mai puțin din procesul de repornire a serviciului, stocați următorul script într-un loc convenabil. Vă va solicita să tastați numele serviciului pe care doriți să îl reporniți, apoi va face exact acest lucru.

Deoarece oprirea și pornirea serviciilor necesită privilegii administrative, trebuie să plasați următorul cod la începutul scriptului pentru a da scriptul privilegii ridicate :

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

Odată ce ați făcut acest lucru, adăugați restul codului pentru a rula caseta de intrare pentru introducerea utilizatorului, lansați fereastra de comandă și trimiteți-i „net stop” și „comenzi 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}'

Cam despre asta e. Nu este nevoie să căutați instrumentul de servicii. Pur și simplu rulați acest script și opriți și porniți orice serviciu în câteva secunde.

3. Schimbați setările de registru, parola de administrator implicită

Cu următorul script, vom ucide două păsări cu o singură piatră. Acest script vă va arăta cum editați registrul cu un script VB. De asemenea, vă va oferi un script care vă va permite să setați numele de utilizator și parola implicite Windows, editând setările de registry.

Iată cum funcționează. În primul rând, deoarece editarea registrului necesită drepturi de administrator, va trebui să configurați privilegii ridicate pentru scriptul dvs.:

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

Mai întâi rulați două casete de introducere pentru a întreba utilizatorul ce nume de utilizator și parolă să utilizeze:

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

Apoi, configurați obiectul shell și scrieți aceste valori în cheile de registry corespunzătoare:

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

Și asta este tot ce există. Metoda „RegWrite” vă permite să scrieți orice valoare pe orice cheie de registry utilizând un script VB Windows. Tot ce trebuie să știți este calea potrivită.

Rulați scriptul și răspundeți la solicitări.

Valorile pe care le introduceți vor fi inserate direct în setările de registry pe care le-ați configurat în script.

Joacă-te cu scenariul și modifică-l după bunul tău gust. Puteți edita orice chei de registry doriți, deci fiți creativi!

4. Resetați conexiunea la rețea

Resetarea conexiunii dvs. de rețea utilizând scripturi VB este ceva ce am tratat anterior aici, la MakeUseOf. Următoarea versiune a acestui lucru este de fapt redusă și mult mai simplă de implementat. În loc să solicite carduri de rețea individuale, acesta resetează toate conexiunile active, care, sperăm, ar rezolva orice probleme de rețea pe care le aveți.

Ca și în cazul altor scripturi care au nevoie de drepturi de administrator, va trebui să adăugați secțiunea la început pentru privilegii ridicate. Copiați codul din scriptul de mai sus.

Apoi, creați obiectul WMI și interogați-l pentru o listă de adaptoare de rețea activate pe sistemul dvs.:

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

În cele din urmă, parcurgeți toate adaptoarele activate și resetați-le:

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

Acest lucru vă va reseta toate adaptoare de rețea active , care este adesea cel mai rapid mod de a rezolva problemele enervante de rețea. Păstrați acest script la îndemână și încercați-l mai întâi de fiecare dată când aveți o rețea lentă sau alte probleme de rețea ciudate.

5. Dispozitive Ping sau site-uri web

Mi-am salvat scriptul preferat de Windows VB pentru ultima dată. Aceasta este una pe care am configurat-o de fapt ca o sarcină programată pe computerul meu de acasă și să o rulez de mai multe ori pe zi doar pentru a verifica dacă site-ul meu web este activ. Am scriptul prin e-mail dacă site-ul nu funcționează. Puteți utiliza același script pentru a monitoriza servere sau computere importante din rețeaua dvs. și să vă trimiteți prin e-mail oricând scriptul dvs. nu poate face ping pe dispozitiv.

Mai întâi, configurați scriptul pentru ținta pe care doriți să faceți ping, creați obiectul shell și apoi executați comanda ping.

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

Utilizați o instrucțiune Select Case pentru a parcurge rezultatele Ping și a răspunde în consecință. Dacă rezultatele revin la zero, atunci știți că site-ul (sau serverul) este online și nu trebuie să faceți nimic. Dacă returnează un „1”, atunci ping-ul a eșuat și trebuie să faceți ceva. În cazul meu, trimit un e-mail folosind obiectul CDO Windows:

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

Odată ce scriptul rulează și nu poate face ping pe dispozitiv sau pe site, primiți un mesaj instant.

Este rapid și ușor și fiecare eficient!

Utilizarea scripturilor VB Windows pentru a vă controla computerul

Acestea sunt doar câteva exemple ale unor lucruri interesante pe care le puteți face cu scripturile VB pentru a vă simplifica utilizarea computerului. Există o mulțime de alte lucruri pe care le puteți face, cum ar fi copiile de rezervă automatizate cu VB și Synctoy, automatizarea comenzilor telnet sau chiar deschiderea și controlul ferestrelor aplicației.

Care sunt unele dintre lucrurile pe care le-ați automatizat pe computerul dvs. cu un script Windows? Scrii al tău folosind VB sau folosești alt instrument precum PowerShell ?

Acțiune Acțiune Tweet E-mail Iată de ce FBI a emis un avertisment pentru Hive Ransomware

FBI a emis un avertisment cu privire la o tulpină deosebit de urâtă de ransomware. Iată de ce trebuie să fiți deosebit de atenți la ransomware-ul Hive.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Automatizarea computerelor
  • Scripting
Despre autor Ryan Dube(942 articole publicate)

Ryan are o diplomă de licență în inginerie electrică. A lucrat 13 ani în ingineria automatizării, 5 ani în IT, iar acum este inginer de aplicații. Fost editor manager al MakeUseOf, a vorbit la conferințe naționale privind vizualizarea datelor și a fost prezentat la TV și radio naționale.

Mai multe de la Ryan Dube

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona