zoukankan      html  css  js  c++  java
  • 清除 Exchange 2013/2016/2019 日志和ETL文件

    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

  • 相关阅读:
    static关键字的定义与使用
    String类练习统计一个字符串中大小写字母及数字字符个数
    Java中String类的常用方法
    String类的特点和使用步骤
    HTB 渗透测试笔记-Lame
    消息认证-数字签名-报文鉴别-到底是什么
    docker pull 太慢了解决办法
    彻底解决Mac无线网络故障和网速慢的问题
    彻底-有效-解决-Github下载太慢的问题
    Linux中的docker报错 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
  • 原文地址:https://www.cnblogs.com/reachos/p/9704959.html
Copyright © 2011-2022 走看看