feat: deploy patch for MaxBackupDays default (2.0.13-SAC)
Add deploy-time patch when login_monitor.settings.ps1 lacks MaxBackupDays, enable the setting in example, and remove duplicate default in Login_Monitor.ps1. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -634,9 +634,55 @@ function Invoke-RdpMonitorSettingsPostPatches {
|
|||||||
if (Sync-RdpMonitorSettingsExchangeNoisePatches -LocalSettings $LocalSettings) { $changed = $true }
|
if (Sync-RdpMonitorSettingsExchangeNoisePatches -LocalSettings $LocalSettings) { $changed = $true }
|
||||||
if (Repair-RdpMonitorSettingsWinRmLinesIfInvalid -LocalSettings $LocalSettings) { $changed = $true }
|
if (Repair-RdpMonitorSettingsWinRmLinesIfInvalid -LocalSettings $LocalSettings) { $changed = $true }
|
||||||
if (Sync-RdpMonitorSettingsWinRmInboundBlock -LocalSettings $LocalSettings) { $changed = $true }
|
if (Sync-RdpMonitorSettingsWinRmInboundBlock -LocalSettings $LocalSettings) { $changed = $true }
|
||||||
|
if (Sync-RdpMonitorSettingsMaxBackupDaysIfMissing -LocalSettings $LocalSettings) { $changed = $true }
|
||||||
return $changed
|
return $changed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Test-RdpMonitorSettingsNeedsMaxBackupDays {
|
||||||
|
param([string]$SettingsPath)
|
||||||
|
if (-not (Test-Path -LiteralPath $SettingsPath)) { return $false }
|
||||||
|
$c = Get-RdpMonitorSettingsRaw -Path $SettingsPath
|
||||||
|
if ([string]::IsNullOrWhiteSpace($c)) { return $true }
|
||||||
|
return ($c -notmatch '(?m)^\s*\$MaxBackupDays\s*=')
|
||||||
|
}
|
||||||
|
|
||||||
|
function Sync-RdpMonitorSettingsMaxBackupDaysIfMissing {
|
||||||
|
param([string]$LocalSettings)
|
||||||
|
|
||||||
|
if (-not (Test-RdpMonitorSettingsNeedsMaxBackupDays -SettingsPath $LocalSettings)) {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
|
||||||
|
$c = Get-RdpMonitorSettingsRaw -Path $LocalSettings
|
||||||
|
$block = @(
|
||||||
|
'# --- Ротация login_monitor.log и хранение бэкапов (Logs\Backup\LoginLog_*.bak) ---'
|
||||||
|
'# $LogRotationHour = 0'
|
||||||
|
'# $LogRotationMinute = 0'
|
||||||
|
'$MaxBackupDays = 31'
|
||||||
|
) -join "`r`n"
|
||||||
|
|
||||||
|
$bak = "$LocalSettings.bak.$(Get-Date -Format 'yyyyMMdd_HHmmss')"
|
||||||
|
if (Test-Path -LiteralPath $LocalSettings) {
|
||||||
|
Copy-Item -LiteralPath $LocalSettings -Destination $bak -Force
|
||||||
|
Write-DeployLog "Добавление `$MaxBackupDays в login_monitor.settings.ps1; резервная копия: $bak"
|
||||||
|
} else {
|
||||||
|
Write-DeployLog "Создание login_monitor.settings.ps1 с `$MaxBackupDays = 31"
|
||||||
|
}
|
||||||
|
|
||||||
|
$insertBefore4740 = '(?m)^\s*#\s*---\s*Блокировка учётной записи AD'
|
||||||
|
if (-not [string]::IsNullOrWhiteSpace($c) -and $c -match $insertBefore4740) {
|
||||||
|
$newContent = [regex]::Replace($c, $insertBefore4740, ($block + "`r`n`r`n" + '$0'), 1)
|
||||||
|
} elseif (-not [string]::IsNullOrWhiteSpace($c)) {
|
||||||
|
$newContent = ($c.TrimEnd() + "`r`n`r`n" + $block + "`r`n")
|
||||||
|
} else {
|
||||||
|
$newContent = ($block + "`r`n")
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.IO.File]::WriteAllText($LocalSettings, $newContent.TrimEnd() + "`r`n", $Utf8Bom)
|
||||||
|
Write-DeployLog "login_monitor.settings.ps1: добавлен `$MaxBackupDays = 31"
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
|
||||||
function Update-RdpMonitorSettingsServerDisplayNameHintIfMissing {
|
function Update-RdpMonitorSettingsServerDisplayNameHintIfMissing {
|
||||||
param([string]$LocalSettings)
|
param([string]$LocalSettings)
|
||||||
if (-not (Test-Path -LiteralPath $LocalSettings)) { return $false }
|
if (-not (Test-Path -LiteralPath $LocalSettings)) { return $false }
|
||||||
|
|||||||
+1
-2
@@ -89,12 +89,11 @@ $script:SkipLogDetailLimit = 15
|
|||||||
# строки ниже, если правки «мелкие» и вы не хотите менять отображаемую версию в логах).
|
# строки ниже, если правки «мелкие» и вы не хотите менять отображаемую версию в логах).
|
||||||
# Рекомендация: при значимых релизах меняйте и $ScriptVersion, и version.txt одинаково; при только
|
# Рекомендация: при значимых релизах меняйте и $ScriptVersion, и version.txt одинаково; при только
|
||||||
# исправлениях на шаре — достаточно поднять patch в version.txt (например 1.3.0.1).
|
# исправлениях на шаре — достаточно поднять patch в version.txt (например 1.3.0.1).
|
||||||
$ScriptVersion = "2.0.12-SAC"
|
$ScriptVersion = "2.0.13-SAC"
|
||||||
|
|
||||||
# Логи (все под InstallRoot)
|
# Логи (все под InstallRoot)
|
||||||
$LogFile = Join-Path $script:InstallRoot "Logs\login_monitor.log"
|
$LogFile = Join-Path $script:InstallRoot "Logs\login_monitor.log"
|
||||||
$LogBackupFolder = Join-Path $script:InstallRoot "Logs\Backup"
|
$LogBackupFolder = Join-Path $script:InstallRoot "Logs\Backup"
|
||||||
$MaxBackupDays = 31
|
|
||||||
|
|
||||||
# Ротация login_monitor.log (ежедневно в указанное локальное время) и срок хранения бэкапов LoginLog_*.bak
|
# Ротация login_monitor.log (ежедневно в указанное локальное время) и срок хранения бэкапов LoginLog_*.bak
|
||||||
$LogRotationHour = 0
|
$LogRotationHour = 0
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ ${Ignore4624-LT3-EmptyIP-Event} = $false
|
|||||||
# --- Ротация login_monitor.log и хранение бэкапов (Logs\Backup\LoginLog_*.bak) ---
|
# --- Ротация login_monitor.log и хранение бэкапов (Logs\Backup\LoginLog_*.bak) ---
|
||||||
# $LogRotationHour = 0
|
# $LogRotationHour = 0
|
||||||
# $LogRotationMinute = 0
|
# $LogRotationMinute = 0
|
||||||
# $MaxBackupDays = 31
|
$MaxBackupDays = 31
|
||||||
|
|
||||||
# --- Блокировка учётной записи AD (4740) + IP из IIS ActiveSync ---
|
# --- Блокировка учётной записи AD (4740) + IP из IIS ActiveSync ---
|
||||||
# Мониторинг включается только на КД с именем $LockoutMonitorDomainController.
|
# Мониторинг включается только на КД с именем $LockoutMonitorDomainController.
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
2.0.12-SAC
|
2.0.13-SAC
|
||||||
|
|||||||
Reference in New Issue
Block a user