Tramite il comando Select-String, di PowerShell, è possibile cercare all'interno delle righe di un file di log in formato testo una o più occorrenze di una determinata stringa.

Il comando per cercare una stringa semplice e questo:
C#
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\user1" -AllMatches -SimpleMatch
senza lo switch -AllMatches ritorna solo la prima occorrenza.

E' anche possibile eseguire una ricerca tramite una regular expression. Per far questo rimuovere lo switch SimpleMatch ed includere l'espressione di ricerca:
C#
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\\user[0-9]+"" -AllMatches
in questo caso cerco tutti gli utenti del dominio SGART che iniziano con user seguito da 1 o più numeri (es. SGART\user1, SGART\user456, ecc...).
Vedi anche Regular Expression Search.

Infine è possibile salvare il risultato della ricerca su un file:
C#
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\\user[0-9]+"" -AllMatches | Set-Content $pwd\prova.txt
La variabile $pwd rappresenta il percorso corrente.

Ci sono anche altri switch a disposizione come -CaseSensitive oppure -NotMatch per cercare tutte le righe che non corrispondono al pattern.
Potrebbe interessarti anche: