diff --git a/Login_Monitor.ps1 b/Login_Monitor.ps1 index 5a9ec5d..f374a6e 100644 --- a/Login_Monitor.ps1 +++ b/Login_Monitor.ps1 @@ -366,12 +366,17 @@ function Enable-SecurityAudit { } function Test-RDSDeploymentPresent { + # Узел только с RD Gateway (RDS-Gateway и т.п.) не считаем «полноценным RDS по сессиям» — + # для шлюза отдельное сообщение в Telegram (журнал Gateway, 302/303 к целевым ПК). + $gatewayOnlyFeatureNames = @('RDS-Gateway', 'RDS-WEB-ACCESS') + try { if (Get-Command Get-WindowsFeature -ErrorAction SilentlyContinue) { $rdsFeatures = @(Get-WindowsFeature -ErrorAction SilentlyContinue | Where-Object { $_.Name -like 'RDS*' -and $_.InstallState -eq 'Installed' }) - if ($rdsFeatures.Count -gt 0) { + $sessionOrHostLike = @($rdsFeatures | Where-Object { $gatewayOnlyFeatureNames -notcontains $_.Name }) + if ($sessionOrHostLike.Count -gt 0) { return $true } } @@ -396,13 +401,13 @@ function Send-Heartbeat { $message += "🖥️ Сервер: $env:COMPUTERNAME`r`n" $message += "🕐 Время запуска: $timestamp" if (Test-RDSDeploymentPresent) { - $message += "`r`n🔐 RDS: обнаружена роль/компоненты Remote Desktop Services — в мониторинг входят также входы пользователей через RDS/RDP (события Security 4624/4625, типы входа по настройке скрипта)." + $message += "`r`n🔐 RDS (хост сессий): обнаружены компоненты RDS помимо чистого шлюза — в мониторинг входят входы по RDP/RDS на этом узле (Security 4624/4625, типы входа по настройке скрипта)." } if ($EnableRDGatewayMonitoring) { try { $gwLog = Get-WinEvent -ListLog $RDGatewayLogName -ErrorAction SilentlyContinue if ($gwLog) { - $message += "`r`n🌐 RD Gateway: журнал доступен — дополнительно фиксируются подключения через RD Gateway (302/303)." + $message += "`r`n🌐 RD Gateway: журнал шлюза доступен — дополнительно фиксируются подключения пользователей к внутренним целевым компьютерам через RD Gateway (события 302/303 в журнале шлюза)." } } catch { } } diff --git a/README.md b/README.md index 7aa5b74..15bd7eb 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "D:\Soft\Login_Monitor.p - `D:\Soft\Logs\watchdog.log` - Heartbeat: - `D:\Soft\Logs\last_heartbeat.txt` обновляется примерно раз в час (по `$HeartbeatInterval`). -- Telegram при старте: если обнаружена роль RDS (или типичный сервис RDS Session Host), в тексте явно указано, что мониторятся и входы через RDS/RDP; при доступном журнале RD Gateway — отдельная строка про события Gateway. +- Telegram при старте: при установленном **RD Session Host** (или аналогичных компонентах RDS, не только шлюз) — строка про входы по RDP/RDS на этом сервере; при доступном журнале **RD Gateway** — отдельная строка про подключения к **внутренним целевым ПК** через шлюз (302/303). Узел только с ролью RD Gateway не дублирует формулировку «хост сессий». ## 5) Автоматический перезапуск при падении