5 utili script di Windows VB per automatizzare l'utilizzo del computer

5 utili script di Windows VB per automatizzare l'utilizzo del computer

Che tu sia un analista IT o un normale utente di computer, ci sono molte attività che potresti dover svolgere frequentemente sul tuo PC. Gli script VB sono programmi Visual Basic ridimensionati che fungono da script Windows in grado di eseguire qualsiasi operazione, dal recupero di informazioni importanti sull'hardware del computer, all'arresto e all'avvio di servizi o al ripristino della scheda di rete.





È possibile imparare a fare tutte queste singole cose nel modo normale, o farle usando file batch. Ma Gli script VB sono migliori degli script batch perché sono più flessibili. Se memorizzi i seguenti script in un luogo comune che è veloce da raggiungere quando ne hai bisogno, puoi eseguire queste attività in una frazione del tempo. Basta fare doppio clic sullo script, rispondere a un prompt e l'attività è completata.





Dai un'occhiata ai seguenti script di Windows VB e se ne vedi qualcuno che vorresti usare, copia e incolla lo script in Blocco note o altro strumento per le note di codifica e salvalo come file WSF.





Prepara i tuoi script di Windows

Ciascuno degli script descritti di seguito verrà eseguito con un semplice doppio clic, a condizione che tu abbia nominato il file con l'estensione .WSF e che tu abbia anche incluso il codice all'inizio con:


E chiudi il codice con:



WScript.Quit

Ciò garantisce che Windows riconosca la lingua in cui è scritto il tuo script e la elabori correttamente.

1. Usa gli script di Windows per le informazioni sul computer

Windows offre qualcosa chiamato WMI, o Strumentazione gestione Windows, che fornisce allo script un'interfaccia per accedere ai componenti del sistema operativo. Puoi effettivamente eseguire query su WMI per ottenere informazioni in tempo reale sul tuo sistema. Microsoft offre un elenco completo di tutti i categorie di query puoi fare contro il sistema.





Abbiamo spiegato come utilizzare VBA per estrarre le informazioni del computer in Excel, ma puoi fare la stessa cosa usando un semplice script VB al di fuori di Excel.

In questo esempio interrogheremo il sistema per informazioni sul processore (famiglia, produttore e numero di core), informazioni sulla batteria (descrizione e stato) e informazioni sul disco logico (nome, spazio libero rimanente e dimensione complessiva). Quindi emetteremo tutte queste informazioni in un file CSV per una facile visualizzazione.





Il primo passaggio consiste nell'impostare il FileSystemObject che utilizzerai per l'output nel file CSV e creare il file:

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

Il passaggio successivo consiste nell'impostare la query WMI ed eseguirla:

come trovare la canzone nel video di youtube
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Infine, ordina i risultati e invia le informazioni al file CSV. Se vuoi essere fantasioso, premetti questo con un paio di righe per aiutare a migliorare l'aspetto del tuo file di output:

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

Se esegui il tuo codice ora, questo è come apparirà il tuo output:

Per le prossime due sezioni del tuo codice, ripeterai e modificherai la query per cercare le informazioni aggiuntive. Ecco la richiesta di informazioni sulla batteria:

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

Ed ecco la sezione successiva per la query del disco logico:

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

Infine, ricorda di chiudere il codice chiudendo il file e impostando gli oggetti su 'Niente':

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

Metti tutto quel codice nel tuo nuovo file .WSF, eseguilo ed ecco come sarà il tuo output:

Basta scambiare le query sopra con qualsiasi altro dispositivo o software di computer su cui si desidera ottenere informazioni e si può ottenere un rapporto completo del sistema ogni volta che lo si desidera con un semplice clic del mouse.

2. Arresta e avvia i servizi

Ci saranno momenti in cui alcuni servizi avranno problemi e richiederanno solo un rapido riavvio per tornare a funzionare correttamente. Questo è particolarmente vero in IT quando sei costretto a eseguire un software server che a volte è un po' bacato.

Se si desidera ridurre di un minuto circa il processo di riavvio del servizio, è sufficiente memorizzare il seguente script in un posto conveniente. Ti chiederà di digitare il nome del servizio che vuoi riavviare, e poi farà esattamente questo.

Poiché l'arresto e l'avvio dei servizi richiedono privilegi amministrativi, è necessario inserire il seguente codice all'inizio dello script per fornire il proprio script privilegi elevati :

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

Fatto ciò, aggiungi il resto del codice per eseguire la casella di input per l'input dell'utente, avvia la finestra di comando e inviagli i comandi 'net stop' e '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}'

Questo è tutto quello che c'è da fare. Non c'è bisogno di cercare lo strumento dei servizi. Basta eseguire questo script e interrompere e avviare qualsiasi servizio in pochi secondi.

3. Modifica impostazioni di registro, password amministratore predefinita

Con la seguente sceneggiatura, prenderemo due piccioni con una fava. Questo script ti mostrerà come modificare il registro con uno script VB. Ti fornirà anche uno script che ti consentirà di impostare il nome utente e la password di Windows predefiniti modificando le impostazioni del registro.

Ecco come funziona. Innanzitutto, poiché la modifica del registro richiede diritti di amministratore, dovrai impostare privilegi elevati per il tuo script:

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

Eseguire prima due caselle di input per chiedere all'utente quale nome utente e password utilizzare:

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

Quindi, imposta l'oggetto shell e scrivi quei valori nelle chiavi di registro appropriate:

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

E questo è tutto. Il metodo 'RegWrite' consente di scrivere qualsiasi valore su qualsiasi chiave di registro utilizzando uno script VB Windows. Tutto quello che devi sapere è il percorso appropriato.

Esegui lo script e rispondi alle richieste.

I valori che inserisci verranno inseriti direttamente nelle impostazioni del registro che hai impostato nello script.

Gioca con la sceneggiatura e modificala a tuo piacimento. Puoi modificare qualsiasi chiave di registro che ti piace, quindi sii creativo!

4. Ripristina la connessione di rete

Il ripristino della connessione di rete utilizzando lo script VB è qualcosa che abbiamo già trattato qui su MakeUseOf. La seguente versione di questo è in realtà ridotta e molto più semplice da implementare. Invece di richiedere le singole schede di rete, ripristina tutte le connessioni attive che si spera possano risolvere eventuali problemi di rete che potresti riscontrare.

Come con altri script che richiedono diritti di amministratore, dovrai aggiungere la sezione all'inizio per i privilegi elevati. Copia quel codice dallo script sopra.

Quindi, crea l'oggetto WMI e interrogalo per un elenco di schede di rete abilitate sul tuo sistema:

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

Infine, esegui il ciclo di tutti gli adattatori abilitati e ripristinali:

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

Questo ripristinerà tutti i tuoi adattatori di rete attivi , che è spesso il modo più veloce per risolvere fastidiosi problemi di rete. Tieni questo script a portata di mano e provalo prima ogni volta che hai una rete lenta o altri strani problemi di rete.

5. Dispositivi di ping o siti Web

Ho salvato il mio script di Windows VB preferito per ultimo. Questo è uno che ho effettivamente impostato come attività pianificata sul mio computer di casa e lo faccio eseguire più volte al giorno solo per verificare se il mio sito Web è attivo. Ho lo script che mi invia un'e-mail se il sito non funziona. Puoi utilizzare questo stesso script per monitorare server o computer importanti sulla tua rete e inviarti un'e-mail ogni volta che lo script non può eseguire il ping del dispositivo.

Innanzitutto, imposta lo script per la destinazione di cui desideri eseguire il ping, crea l'oggetto shell e quindi esegui il comando ping.

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

Utilizzare un'istruzione Select Case per scorrere i risultati del ping e rispondere di conseguenza. Se i risultati tornano a zero, allora sai che il sito (o il server) è online e non devi fare nulla. Se restituisce un '1', il ping non è riuscito e devi fare qualcosa. Nel mio caso, invio un'e-mail utilizzando l'oggetto CDO di 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

Una volta che lo script viene eseguito e non è possibile eseguire il ping del dispositivo o del sito Web, viene visualizzato un messaggio istantaneo.

È veloce e facile, e ogni efficiente!

Utilizzo di script Windows VB per controllare il computer

Questi sono solo alcuni esempi di alcune delle cose interessanti che puoi fare con gli script VB per semplificare l'uso del tuo computer. Ci sono molte altre cose che puoi fare come backup automatici con VB e Synctoy, automatizzare i comandi telnet o persino aprire e controllare le finestre delle applicazioni.

Quali sono alcune delle cose che hai automatizzato sul tuo computer con uno script di Windows? Scrivi il tuo usando VB o usi qualche altro strumento? come PowerShell ?

Condividere Condividere Tweet E-mail Ecco perché l'FBI ha emesso un avviso per il ransomware Hive

L'FBI ha emesso un avvertimento su un ceppo di ransomware particolarmente dannoso. Ecco perché devi prestare particolare attenzione al ransomware Hive.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Automazione del computer
  • Scripting
Circa l'autore Ryan Dube(942 articoli pubblicati)

Ryan ha una laurea in ingegneria elettrica. Ha lavorato 13 anni nell'ingegneria dell'automazione, 5 anni nell'IT e ora è un ingegnere delle app. Ex caporedattore di MakeUseOf, ha parlato a conferenze nazionali sulla visualizzazione dei dati ed è apparso su TV e radio nazionali.

Altro da Ryan Dube

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti