Exchange Server 的2个日志目录会增长的很快,需要定时清理,不然C盘的空间很快就会吃光,以下这个powershell脚本就是用于清理目录下面的日志的,已在生产环境中测试过,没问题:
Set-Executionpolicy RemoteSigned $days=0 $IISLogPath="C:inetpublogsLogFiles" $ExchangeLoggingPath="C:Program FilesMicrosoftExchange ServerV15Logging" $ETLLoggingPath="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsETLTraces" $ETLLoggingPath2="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsLogs" Function CleanLogfiles($TargetFolder) { if (Test-Path $TargetFolder) { $Now = Get-Date $LastWrite = $Now.AddDays(-$days) $Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl, *.txt -Recurse | Where {$_.LastWriteTime -le "$LastWrite"} foreach ($File in $Files) {Write-Host "Deleting file $File" -ForegroundColor "white"; Remove-Item $File -ErrorAction SilentlyContinue | out-null} } Else { Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "white" } } CleanLogfiles($IISLogPath) CleanLogfiles($ExchangeLoggingPath) CleanLogfiles($ETLLoggingPath) CleanLogfiles($ETLLoggingPath2)
以下这个powershell是修改版本,当用户没有对应的目录日志文件删除权限时也可以清理掉日志文件,如下:
Set-Executionpolicy RemoteSigned $days=0 $IISLogPath="C:inetpublogsLogFiles" $ExchangeLoggingPath="C:Program FilesMicrosoftExchange ServerV15Logging" $ETLLoggingPath="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsETLTraces" $ETLLoggingPath2="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsLogs" Function CleanLogfiles($TargetFolder) { write-host -debug -ForegroundColor Yellow -BackgroundColor Cyan $TargetFolder if (Test-Path $TargetFolder) { $Now = Get-Date $LastWrite = $Now.AddDays(-$days) # $Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl -Recurse | Where {$_.LastWriteTime -le "$LastWrite"} $Files = Get-ChildItem "C:Program FilesMicrosoftExchange ServerV15Logging" -Recurse | Where-Object {$_.Name -like "*.log" -or $_.Name -like "*.blg" -or $_.Name -like "*.etl"} | where {$_.lastWriteTime -le "$lastwrite"} | Select-Object FullName foreach ($File in $Files) { $FullFileName = $File.FullName Write-Host "Deleting file $FullFileName" -ForegroundColor "yellow"; Remove-Item $FullFileName -ErrorAction SilentlyContinue | out-null } } Else { Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "red" } } CleanLogfiles($IISLogPath) CleanLogfiles($ExchangeLoggingPath) CleanLogfiles($ETLLoggingPath) CleanLogfiles($ETLLoggingPath2)
具体可以参考链接:https://gallery.technet.microsoft.com/clear-exchange-2013-log-71abba44