Exchange 2013 genera di default una quantità enorme di logs, sopratutto sotto forma di logs di IIS, la cosa veramente geniale è che non c’è nessun processo che li cicli o li ripulisca e, se li lasciate nel path di default, rischiate di riempire nell’arco di qualche mese un disco C anche da 100 giga (dipende ovviamente dalle dimensioni della vostra infrastruttura).
Questi log si trovano di default nei path:
C:\inetpub\logs\LogFiles\W3SVC1
C:\inetpub\logs\LogFiles\W3SVC2
Ad ogni modo se volete limitare la dimensione di questi logs potete utilizzare questo script powershell e schedularlo tramite task scheduler:
$limit = (Get-Date).AddDays(-60)
$path1 = “C:\inetpub\logs\LogFiles\W3SVC1”
$path2 = “C:\inetpub\logs\LogFiles\W3SVC2”# Delete logs older than the $limit.
Get-ChildItem -Path $path1 -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
Get-ChildItem -Path $path2 -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
Lo script non fa altro che cancellare i file più vecchi di 60 giorni presenti nelle due directory dei log di IIS, se volete testarlo, prima di eliminare effettivamente i file, potete aggiungere un -whatif al termine dei due comandi remove-item.
Per schedulare lo script è sufficiente creare un task passando come programma da eseguire powershell.exe e come argomento lo script .ps1 da eseguire con tutto il suo path (ad es. c:\scripts\deleteoldexchangelogs.ps1):