5 scripts Windows VB útils per automatitzar l'ús de l'ordinador

5 scripts Windows VB útils per automatitzar l'ús de l'ordinador

Tant si sou un analista de TI com un usuari habitual d’ordinadors, és possible que hàgiu de fer moltes tasques al vostre ordinador. Els scripts VB es redueixen en programes de Visual Basic que serveixen com a scripts de Windows que poden fer qualsevol cosa, des d’obtenir informació important sobre el maquinari de l’ordinador, fins a aturar i iniciar serveis o restablir la targeta de xarxa.





És possible aprendre a fer totes aquestes coses de manera normal o fer-les mitjançant fitxers per lots. Però Els scripts VB són millors que els scripts per lots perquè són més flexibles. Si emmagatzemeu els següents scripts en un lloc comú al qual podeu accedir ràpidament quan ho necessiteu, podeu realitzar aquestes tasques en una fracció del temps. Simplement feu doble clic a l'script, responeu a una sol·licitud i la tasca ja està acabada.





Feu un cop d'ull als següents scripts de Windows VB i, si en veieu algun, voleu utilitzar-lo, copieu-lo i enganxeu-lo a Bloc de notes o una altra eina de notes de codificació i deseu-lo com a fitxer WSF.





Prepareu els vostres scripts de Windows

Cadascun dels scripts que es detallen a continuació s’executarà amb només fer un doble clic sempre que hagueu anomenat el fitxer amb l’extensió .WSF i també hagueu inclòs el codi al principi amb:


I tanqueu el codi amb:



WScript.Quit

Això garanteix que Windows reconeixerà l'idioma en què està escrit el vostre script i el processarà correctament.

1. Utilitzeu scripts de Windows per obtenir informació sobre l’ordinador

Windows ofereix una cosa anomenada WMI o Windows Management Instrumentation, que proporciona al vostre script una interfície per accedir als components del sistema operatiu. De fet, podeu executar consultes contra WMI per obtenir informació actualitzada en temps real sobre el vostre sistema. Microsoft ofereix una llista completa de tots els fitxers categories de consultes es pot fer contra el sistema.





Hem explicat com s'utilitza VBA per extreure informació de l'ordinador a Excel, però podeu fer el mateix mitjançant un simple script VB fora d'Excel.

En aquest exemple, consultarem el sistema per obtenir informació sobre el processador (família, fabricant i nombre de nuclis), informació sobre la bateria (descripció i estat) i informació lògica del disc (nom, espai lliure restant i mida total). A continuació, enviarem tota aquesta informació a un fitxer CSV per facilitar-ne la visualització.





El primer pas és configurar el FileSystemObject que utilitzarà per sortir al fitxer CSV i crear el fitxer:

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

El següent pas és configurar la consulta WMI i executar-la:

com copiar DVD al disc dur
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Finalment, ordeneu els resultats i envieu la informació al fitxer CSV. Si voleu ser elegants, prologueu-ho amb un parell de línies per ajudar a millorar el vostre fitxer de sortida:

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

Si executeu el codi ara, aquest és el vostre aspecte:

Per a les dues seccions següents del codi, repetireu i canvieu la consulta per buscar informació addicional. Aquí teniu la consulta d'informació sobre la bateria:

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

I aquí teniu la següent secció per a la consulta de disc lògic:

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

Finalment, recordeu tancar el codi tancant el fitxer i establint els objectes en 'Res':

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

Introduïu tot aquest codi al vostre nou fitxer .WSF, executeu-lo i aquí us mostrarem:

Simplement canvieu les consultes anteriors per qualsevol altre dispositiu o programari informàtic sobre el qual vulgueu obtenir informació i podeu obtenir un informe complet del sistema en qualsevol moment amb un sol clic del ratolí.

2. Atureu i inicieu els serveis

Hi haurà moments en què certs serveis tenen problemes i només requereixen un reinici ràpid per tornar a funcionar correctament. Això és especialment cert en informàtica quan es veu obligat a executar programari de servidor que de vegades és una mica erroni.

Si voleu afaçar-se un minut aproximadament del procés de reinici del servei, només cal que emmagatzemeu el següent script en un lloc convenient. Us demanarà que escriviu el nom del servei que voleu reiniciar i, a continuació, ho farà exactament.

Com que aturar i iniciar serveis requereix privilegis administratius, haureu de col·locar el següent codi al començament del vostre script per donar-lo privilegis elevats :

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

Un cop fet això, afegiu la resta del codi per executar el quadre d'entrada per a l'entrada de l'usuari, inicieu la finestra d'ordres i envieu-li les ordres 'net stop' i '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}'

Això és tot el que hi ha. No cal cercar l'eina de serveis. Només cal executar aquest script i aturar i iniciar qualsevol servei en qüestió de segons.

3. Canvieu la configuració del registre, la contrasenya d'administrador predeterminada

Amb el següent guió, matarem dos ocells d’una sola pedra. Aquest script us mostrarà com fer-ho editeu el registre amb un script VB. També us proporcionarà un script que us permetrà configurar el nom d’usuari i la contrasenya predeterminats de Windows editant la configuració del registre.

Així és com funciona. En primer lloc, ja que l'edició del registre requereix drets d'administrador, haureu de configurar privilegis elevats per al vostre script:

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

Primer executeu dos quadres d’entrada per demanar a l’usuari quin nom d’usuari i contrasenya utilitzar:

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

A continuació, configureu l'objecte de l'intèrpret d'ordres i escriviu aquests valors a les claus de registre adequades:

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

I això és tot el que hi ha. El mètode 'RegWrite' us permet escriure qualsevol valor a qualsevol clau de registre mitjançant un script VB Windows. Tot el que heu de saber és el camí adequat.

Executeu l'script i responeu a les indicacions.

Els valors que introduïu s'inseriran directament a la configuració del registre que hàgiu configurat a l'script.

Juga amb el guió i modifica'l al teu gust. Podeu editar les claus de registre que vulgueu, així que sigueu creatius.

4. Restableix la connexió de xarxa

Restablir la vostra connexió de xarxa mitjançant scripts VB és una cosa que hem tractat abans aquí a MakeUseOf. La següent versió d'això és realment reduïda i és molt més senzilla d'implementar. En lloc de sol·licitar targetes de xarxa individuals, restableix totes les vostres connexions actives, que esperem que solucionin qualsevol problema de xarxa que pugueu tenir.

Igual que amb altres scripts que necessiten drets d'administrador, haureu d'afegir la secció a l'inici per obtenir privilegis elevats. Copieu aquest codi de l'script anterior.

A continuació, creeu l'objecte WMI i consulteu-lo per obtenir una llista d'adaptadors de xarxa habilitats al vostre sistema:

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

Finalment, passeu per tots els adaptadors habilitats i restabliu-los:

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

Això restablirà tots els vostres fitxers adaptadors de xarxa actius , que sovint és la forma més ràpida de resoldre problemes de xarxa molestos. Tingueu a mà aquest script i proveu-lo primer cada vegada que tingueu problemes de xarxa lents o d’altres problemes de xarxa estranys.

5. Dispositius o llocs web de ping

He guardat el meu script de Windows VB preferit per últim. Aquesta és una que realment he configurat com a tasca programada a l’ordinador de casa i que la tinc executada diverses vegades al dia només per comprovar si el meu lloc web està actiu. Tinc el script per correu electrònic si el lloc no funciona. Podeu utilitzar aquest mateix script per supervisar servidors o equips importants de la vostra xarxa i enviar-vos un correu electrònic cada vegada que el vostre script no pugui fer ping al dispositiu.

Primer, configureu l'script per a l'objectiu que vulgueu fer ping, creeu l'objecte de l'intèrpret d'ordres i, a continuació, executeu l'ordre ping.

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

Utilitzeu una sentència Select Case per executar els resultats de Ping i respondre en conseqüència. Si els resultats tornen a ser zero, ja sabreu que el lloc (o el servidor) està en línia i no heu de fer res. Si torna un '1', el ping ha fallat i heu de fer alguna cosa. En el meu cas, envio un correu electrònic amb l’objecte CDO de 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

Un cop s'executa l'script i no es pot fer ping al dispositiu o al lloc web, rebreu un missatge instantani.

És ràpid, senzill i eficaç.

Utilitzar scripts Windows VB per controlar l’ordinador

Aquests són només alguns exemples d’algunes coses interessants que podeu fer amb la creació de seqüències de comandaments VB per racionalitzar l’ús de l’ordinador. Hi ha moltes altres coses que podeu fer, com ara còpies de seguretat automatitzades amb VB i Synctoy, automatitzar ordres telnet o fins i tot obrir i controlar les finestres de les aplicacions.

Quines són algunes de les coses que heu automatitzat al vostre ordinador amb un script de Windows? Escriviu el vostre mitjançant VB o utilitzeu alguna altra eina com PowerShell ?

Compartir Compartir Tweet Correu electrònic A continuació s’explica per què l’FBI va emetre un advertiment sobre el ransomware Hive

L'FBI va emetre una advertència sobre una varietat de ransomware especialment desagradable. A continuació s’explica el motiu pel qual cal ser especialment cautelós amb el ransomware de Hive.

Llegiu a continuació
Temes relacionats
  • Programació
  • Automatització informàtica
  • Scripting
Sobre l'autor Ryan Dube(942 articles publicats)

Ryan és llicenciat en Enginyeria Elèctrica. Ha treballat 13 anys en enginyeria d'automatització, 5 anys en informàtica i ara és enginyer d'aplicacions. Antic editor gerent de MakeUseOf, ha parlat a conferències nacionals sobre visualització de dades i ha estat presentat a la ràdio i la televisió nacionals.

Més de Ryan Dube

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us