Clear logs in a single Exchange 2013 Server:
Set-Executionpolicy RemoteSigned
$days=30 #You
can change the number of days here
can change the number of days here
$IISLogPath=”C:inetpublogsLogFiles”
$ExchangeLoggingPath=”C:Program
FilesMicrosoftExchange ServerV15Logging”
FilesMicrosoftExchange ServerV15Logging”
Write-Host “Removing
IIS and Exchange logs; keeping last” $days
“days”
IIS and Exchange logs; keeping last” $days
“days”
Function CleanLogfiles($TargetFolder)
{
if (Test-Path
$TargetFolder) {
$Now
= Get-Date
= Get-Date
$LastWrite
= $Now.AddDays(-$days)
= $Now.AddDays(-$days)
$Files
= Get-ChildItem
$TargetFolder -Include
*.log -Recurse
| Where {$_.LastWriteTime
-le “$LastWrite”}
= Get-ChildItem
$TargetFolder -Include
*.log -Recurse
| Where {$_.LastWriteTime
-le “$LastWrite”}
foreach
($File in
$Files)
($File in
$Files)
{Write-Host
“Deleting file $File” -ForegroundColor
“Red”; Remove-Item
$File -ErrorAction
SilentlyContinue |
out-null}
“Deleting file $File” -ForegroundColor
“Red”; Remove-Item
$File -ErrorAction
SilentlyContinue |
out-null}
}
Else {
Write-Host “The
folder $TargetFolder doesn’t exist! Check the folder path!” -ForegroundColor “red”
}
}
CleanLogfiles($IISLogPath)
CleanLogfiles($ExchangeLoggingPath)
Clear Logs in multiple Exchange 2013 Servers at the same time:
Set-Executionpolicy RemoteSigned
$days=30 #You
can change the number of days here
can change the number of days here
$ExchangeInstallRoot =
“C”
“C”
$IISLogPath=”inetpublogsLogFiles”
$ExchangeLoggingPath=”Program
FilesMicrosoftExchange ServerV15Logging”
FilesMicrosoftExchange ServerV15Logging”
Write-Host “Removing
IIS and Exchange logs; keeping last” $days
“days”
IIS and Exchange logs; keeping last” $days
“days”
Function CleanLogfiles($TargetFolder)
{
$TargetServerFolder = “$E15Server$ExchangeInstallRoot$$TargetFolder”
Write-Host $TargetServerFolder
if (Test-Path
$TargetServerFolder) {
$Now
= Get-Date
= Get-Date
$LastWrite
= $Now.AddDays(-$days)
= $Now.AddDays(-$days)
$Files
= Get-ChildItem
$TargetServerFolder -Include *.log -Recurse | Where {$_.LastWriteTime -le
“$LastWrite”}
= Get-ChildItem
$TargetServerFolder -Include *.log -Recurse | Where {$_.LastWriteTime -le
“$LastWrite”}
foreach
($File in
$Files)
($File in
$Files)
{
#
Write-Host “Deleting file $File” -ForegroundColor “Red”
Write-Host “Deleting file $File” -ForegroundColor “Red”
Remove-Item
$File -ErrorAction
SilentlyContinue |
out-null}
$File -ErrorAction
SilentlyContinue |
out-null}
}
Else {
Write-Host “The
folder $TargetServerFolder doesn’t exist! Check the folder path!” -ForegroundColor “red”
}
}
$Ex2013 =
Get-ExchangeServer |
Where {$_.IsE15OrLater -eq
$true}
Get-ExchangeServer |
Where {$_.IsE15OrLater -eq
$true}
foreach ($E15Server
In $Ex2013)
{
In $Ex2013)
{
CleanLogfiles($IISLogPath)
CleanLogfiles($ExchangeLoggingPath)
}