Script: Ricerca eventi SMART hd da remoto

Un semplice script per la ricerca di eventi SMART tramite il chipset Intel della scheda madre

Ricerca eventi SMARTSpesso mi capitano ticket di pc che secondo l’utente diventano improvvisamente lenti e secondo la mia esperienza non sono mai da sottovalutare queste avvisaglie, perchè puoi avere la miglior politica di backup, ma qualche problema c’è sempre e secondo me prevenire fa sempre bene.

Non sono mai riuscito a creare uno script che riuscisse a leggere direttamente gli eventi SMART sul hard disk come con CrystalDiskInfo (link), ma tramite il servizio IaStor  di Intel sono riuscito a creare uno script vbs che cerca questi eventi e crea un report txt che viene salvato nella cartella report (che poca fantaisa che ho) direttamente in c

'Ricerca errori SMART del hard disk tramite chipset Intel
'
'2016 Andrea Cavazzi www.itmaniac.it
'version 1.0.0
'-------------------------------------------------

Option Explicit

Dim objFso, objFolder, objWMI, objEvent ' Objects
Dim strInput, strFile, strComputer, strFolder, strFileName, strPath ' Strings
Dim intEvent, intName, intRecordNum, colLoggedEvents

'--------------------------------------------
' Richiesta del nome computer
'--------------------------------------------

    strComputer = (InputBox(" Inserisci nome del computer",_
    "Test HD pc remoto"))

' --------------------------------------------
' Variabili
'---------------------------------------------

intName = "iaStorA" ' Evento da ricercare
intEvent = 0
intRecordNum = 0

strFileName = "\SMARTintel_" & strComputer & ".txt" 'nome del file da creare
strFolder = "C:\report" 'cartella dove salvare i report
strPath = strFolder & strFileName

' -------------------------------------------
' Verifica se la cartella esiste, se non la creo
'--------------------------------------------

Set objFso = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strFolder) Then
    Set objFolder = objFSO.GetFolder(strFolder)
Else
   Set objFolder = objFSO.CreateFolder(strFolder)
   Wscript.Echo "Cartella " & strFolder & " creata"
End If
Set strFile = objFso.CreateTextFile(strPath, True)

'--------------------------------------------
' Creazione della connessione WMI
'--------------------------------------------

Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colLoggedEvents = objWMI.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" )

' -----------------------------------------
' Ricerca dell'evento e scrittura del file di report
'--------------------------------------------

intEvent = 1
intRecordNum = 0

For Each objEvent in colLoggedEvents
If objEvent.SourceName = intName Then

strFile.WriteLine ("Evento Num: ")& intEvent
strFile.WriteLine ("Computer Name: " & objEvent.ComputerName)
strFile.WriteLine ("Event Code: " & objEvent.EventCode)
strFile.WriteLine ("Messaggio: " & objEvent.Message)
strFile.WriteLine ("Data: " & objEvent.TimeWritten)
strFile.WriteLine (" ")
intRecordNum = intRecordNum + 1
End if
IntEvent = intEvent + 1
Next
Wscript.Echo "Check " & strPath & " for " &intRecordNum & " events"

WScript.Quit

Come sempre lo script basta copiarlo su notepad, salvarlo con estensione .vbs e usarlo liberamente

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.