Purge-LogFiles PowerShell Script updated to Version 2.0


Exchange Server 2013 Exchange Server 2016 The PowerShell script to purge Exchange Server and IIS log files has been updated to version 2.0.

Release 2.0 allows for copying of files that will be deleted to be copied to a central file repository. The script will create a folder per server and the full log file folder structure will be preserved.

The next release will contain an option to compress the copied log files.

Added code:

function Copy-LogFiles {  [CmdletBinding()]  param(    [string]$SourceServer,    [string]$SourcePath,    $FilesToMove  )  if($SourceServer -ne '') {     # path per SERVER for zipped archives    $ServerRepositoryPath = Join-Path -Path $RepositoryRootPath -ChildPath $SourceServer    # subfolder used as target for copying source folders and files    $ServerRepositoryLogsPath = Join-Path -Path $ServerRepositoryPath -ChildPath $LogSubfolderName    $ServerRepositoryPath = Join-Path -Path $RepositoryRootPath -ChildPath $SourceServer    if(!(Test-Path -Path $ServerRepositoryPath)) {      # Create new target directory for server, if does not exist      $null = New-Item -Path $ServerRepositoryPath -ItemType Directory -Force -Confirm:$false    }    foreach ($File in $FilesToMove) {      # target directory      $targetDir = $File.DirectoryName.Replace($TargetServerFolder, $ServerRepositoryLogsPath)      # target file path      $targetFile = $File.FullName.Replace($TargetServerFolder, $ServerRepositoryLogsPath)            # create target directory, if not exists      if(!(Test-Path -Path $targetDir)) {$null = mkdir -Path $targetDir}      # copy file to target      $null = Copy-Item -Path $File.FullName -Destination $targetFile -Recurse -Force -Confirm:$false -ErrorAction SilentlyContinue    }-Force           if($ZipArchive) {      # zip copied log files      #      <# NOT FULLY TESTED YET       $Archive = Join-Path -Path $ServerRepositoryPath -ChildPath $ArchiveFileName      $logger.Write(('Zip copied files to {0}' -f $ArchiveFileName))      if(Test-Path -Path $Archive) {Remove-Item $Archive -Force -Confirm:$false}      Add-Type -AssemblyName 'System.IO.Compression.FileSystem'      [IO.Compression.ZipFile]::CreateFromDirectory($ServerRepositoryLogsPath,$Archive)      #>    }   }  }






%d Bloggern gefällt das: