Ciao defresco,
benvenuto nel nostro forum!
Windows PowerShell offre un avanzato sistema di recupero delle entry del log degli eventi di Windows. Il cmdlet
Get-EventLog, in particolare, consente di interagire con questo strumento in maniera completa, sicura ed affidabile.
E' possibile recuperare la lista di tutti i log degli eventi supportati dalla macchina locale utilizzando questo script:
Get-EventLog -List
Recuperare gli eventi di un particolare log, come ad esempio System (interessato dai problemi di driver, come da tua richiesta), richiede uno script come questo (l'esempio recupera le ultime dieci entry):
Get-EventLog -LogName System -Newest 10
Per filtrare le entry ritornare è sufficiente mettere in pipe Where-Object:
Get-EventLog -LogName System -Newest 1000 |
? { ($_.EntryType -eq 'Error') -and ($_.Message -like '*driver*') }
La versione 1.0 del cmdlet Get-EventLog purtroppo non consente un accesso diretto ad un log degli eventi che non sia locale (con la versione 2.0 questo limite sarà presto superato). Poco male, comunque, è sufficiente utilizzare Microsoft.NET:
$log = New-Object System.Diagnostics.EventLog 'System', 'Server01'
Dove Server01 è la macchina di interesse. $log conterrà la proprietà
Entries, interrogabile come di consueto con i cmdlet messi a disposizione da PowerShell:
$log.Entries[0..1000] |
? { ($_.EntryType -eq 'Error') -and ($_.Message -like '*driver*') }
HTH
A presto!