Script: Ricerca eventi SMART hd da remoto
Un semplice script per la ricerca di eventi SMART tramite il chipset Intel della scheda madre
Spesso 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