From 2118d4a4a063dbf7606ff0d0f70ebbffc3377dfc Mon Sep 17 00:00:00 2001 From: PTah Date: Sun, 31 May 2026 18:55:11 +1000 Subject: [PATCH] fix: hide redundant workstation line in RDP login alerts 1.2.32-SAC Co-authored-by: Cursor --- Login_Monitor.ps1 | 40 ++++++++++++++++++++++++++++++++++++++-- version.txt | 2 +- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Login_Monitor.ps1 b/Login_Monitor.ps1 index dd32cb8..1ef1041 100644 --- a/Login_Monitor.ps1 +++ b/Login_Monitor.ps1 @@ -82,7 +82,7 @@ $script:MonitorStopRequested = $false # строки ниже, если правки «мелкие» и вы не хотите менять отображаемую версию в логах). # Рекомендация: при значимых релизах меняйте и $ScriptVersion, и version.txt одинаково; при только # исправлениях на шаре — достаточно поднять patch в version.txt (например 1.3.0.1). -$ScriptVersion = "1.2.31-SAC" +$ScriptVersion = "1.2.32-SAC" # Логи (все под InstallRoot) $LogFile = Join-Path $script:InstallRoot "Logs\login_monitor.log" @@ -2413,6 +2413,40 @@ function Get-LoginEventInfo { return $eventData } +function Test-RdpLoginShowWorkstationLine { + param( + [string]$WorkstationName, + [string]$ServerHostname = $env:COMPUTERNAME + ) + + $ws = if ($null -ne $WorkstationName) { [string]$WorkstationName.Trim() } else { '' } + if ([string]::IsNullOrWhiteSpace($ws) -or $ws -eq '-' -or $ws -eq 'N/A') { + return $false + } + + $wsKey = $ws.ToLowerInvariant() + $hostKey = if ($null -ne $ServerHostname) { [string]$ServerHostname.Trim().ToLowerInvariant() } else { '' } + if ($hostKey -and $wsKey -eq $hostKey) { + return $false + } + + if (Get-Command -Name Get-MonitorServerLabel -ErrorAction SilentlyContinue) { + $label = [string](Get-MonitorServerLabel) + if (-not [string]::IsNullOrWhiteSpace($label)) { + $labelKey = $label.Trim().ToLowerInvariant() + if ($wsKey -eq $labelKey) { + return $false + } + $base = ($label -split '\(', 2)[0].Trim().ToLowerInvariant() + if ($base -and $wsKey -eq $base) { + return $false + } + } + } + + return $true +} + function Format-LoginEvent { param( [int]$EventID, @@ -2444,7 +2478,9 @@ function Format-LoginEvent { $message += "👤 Пользователь: $hUser`r`n" $message += "🏢 Сервер (журнал Security): $hLog`r`n" - $message += "🖥️ Рабочая станция (клиент из события): $hWkst`r`n" + if (Test-RdpLoginShowWorkstationLine -WorkstationName $ComputerName -ServerHostname $logHost) { + $message += "🖥️ Рабочая станция (клиент из события): $hWkst`r`n" + } $message += "🌐 IP адрес: $hIp`r`n" $message += "⚙️ Процесс/Код: $hProc`r`n" $message += "🔑 Тип входа: $hLtName ($LogonType)`r`n" diff --git a/version.txt b/version.txt index 91abfac..503ca5a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.2.31-SAC +1.2.32-SAC