5 Nyttige VB Windows -skript for å automatisere datamaskinbruken

5 Nyttige VB Windows -skript for å automatisere datamaskinbruken

Enten du er en IT -analytiker eller en vanlig datamaskinbruker, er det mange oppgaver du må utføre ofte på PC -en. VB -skript skaleres ned på Visual Basic -programmer som fungerer som Windows -skript som kan gjøre alt fra å hente frem viktig informasjon om datamaskinens maskinvare, til å stoppe og starte tjenester eller tilbakestille nettverkskortet.





Det er mulig å lære å gjøre alle de individuelle tingene på vanlig måte, eller gjøre dem ved hjelp av batchfiler. Men VB -skript er bedre enn batch -skript fordi de er mer fleksible. Hvis du lagrer følgende skript på et vanlig sted som du raskt kan komme til når du trenger det, kan du utføre disse oppgavene på en brøkdel av tiden. Du bare dobbeltklikker på skriptet, svarer på en melding, og oppgaven er utført.





Ta en titt på følgende VB Windows -skript, og hvis du ser noen du vil bruke, bare kopier og lim inn skriptet i Notisblokk eller annet kodingsnotatverktøy og lagre den som en WSF -fil.



Forbered Windows -skriptene dine

Hvert av skriptene som er beskrevet nedenfor, kjøres med bare et dobbeltklikk så lenge du har navngitt filen med .WSF -utvidelsen, og du har også vedlagt koden i begynnelsen med:


Og lukk koden med:



WScript.Quit

Dette sikrer at Windows gjenkjenner språket skriptet ditt er skrevet på, og behandler det riktig.

1. Bruk Windows -skript for datamaskininformasjon

Windows tilbyr noe som kalles WMI, eller Windows Management Instrumentation, som gir skriptet ditt et grensesnitt for å få tilgang til komponenter i operativsystemet. Du kan faktisk kjøre forespørsler mot WMI for å få gjeldende live informasjon om systemet ditt. Microsoft tilbyr en fullstendig liste over alle kategorier av spørsmål du kan gjøre mot systemet.





Vi har dekket hvordan du bruker VBA til å trekke datamaskininformasjon til Excel, men du kan gjøre det samme ved å bruke et enkelt VB -skript utenfor Excel.

I dette eksemplet skal vi spørre systemet om prosessorinformasjon (familie, produsent og antall kjerner), batteriinformasjon (beskrivelse og status) og logisk diskinformasjon (navn, gjenværende ledig plass og samlet størrelse). Deretter sender vi all denne informasjonen til en CSV -fil for enkel visning.





Det første trinnet er å sette opp FileSystemObject du vil bruke til å sende til CSV -filen, og opprette filen:

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

Det neste trinnet er å sette opp WMI -spørringen og utføre den:

som fikser iPhone -skjermer for billig
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Til slutt sorterer du gjennom resultatene og sender informasjonen til CSV -filen. Hvis du vil være fancy, forord dette med et par linjer for å få utdatafilen til å se bedre ut:

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

Hvis du kjører koden din nå, ser utgangen din slik ut:

For de to neste delene av koden din, skal du bare gjenta og endre spørringen for å se etter tilleggsinformasjonen. Her er spørringen om batteriinformasjon:

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

Og her er neste avsnitt for den logiske diskforespørselen:

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

Til slutt, husk å lukke koden ved å lukke filen og sette objektene til 'Ingenting':

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

Sett all den koden i den nye .WSF -filen, kjør den, og slik ser utgangen din ut:

Bare bytt ut spørsmålene ovenfor for andre datamaskinenheter eller programvare du vil få informasjon om, og du kan få en fullstendig systemrapport når du vil med bare et klikk med musen.

2. Stopp og start tjenester

Det vil være tider hvor visse tjenester har problemer, og det krever bare en rask omstart for å fungere skikkelig igjen. Dette er spesielt sant innen IT når du blir tvunget til å kjøre serverprogramvare som noen ganger er litt buggy.

Hvis du vil barbere deg et par minutter fra prosessen med omstart av tjenesten, kan du bare lagre følgende skript et sted som er praktisk. Det vil be deg om å skrive inn navnet på tjenesten du vil starte på nytt, og så vil den gjøre akkurat det.

Siden stopp og start av tjenester krever administrative rettigheter, må du plassere følgende kode i begynnelsen av skriptet for å gi skriptet forhøyede privilegier :

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

Når dette er gjort, legger du til resten av koden for å kjøre inndataboksen for brukerinndata, starter kommandovinduet og sender den 'net stop' og 'net start command':

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

Det er alt det er. Du trenger ikke å lete etter tjenesterverktøyet. Bare kjør dette skriptet og stopp og start hvilken som helst tjeneste på sekunder.

3. Endre registerinnstillinger, standard adminpassord

Med det følgende manuset skal vi drepe to fugler i en smekk. Dette skriptet viser deg hvordan du gjør det redigere registret med et VB -skript. Det gir deg også et skript som lar deg angi standard brukernavn og passord for Windows ved å redigere disse registerinnstillingene.

Slik fungerer det. For det første, siden redigering av registret krever administratorrettigheter, må du konfigurere forhøyede privilegier for skriptet ditt:

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

Kjør først to inndatabokser for å spørre brukeren om hvilket brukernavn og passord som skal brukes:

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

Deretter konfigurerer du skallobjektet, og skriver disse verdiene til de riktige registernøklene:

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

Og det er alt det er. Metoden 'RegWrite' lar deg skrive hvilken som helst verdi til en hvilken som helst registernøkkel ved hjelp av et VB Windows -skript. Alt du trenger å vite er riktig vei.

Kjør skriptet og svar på spørsmålene.

Verdiene du angir, blir satt inn rett i registerinnstillingene du har konfigurert i skriptet.

Spill med manuset og juster det etter din smak. Du kan redigere alle registernøkler du liker, så vær kreativ!

4. Tilbakestill nettverkstilkoblingen

Tilbakestilling av nettverkstilkoblingen din ved hjelp av VB -skripting er noe vi har dekket tidligere her på MakeUseOf. Følgende versjon av dette er faktisk nedskalert og mye enklere å implementere. I stedet for å be om individuelle nettverkskort, tilbakestiller den alle dine aktive tilkoblinger som forhåpentligvis vil løse eventuelle nettverksproblemer du måtte ha.

Som med andre skript som trenger administratorrettigheter, må du legge til delen i begynnelsen for forhøyede rettigheter. Kopier koden fra skriptet ovenfor.

Deretter oppretter du WMI -objektet og søker etter en liste over aktiverte nettverkskort på systemet ditt:

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

Slutt til slutt gjennom alle de aktiverte adapterne og tilbakestill dem:

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

Dette vil tilbakestille alle dine aktive nettverkskort , som ofte er den raskeste måten å løse irriterende nettverksproblemer. Behold dette skriptet, og prøv det først når du har et tregt nettverk eller andre rare nettverksproblemer.

5. Ping -enheter eller nettsteder

Jeg har lagret mitt favoritt VB Windows -skript for sist. Dette er en jeg faktisk konfigurerte som en planlagt oppgave på min hjemmemaskin og lar den kjøre flere ganger om dagen bare for å sjekke om nettstedet mitt er aktivt. Jeg har skriptet til å sende meg en e -post hvis siden er nede. Du kan bruke det samme skriptet til å overvåke viktige servere eller datamaskiner i nettverket ditt og sende deg en e -post når som helst når skriptet ikke kan pinge enheten.

Sett først opp skriptet for målet du vil pinge, opprett skallobjektet, og kjør deretter ping -kommandoen.

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

Bruk en Select Case -setning for å kjøre gjennom Ping -resultatene og svare deretter. Hvis resultatene kommer tilbake som null, vet du at nettstedet (eller serveren) er online, og at du ikke trenger å gjøre noe. Hvis den returnerer en '1', mislyktes pingen, og du må gjøre noe. I mitt tilfelle sender jeg en e -post med Windows CDO -objektet:

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

Når skriptet kjører og ikke kan pinge enheten eller nettstedet, får du en direktemelding.

Det er raskt og enkelt, og alt effektivt!

Bruke VB Windows -skript for å kontrollere datamaskinen

Dette er bare noen få eksempler på noen av de kule tingene du kan gjøre med VB -skripting for å effektivisere datamaskinbruken. Det er mange andre ting du kan gjøre som automatiserte sikkerhetskopier med VB og Synctoy, automatisering av telnetkommandoer, eller til og med åpne og kontrollere programvinduer.

Hva er noen av tingene du har automatisert på datamaskinen din med et Windows -skript? Skriver du din med VB, eller bruker du et annet verktøy som PowerShell ?

Dele Dele kvitring E -post Her er hvorfor FBI utstedte en advarsel for Hive Ransomware

FBI utstedte en advarsel om en spesielt ekkel stamme av ransomware. Her er hvorfor du må være spesielt forsiktig med Hive ransomware.

Les neste
Relaterte temaer
  • Programmering
  • Computer Automation
  • Scripting
Om forfatteren Ryan Dube(942 artikler publisert)

Ryan har en bachelorgrad i elektroteknikk. Han har jobbet 13 år innen automasjonsteknikk, 5 år innen IT, og er nå en Apps Engineer. En tidligere administrerende redaktør for MakeUseOf, han har talt på nasjonale konferanser om datavisualisering og har blitt omtalt på nasjonal TV og radio.

Mer fra Ryan Dube

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere