Exchange schreibt mit der Zeit eine Menge Log-Files die den Festplattenspeicher auf kurz oder lang leider eng werden lässt. Man kommt also nicht daran herum die Log-Files, sprich Exchange- und IIS-Logs, zu bereinigen. Wir Ihr die Aufräumarbeiten erledigt wird Euch hier kurz erläutert.
In diesem Beispiel werden alle Dateien älter als 14 Tage von der Festplatte gelöscht. Aus Sicherheitsgründen ist hier der WhatIf-Schalter aktiv. Bitte führt das entsprechende Skript in einem PowerShell-Fenster mit Administrator-Rechten aus und schaut euch die Ergebnisse im Testlauf an. Nach dem Testlauf kann der WhatIf-Schalter auskommentiert bzw. gelöscht werden.
Für Exchange Server 2010 wird das folgende Skript verwendet:
#Exchange 2010:
$path1 = "C:\Program Files\Microsoft\Exchange Server\V14\Logging"
$path2 = "C:\inetpub\logs" Get-ChildItem $path1,$path2 -Include '*.log','*.blg' -Recurse | ?{$_.LastWriteTime -lt (Get-Date).AddDays(-14)} | Remove-Item -whatif
Für Exchange Server 2013, 2016 und 2019 wird das folgende Skript verwendet:
#Exchange 2013/2016/2019:
$path1 = "C:\Program Files\Microsoft\Exchange Server\V15\Logging"
$path2 = "C:\inetpub\logs"
Get-ChildItem $path1,$path2 -Include '*.log','*.blg' -Recurse | ?{$_.LastWriteTime -lt (Get-Date).AddDays(-14)} | Remove-Item -whatif
Wer nur die IIS-LogFiles löschen möchte, kann dies mit diesem Skript durchführen:
#INETPUB $path = "C:\inetpub\logs" Get-ChildItem
$path -Include '*.log' -Recurse | ?{$_.LastWriteTime -lt (Get-Date).AddDays(-14)} | Remove-Item -WhatIf
Das entsprechende Skript kann abschließend in den Aufgabenplaner als Task eingerichtet werden:
powershell.exe -file \scripts\deleteExchangeLogFiles.ps1 -NoProfile -NonInteractive
Hallo Eddie,
danke für deine Anleitung, hat super funktioniert!
Auf dieser Seite hab ich auch noch was für IIS Logs gefunden,
ist anscheinend ein offizielles VB Script von Microsoft:
https://www.itnator.net/iis-logfiles-loeschen/
Gruß Bernhard
Hallo Bernhard,
das freut mich zu hören 😉
Es gibt natürlich viele Möglichkeiten die Logs zu löschen und via PowerShell ist es ja doch relativ entspannt umzusetzen.
Grüße aus Köln
Eddie