Optimized logging of Rotation/Policies

pull/257/head
KnifMelti 2023-01-13 21:42:06 +01:00
parent 4d0fc6e445
commit c4834c0053
3 changed files with 16 additions and 13 deletions

View File

@ -22,7 +22,11 @@ if ($IsSystem) {
Write-Log "Running in System context"
#Get and set Domain/Local Policies (GPO)
$ChangedSettings = Get-Policies
$ActivateGPOManagement, $ChangedSettings = Get-Policies
if ($null -ne $ChangedSettings -and $ActivateGPOManagement) {
Write-Log "Activated WAU GPO Management detected, comparing..."
Write-Log "Changed settings: $ChangedSettings" "Yellow"
}
# Maximum number of log files to keep. Default is 3. Setting MaxLogFiles to 0 will keep all log files.
$MaxLogFiles = $WAUConfig.WAU_MaxLogFiles
@ -43,17 +47,20 @@ if ($IsSystem) {
}
#LogRotation if System
$Rotate = Invoke-LogRotation $LogFile $MaxLogFiles $MaxLogSize
if ($Rotate) {
$Exception, $Rotate = Invoke-LogRotation $LogFile $MaxLogFiles $MaxLogSize
if ($Exception -eq $True) {
Write-Log "An Exception occured during Log Rotation..."
}
if ($Rotate -eq $True) {
#Log Header
$Log = "`n##################################################`n# CHECK FOR APP UPDATES - $(Get-Date -Format (Get-culture).DateTimeFormat.ShortDatePattern)`n##################################################"
$Log | Write-host
$Log | out-file -filepath $LogFile -Append
Write-Log "Running in System context"
if ($null -ne $ChangedSettings) {
if ($null -ne $ChangedSettings -and $ActivateGPOManagement) {
Write-Log "Activated WAU GPO Management detected, comparing..."
Write-Log "Changed settings: $ChangedSettings" "Yellow"
}
Write-Log "Max Log Size reached: $MaxLogSize bytes - Rotated Logs"
}
#Run post update actions if necessary if run as System

View File

@ -6,7 +6,6 @@ Function Get-Policies {
if ($WAUPolicies) {
if ($($WAUPolicies.WAU_ActivateGPOManagement -eq 1)) {
$ChangedSettings = 0
Write-Log "Activated WAU GPO Management detected, comparing..."
$regPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate"
if ($null -ne $($WAUPolicies.WAU_BypassListForUsers) -and ($($WAUPolicies.WAU_BypassListForUsers) -ne $($WAUConfig.WAU_BypassListForUsers))) {
New-ItemProperty $regPath -Name WAU_BypassListForUsers -Value $($WAUPolicies.WAU_BypassListForUsers) -PropertyType DWord -Force | Out-Null
@ -347,11 +346,9 @@ Function Get-Policies {
$ChangedSettings++
}
Write-Log "Changed settings: $ChangedSettings" "Yellow"
#Get WAU Configurations after Policies change
$Script:WAUConfig = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate"
}
}
Return $ChangedSettings
Return $($WAUPolicies.WAU_ActivateGPOManagement), $ChangedSettings
}

View File

@ -48,7 +48,7 @@ function Invoke-LogRotation ($LogFile, $MaxLogFiles, $MaxLogSize) {
Set-Acl -Path $LogFile -AclObject $NewAcl
}
catch {
Write-Log $_.Exception.Message
Return $True, $False
}
# if MaxLogFiles is 0 don't delete any old archived log files
@ -69,12 +69,11 @@ function Invoke-LogRotation ($LogFile, $MaxLogFiles, $MaxLogSize) {
}
}
}
Return $True
Return $False, $True
}
}
}
catch {
Write-Log "`n`n##################################################`n# CHECK FOR LOG ROTATION - $(Get-Date -Format (Get-culture).DateTimeFormat.ShortDatePattern)`n##################################################"
Write-Log $_.Exception.Message
Return $True, $False
}
}