5 корисних ВБ Виндовс скрипти за аутоматизацију употребе рачунара

5 корисних ВБ Виндовс скрипти за аутоматизацију употребе рачунара

Било да сте ИТ аналитичар или редовни корисник рачунара, постоји много задатака које ћете често морати да радите на рачунару. ВБ скрипте су смањени програми Висуал Басиц -а који служе као Виндовс скрипте и могу учинити било шта, од прикупљања важних информација о хардверу рачунара, до заустављања и покретања услуга или ресетовања мрежне картице.





Могуће је научити како све те појединачне ствари радити на уобичајен начин или их радити помоћу пакетних датотека. Али ВБ скрипте су боље од серијских скрипти јер су флексибилнији. Ако следеће скрипте складиштите на заједничком месту до којег можете брзо доћи када вам затреба, ове задатке можете да обавите у делићу времена. Само двапут кликните на скрипту, одговорите на упит и задатак је завршен.





Погледајте следеће ВБ Виндовс скрипте и ако видите неке које желите да користите, само копирајте и залепите скрипту у Бележница или други алат за кодирање белешки и сачувајте је као ВСФ датотеку.





Припремите своје Виндовс скрипте

Свака од доле описаних скрипти извршаваће се само двоструким кликом све док сте датотеци дали назив са .ВСФ екстензијом, а код сте на почетку приложили са:


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



WScript.Quit

Ово осигурава да ће Виндовс препознати језик на којем је ваша скрипта написана и правилно га обрадити.

1. Користите Виндовс скрипте за информације о рачунару

Виндовс нуди нешто што се зове ВМИ или Виндовс Манагемент Инструментатион, које вашој скрипти пружа интерфејс за приступ компонентама оперативног система. Заправо можете покренути упите против ВМИ -а да бисте добили тренутне информације о вашем систему. Мицрософт нуди потпуну листу свих категорије упита можете направити против система.





Описали смо како користити ВБА за увлачење рачунарских података у Екцел, али то можете учинити и помоћу једноставне ВБ скрипте изван програма Екцел.

У овом примеру ћемо питати систем за информације о процесору (породица, произвођач и број језгара), податке о батерији (опис и статус) и податке о логичком диску (име, преостали слободни простор и укупна величина). Затим ћемо све ове податке пренети у ЦСВ датотеку ради лакшег прегледа.





Први корак је подешавање ФилеСистемОбјецт -а који ћете користити за излаз у ЦСВ датотеку и креирање датотеке:

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

Следећи корак је постављање ВМИ упита и његово извршавање:

како добити линук на цхромебоок
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

На крају, сортирајте резултате и испишите информације у ЦСВ датотеку. Ако желите да будете фенси, предговорите ово са неколико редова како би ваша излазна датотека изгледала боље:

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

Ставите сав тај код у своју нову .ВСФ датотеку, покрените је и ево како ће ваш излаз изгледати:

Само замените горње упите за било које друге рачунарске уређаје или софтвер о којима желите да добијете информације, и можете добити комплетан извештај о систему кад год пожелите само једним кликом миша.

2. Заустави и покрени услуге

Биће тренутака када одређене услуге имају проблема и захтевају само брзо поновно покретање да би се поново правилно покренуле. Ово је посебно истина у ИТ када сте приморани да покренете серверски софтвер који је понекад помало грешан.

Ако желите да се обријете минут -два од процеса поновног покретања услуге, само спремите следећу скрипту на неко прикладно место. Тражиће од вас да унесете назив услуге коју желите да поново покренете, а затим ће то учинити управо то.

Пошто заустављање и покретање услуга захтева администраторске привилегије, морате да поставите следећи код на почетак скрипте да бисте дали своју скрипту повишене привилегије :

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

Када то учините, додајте остатак кода да бисте покренули оквир за унос за унос корисника, покрените командни прозор и пошаљите му 'нет стоп' и 'нет старт цоммандс':

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. Промените поставке регистра, подразумевану лозинку администратора

Са следећом скриптом, убићемо две птице једним ударцем. Ова скрипта ће вам показати како уредите регистар са ВБ скриптом. Такође ће вам дати скрипту која ће вам омогућити да поставите подразумевано корисничко име и лозинку за Виндовс уређивањем тих поставки регистра.

Ево како то функционише. Прво, пошто уређивање регистра захтева администраторска права, мораћете да подесите повишене привилегије за своју скрипту:

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

И то је све. Метод 'РегВрите' вам омогућава да упишете било коју вредност у било који кључ регистратора помоћу ВБ Виндовс скрипте. Све што морате знати је одговарајући пут.

Покрените скрипту и одговорите на упите.

Вредности које унесете биће уметнуте право у поставке регистра које сте подесили у скрипти.

Поиграјте се са сценаријем и прилагодите га свом укусу. Можете уредити било које кључеве регистра које волите, па будите креативни!

4. Ресетујте мрежну везу

Ресетовање мрежне везе помоћу ВБ скриптирања је нешто што смо већ обрадили овде на МакеУсеОф. Следећа верзија овога је заправо смањена и много је једноставнија за имплементацију. Уместо да тражи појединачне мрежне картице, ресетује све ваше активне везе које би, надамо се, решиле све проблеме са мрежом које можда имате.

Као и код других скрипти којима су потребна администраторска права, мораћете да додате одељак на почетку за повећане привилегије. Копирајте тај код из горње скрипте.

Затим креирајте ВМИ објекат и тражите га за листу омогућених мрежних адаптера на вашем систему:

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. Пинг уређаји или веб локације

Свој омиљени ВБ Виндовс скрипт сам сачувао за крај. Ово је један који сам заправо поставио као планирани задатак на свом кућном рачунару и покренуо га неколико пута дневно само да проверим да ли је моја веб локација активна. Имам скрипту да ми пошаље е -поруку ако је страница неисправна. Ову исту скрипту можете користити за надгледање важних сервера или рачунара на мрежи и слање е -поште сваки пут када ваша скрипта не може да пингује уређај.

Прво подесите скрипту за циљ који желите да пингујете, креирајте објекат љуске, а затим покрените команду пинг.

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

Користите израз Селецт Цасе да бисте прегледали резултате Пинг -а и у складу с тим одговорили. Ако се резултати врате на нулу, онда знате да је веб локација (или сервер) на мрежи и да не морате ништа да радите. Ако врати '1', пинг није успео и морате нешто да урадите. У мом случају, шаљем е -пошту помоћу Виндовс ЦДО објекта:

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

Када се скрипта покрене и не може да пингује уређај или веб локацију, добићете тренутну поруку.

Брзо је и једноставно, а сваки ефикасан!

Коришћење ВБ Виндовс скрипти за контролу рачунара

Ово је само неколико примера неких од кул ствари које можете учинити са ВБ скриптама да бисте поједноставили употребу рачунара. Постоји много других ствари које можете да урадите, попут аутоматизованих резервних копија са ВБ и Синцтои, аутоматизовања телнет команди, или чак отварања и контроле прозора апликација.

Које су неке од ствари које сте аутоматизовали на рачунару помоћу Виндовс скрипте? Да ли своје пишете помоћу ВБ -а или користите неки други алат попут ПоверСхелл -а ?

Објави Објави Твеет Емаил Ево зашто је ФБИ издао упозорење за откупни софтвер у кошницама

ФБИ је издао упозорење о посебно гадној врсти рансомвареа. Ево зашто морате бити посебно опрезни са Хиве рансомваре -ом.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Рачунарска аутоматизација
  • Скриптирање
О аутору Риан Дубе(942 објављених чланака)

Риан има диплому електротехнике. Радио је 13 година у инжењерингу аутоматизације, 5 година у ИТ -у, а сада је инжењер апликација. Бивши главни уредник МакеУсеОф -а, говорио је на националним конференцијама о визуализацији података и био је представљен на националној телевизији и радију.

Више од Риана Дубеа

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили