Skip to content

Instantly share code, notes, and snippets.

@crossan007
Created August 14, 2019 20:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crossan007/01611ec04dddcc1bfd1ce39e5b65d327 to your computer and use it in GitHub Desktop.
Save crossan007/01611ec04dddcc1bfd1ce39e5b65d327 to your computer and use it in GitHub Desktop.
"Prune" specific entries from a Filebeat 6.x registry JSON file
$ErrorActionPreference = "Stop"
Function Test-IISLogFile{
Param(
$FilePath
)
return $($FilePath -Like "*.com\Logs\*") -or $($FilePath -Like "*.com\Log\*")
}
Function Clean-FileBeatRegistry {
Param(
$RegistryFile
)
$RegistryFile = Resolve-Path -Path $RegistryFile
$BackupRegistryFile = "$($RegistryFile)$($(Get-Date).ToFileTime())"
Write-Host "Backing up $RegistryFile to $BackupRegistryFile"
Copy-Item -Path $RegistryFile -Destination $BackupRegistryFile
Write-Host "Reading registry file: $RegistryFile"
$FileBeatProspectedFilesRaw = Get-Content -LiteralPath $RegistryFile
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$jsonserial= New-Object -TypeName System.Web.Script.Serialization.JavaScriptSerializer
$jsonserial.MaxJsonLength = 67108864
$FileBeatProspectedFiles = $jsonserial.DeserializeObject($FileBeatProspectedFilesRaw)
Write-Host "Found $($FileBeatProspectedFiles.count) prospected files in $RegistryFile"
$NonIISLogProspectFiles = $FileBeatProspectedFiles | Where-Object {-not (Test-IISLogFile -FilePath $_.source)}
Write-Host "$($NonIISLogProspectFiles.count) files in registry after filtering IIS log prospectors"
if ($NonIISLogProspectFiles -isnot [Array]) {
$NonIISLogProspectFiles = @($NonIISLogProspectFiles)
}
ConvertTo-Json $NonIISLogProspectFiles -Compress | Out-File -LiteralPath $RegistryFile -Encoding ascii
Write-Host "Wrote $($NonIISLogProspectFiles.count) prospected files to $($RegistryFile)"
}
Clean-FileBeatRegistry -RegistryFile "C:\ProgramData\filebeat\registry"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment