5 Užitočných skriptov VB Windows na automatizáciu používania počítača

5 Užitočných skriptov VB Windows na automatizáciu používania počítača

Bez ohľadu na to, či ste analytik IT alebo pravidelný používateľ počítača, existuje množstvo úloh, ktoré musíte na počítači často vykonávať. Skripty VB sú zmenšené programy Visual Basic, ktoré slúžia ako skripty systému Windows a môžu vykonávať čokoľvek od načítania dôležitých informácií o hardvéri počítača až po zastavovanie a spúšťanie služieb alebo resetovanie sieťovej karty.





Je možné sa naučiť, ako robiť všetky tieto jednotlivé veci normálnym spôsobom, alebo ich vykonávať pomocou dávkových súborov. ale Skripty VB sú lepšie ako dávkové skripty pretože sú flexibilnejšie. Ak nasledujúce skripty uložíte na spoločné miesto, kam sa rýchlo dostanete, keď to budete potrebovať, môžete tieto úlohy zvládnuť za zlomok času. Stačí dvakrát kliknúť na skript, odpovedať na výzvu a úloha je hotová.





Pozrite sa na nasledujúce skripty VB Windows a ak uvidíte nejaké, ktoré by ste chceli použiť, skopírujte a prilepte skript do Poznámkový blok alebo iný nástroj pre poznámky o kódovaní a uložte ho ako súbor WSF.





Pripravte si skripty systému Windows

Každý zo skriptov popísaných nižšie sa spustí dvojitým kliknutím, pokiaľ súbor pomenujete príponou .WSF a ​​kód ste na začiatku priložili aj k:


A zatvorte kód pomocou:



WScript.Quit

Tým je zaistené, že systém Windows rozpozná jazyk, v ktorom je napísaný váš skript, a správne ho spracuje.

1. Na informácie o počítači použite skripty Windows

Windows ponúka niečo ako WMI alebo Windows Management Instrumentation, ktoré poskytuje vášmu skriptu rozhranie na prístup k komponentom operačného systému. Môžete skutočne spúšťať dotazy proti WMI a získať aktuálne aktuálne informácie o vašom systéme. Spoločnosť Microsoft ponúka úplný zoznam všetkých kategórie dotazov môžete urobiť proti systému.





Zoznámili sme sa s tým, ako používať VBA na sťahovanie informácií o počítači do Excelu, ale to isté môžete urobiť aj pomocou jednoduchého skriptu VB mimo Excelu.

V tomto prípade budeme dotazovať systém na informácie o procesore (rodina, výrobca a počet jadier), informácie o batérii (popis a stav) a informácie o logickom disku (názov, zostávajúce voľné miesto a celková veľkosť). Potom všetky tieto informácie prenesieme do súboru CSV, aby ste ich mohli ľahko zobraziť.





Prvým krokom je nastavenie FileSystemObject, ktorý použijete na výstup do súboru CSV, a vytvorenie súboru:

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

Ďalším krokom je nastavenie dotazu WMI a jeho spustenie:

ako urobiť fotografiu priehľadnou
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Nakoniec zoraďte výsledky a odošlite informácie do súboru CSV. Ak chcete byť fantastickí, predhovorte to niekoľkými riadkami, aby váš výstupný súbor vyzeral lepšie:

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

Ak teraz spustíte kód, váš výstup bude vyzerať takto:

V ďalších dvoch častiach kódu už len zopakujete a zmeníte dotaz, aby ste vyhľadali ďalšie informácie. Tu je dotaz na informácie o batérii:

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

A tu je ďalšia časť pre dotaz logického disku:

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

Nakoniec nezabudnite zavrieť kód zatvorením súboru a nastavením objektov na „Nič“:

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

Vložte všetok kód do nového súboru .WSF, spustite ho a váš výstup bude vyzerať takto:

Stačí vymeniť vyššie uvedené dotazy za akékoľvek iné počítačové zariadenia alebo softvér, o ktorých chcete získať informácie, a jediným kliknutím myši môžete kedykoľvek získať úplnú správu o systéme.

2. Zastavte a spustite služby

Môžu nastať prípady, kedy majú určité služby problémy a vyžadujú iba rýchly reštart, aby opäť správne bežali. Toto je obzvlášť pravda v IT keď ste nútení spustiť serverový softvér, ktorý je niekedy trochu chybný.

Ak sa chcete zhruba minútu oholiť z procesu reštartu služby, uložte nasledujúci skript na nejaké vhodné miesto. Zobrazí sa výzva na zadanie názvu služby, ktorú chcete reštartovať, a potom to urobí presne tak.

Pretože zastavovanie a spúšťanie služieb vyžaduje oprávnenia správcu, na poskytnutie skriptu musíte na začiatok skriptu umiestniť nasledujúci kód. zvýšené privilégiá :

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

Akonáhle to urobíte, pridajte zvyšok kódu na spustenie vstupného poľa pre vstup používateľa, spustite príkazové okno a odošlite mu príkazy „net stop“ a „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 všetko, čo k tomu patrí. Nie je potrebné hľadať nástroj pre služby. Stačí spustiť tento skript a v priebehu niekoľkých sekúnd zastaviť a spustiť akúkoľvek službu.

3. Zmeňte nastavenia databázy Registry, predvolené heslo správcu

Nasledujúcim scenárom zabijeme dve muchy jednou ranou. Tento skript vám ukáže, ako na to upraviť register so skriptom VB. Poskytne vám tiež skript, ktorý vám umožní nastaviť predvolené používateľské meno a heslo systému Windows úpravou týchto nastavení registra.

Funguje to takto. Po prvé, pretože úprava registra vyžaduje práva správcu, budete musieť pre svoj skript nastaviť zvýšené oprávnenia:

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

Najprv spustite dve vstupné polia a opýtajte sa používateľa, aké používateľské meno a heslo má použiť:

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

Ďalej nastavte objekt shell a zapíšte tieto hodnoty do príslušných kľúčov databázy Registry:

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

A to je všetko, čo k tomu patrí. Metóda „RegWrite“ vám umožňuje zapísať ľubovoľnú hodnotu do ľubovoľného kľúča databázy Registry pomocou skriptu VB Windows. Jediné, čo musíte vedieť, je správna cesta.

Spustite skript a odpovedzte na výzvy.

Hodnoty, ktoré zadáte, sa vložia priamo do nastavení registra, ktoré ste nastavili v skripte.

Hrajte sa so scenárom a upravte ho podľa svojich predstáv. Môžete upravovať akékoľvek kľúče registra, ktoré sa vám páčia, takže buďte kreatívni!

4. Obnovte sieťové pripojenie

Resetovanie sieťového pripojenia pomocou skriptovania VB je niečo, o čom sme sa už zaoberali tu na MakeUseOf. Nasledujúca verzia je v skutočnosti zmenšená a implementácia je oveľa jednoduchšia. Namiesto výzvy na jednotlivé sieťové karty resetuje všetky vaše aktívne pripojenia, čo by snáď vyriešilo prípadné problémy so sieťou.

Rovnako ako pre ostatné skripty, ktoré vyžadujú práva správcu, budete musieť pridať sekciu na začiatku pre zvýšené oprávnenia. Skopírujte tento kód z vyššie uvedeného skriptu.

Potom vytvorte objekt WMI a požiadajte ho o zoznam povolených sieťových adaptérov vo vašom systéme:

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

Nakoniec prevlečte všetky povolené adaptéry a resetujte ich:

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

Tým sa vynulujú všetky vaše aktívne sieťové adaptéry , čo je často najrýchlejší spôsob riešenia nepríjemných problémov so sieťou. Tento skript majte poruke a vyskúšajte ho vždy, keď máte pomalú sieť alebo iné podivné problémy so sieťou.

5. Zariadenia Ping alebo webové stránky

Ako posledný som si uložil svoj obľúbený skript VB Windows. To je ten, ktorý som v skutočnosti nastavil ako naplánovanú úlohu na svojom domácom počítači a nechal som ho spustiť niekoľkokrát denne, aby som skontroloval, či je môj web aktívny. Ak mi stránka nefunguje, pošlem mi e -mail so skriptom. Rovnaký skript môžete použiť na monitorovanie dôležitých serverov alebo počítačov vo vašej sieti a odosielať si e -maily vždy, keď váš skript nemôže odoslať príkaz ping do zariadenia.

Najprv nastavte skript pre cieľ, ktorý chcete pingovať, vytvorte objekt shell a potom spustite príkaz ping.

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

Pomocou príkazu Vybrať prípad spustite výsledky Ping a odpovedajte podľa nich. Ak sa výsledky vrátia ako nula, potom viete, že stránka (alebo server) je online a nemusíte nič robiť. Ak vráti „1“, ping zlyhal a musíte niečo urobiť. V mojom prípade odosielam e -mail pomocou objektu 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

Keď sa skript spustí a nemôže odoslať príkaz ping na zariadenie alebo webovú stránku, dostanete okamžitú správu.

Je to rýchle a jednoduché a každé efektívne!

Používanie skriptov VB Windows na ovládanie počítača

Toto je len niekoľko príkladov niektorých skvelých vecí, ktoré môžete pomocou skriptovania VB zjednodušiť používanie počítača. Existuje mnoho ďalších vecí, ktoré môžete robiť, napríklad automatické zálohovanie pomocou VB a Synctoy, automatizácia príkazov telnetu alebo dokonca otváranie a ovládanie okien aplikácií.

Aké sú niektoré z vecí, ktoré ste vo svojom počítači automatizovali pomocou skriptu Windows? Píšete svoje pomocou VB alebo používate iný nástroj ako PowerShell ?

zdieľam zdieľam Tweet E -mail Z tohto dôvodu FBI vydala upozornenie na úľový ransomware

FBI vydala varovanie pred obzvlášť škaredým kmeňom ransomwaru. Tu je dôvod, prečo si musíte dávať pozor predovšetkým na ransomware Hive.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Počítačová automatizácia
  • Skriptovanie
O autorovi Ryan Dube(942 publikovaných článkov)

Ryan má bakalársky titul z elektrotechniky. Pracoval 13 rokov v automatizačnom inžinierstve, 5 rokov v IT a teraz je Apps Engineer. Bývalý šéfredaktor MakeUseOf, vystupoval na národných konferenciách o vizualizácii údajov a bol vystupovaný v národnej televízii a rozhlase.

Viac od Ryana Dubeho

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber