5 Полезни скриптове на VB Windows за автоматизиране на използването на компютъра

5 Полезни скриптове на VB Windows за автоматизиране на използването на компютъра

Независимо дали сте IT анализатор или редовен потребител на компютър, има много задачи, които може да се наложи да правите често на вашия компютър. VB Scripts са намалени програми на Visual Basic, които служат като скриптове на Windows, които могат да направят всичко - от извличане на важна информация за хардуера на вашия компютър, до спиране и стартиране на услуги или нулиране на вашата мрежова карта.





Възможно е да научите как да правите всички тези отделни неща по нормалния начин или да ги правите с помощта на пакетни файлове. Но VB скриптовете са по -добри от пакетните скриптове защото са по -гъвкави. Ако съхранявате следните скриптове на общо място, до което можете бързо да стигнете, когато имате нужда от него, можете да изпълнявате тези задачи за част от времето. Просто щракнете двукратно върху скрипта, отговорете на подкана и задачата е свършена.





Разгледайте следните скриптове на VB Windows и ако видите такива, които искате да използвате, просто копирайте и поставете скрипта в Бележник или друг инструмент за кодиране на бележки и го запишете като WSF файл.





Подгответе вашите скриптове за Windows

Всеки от скриптовете, описани по -долу, ще се изпълнява само с двойно щракване, стига да посочите файла с разширението .WSF, а също така сте приложили кода в началото с:


И затворете кода с:



WScript.Quit

Това гарантира, че Windows ще разпознае езика на вашия скрипт и ще го обработи правилно.

1. Използвайте скриптове на Windows за компютърна информация

Windows предлага нещо, наречено WMI или Windows Management Instrumentation, което предоставя на вашия скрипт интерфейс за достъп до компоненти на операционната система. Всъщност можете да стартирате заявки срещу WMI, за да получите актуална информация за вашата система на живо. Microsoft предлага пълен списък на всички категории заявки можете да направите срещу системата.





Разгледахме как да използваме VBA за извличане на компютърна информация в Excel, но можете да направите същото като използвате прост VB скрипт извън Excel.

В този пример ще запитаме системата за информация за процесора (семейство, производител и брой ядра), информация за батерията (описание и състояние) и информация за логическия диск (име, оставащо свободно пространство и общ размер). След това ще изведем цялата тази информация в CSV файл за лесно гледане.





Първата стъпка е да настроите FileSystemObject, който ще използвате за извеждане на CSV файла, и да създадете файла:

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

Следващата стъпка е да настроите WMI заявката и да я изпълните:

е съвместим с пръстен с Google Home
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Накрая, сортирайте резултатите и изведете информацията в CSV файла. Ако искате да бъдете фантастични, представете това с няколко реда, за да направите изходния си файл по -добър:

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

Ако стартирате кода си сега, така ще изглежда вашият изход:

За следващите две секции от кода ви просто ще повторите и промените заявката, за да потърсите допълнителна информация. Ето заявката за информация за батерията:

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

И ето следващия раздел за заявката за логически диск:

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

И накрая, не забравяйте да затворите кода, като затворите файла и зададете обектите на „Нищо“:

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

Поставете целия този код във вашия нов .WSF файл, стартирайте го и ето как ще изглежда вашият изход:

Просто сменете заявките по -горе за всякакви други компютърни устройства или софтуер, за които искате да получите информация, и можете да получите пълен системен отчет по всяко време само с едно щракване на мишката.

2. Спиране и стартиране на услуги

Ще има моменти, когато определени услуги имат проблеми и изискват само бързо рестартиране, за да стартират отново правилно. Това е особено вярно в ИТ когато сте принудени да стартирате сървърния софтуер, който понякога е малко бъги.

Ако искате да обръснете минута или повече от процеса на рестартиране на услугата, просто съхранявайте следния скрипт на удобно място. Той ще ви подкани да въведете името на услугата, която искате да рестартирате, и след това ще направи точно това.

Тъй като спирането и стартирането на услуги изисква административни привилегии, трябва да поставите следния код в началото на вашия скрипт, за да дадете своя скрипт повишени привилегии :

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

След като това стане, добавете останалата част от кода, за да стартирате полето за въвеждане за въвеждане от потребителя, стартирайте командния прозорец и му изпратете „net stop“ и „net start commands“:

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

Това е всичко. Няма нужда да търсите инструмента за услуги. Просто стартирайте този скрипт и спрете и стартирайте всяка услуга за секунди.

3. Променете настройките на системния регистър, администраторската парола по подразбиране

Със следния сценарий ще убием две птици с един камък. Този скрипт ще ви покаже как да редактирайте системния регистър с VB скрипт. Той също така ще ви даде скрипт, който ще ви позволи да зададете потребителското име и паролата за Windows по подразбиране, като редактирате тези настройки на системния регистър.

Ето как работи. Първо, тъй като редактирането на системния регистър изисква администраторски права, ще трябва да настроите повишени привилегии за вашия скрипт:

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

Първо стартирайте две полета за въвеждане, за да попитате потребителя какво потребителско име и парола да използва:

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

След това настройте обекта на обвивката и запишете тези стойности в съответните ключове на системния регистър:

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

И това е всичко. Методът „RegWrite“ ви позволява да записвате всяка стойност към всеки ключ на системния регистър, използвайки скрипт VB Windows. Всичко, което трябва да знаете, е подходящият път.

Стартирайте скрипта и отговорете на подканите.

Въведените от вас стойности ще бъдат вмъкнати направо в настройките на системния регистър, които сте задали в скрипта.

Поиграйте със сценария и го оправете по ваш вкус. Можете да редактирате всички ключове в системния регистър, които харесвате, така че бъдете креативни!

4. Нулирайте мрежовата си връзка

Нулирането на вашата мрежова връзка с помощта на VB скриптове е нещо, което разгледахме преди тук в MakeUseOf. Следващата версия на това всъщност е намалена и много по -проста за изпълнение. Вместо да подкани за отделни мрежови карти, той нулира всичките ви активни връзки, което се надяваме да разреши всички мрежови проблеми, които може да имате.

Както при другите скриптове, които се нуждаят от администраторски права, ще трябва да добавите секцията в началото за повишени привилегии. Копирайте този код от горния скрипт.

След това създайте обекта WMI и го попитайте за списък с разрешени мрежови адаптери във вашата система:

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

И накрая, преминете през всички активирани адаптери и ги нулирайте:

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

Това ще нулира всичките ви активни мрежови адаптери , което често е най -бързият начин за разрешаване на досадни мрежови проблеми. Дръжте този скрипт удобен и опитайте първо всеки път, когато имате бавна мрежа или други странни мрежови проблеми.

5. Пинг устройства или уебсайтове

Запазих любимия си скрипт за Windows VB за последно. Това е едно, което всъщност зададох като планирана задача на домашния си компютър и го изпълнявам няколко пъти на ден, само за да проверя дали уебсайтът ми е активен. Имам скрипта да ми изпрати имейл, ако сайтът не работи. Можете да използвате същия скрипт, за да наблюдавате важни сървъри или компютри във вашата мрежа и да си изпращате имейл всеки път, когато скриптът ви не може да направи пинг на устройството.

Първо, настройте скрипта за целта, която искате да пингвате, създайте обекта на черупката и след това изпълнете командата ping.

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

Използвайте оператор Select Case, за да преминете през резултатите на Ping и да отговорите съответно. Ако резултатите се върнат като нула, тогава знаете, че сайтът (или сървърът) е онлайн и не е нужно да правите нищо. Ако връща „1“, тогава пингът се провали и трябва да направите нещо. В моя случай изпращам имейл с помощта на 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

След като скриптът стартира и не може да пингва устройството или уебсайта, получавате незабавно съобщение.

Това е бързо и лесно и всяко ефективно!

Използване на VB Windows скриптове за управление на компютъра

Това са само няколко примера за някои от готините неща, които можете да направите с VB скриптове, за да оптимизирате използването на компютъра си. Има много други неща, които можете да правите, като автоматизирани архиви с VB и Synctoy, автоматизиране на telnet команди или дори отваряне и управление на прозорци на приложения.

Кои са някои от нещата, които сте автоматизирали на компютъра си със скрипт за Windows? Пишете ли вашите с помощта на VB или използвате друг инструмент като PowerShell ?

Дял Дял Туит електронна поща Ето защо ФБР е издало предупреждение за кошери Ransomware

ФБР издаде предупреждение за особено гаден вид рансъмуер. Ето защо трябва да сте особено предпазливи към рансъмуера на Hive.

Прочетете Напред
Свързани теми
  • Програмиране
  • Компютърна автоматизация
  • Скриптове
За автора Райън Дубе(942 публикувани статии)

Райън има бакалавърска степен по електротехника. Работил е 13 години в областта на автоматизацията, 5 години в областта на информационните технологии, а сега е инженер по приложения. Бивш управляващ редактор на MakeUseOf, той говори на национални конференции за визуализация на данни и е включен в националната телевизия и радио.

Още от Райън Дубе

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате