👻 Windows: Режим «Призрака» в RDP (Shadow Mode)
Ситуация: Звонит бухгалтер. "У меня 1С не открывается, ошибка какая-то". Вы подключаетесь по RDP — и выкидываете пользователя из сессии (экран блокируется). Приходится кричать в трубку: "Ну что там написано?", а в ответ: "Ой, всё пропало, черный экран!".
В Windows встроен штатный способ подключиться к сессии пользователя, не выкидывая его (он видит, что вы делаете).
Как это сделать:
Узнаем ID сессии пользователя:
Подключаемся в режиме Shadow:
Что значат ключи:
/shadow:1 — подключиться к сессии с ID 1.
/control — разрешить управление мышкой/клавиатурой (без этого будет только просмотр).
/noConsentPrompt — подключиться без спроса (нужна настройка GPO, иначе у пользователя вылезет окошко "Разрешить админу просмотр?").
Идеально для техподдержки. Вы видите проблему глазами пользователя.
#windows #rdp #helpdesk #tips #shadowmode #cmd
Ситуация: Звонит бухгалтер. "У меня 1С не открывается, ошибка какая-то". Вы подключаетесь по RDP — и выкидываете пользователя из сессии (экран блокируется). Приходится кричать в трубку: "Ну что там написано?", а в ответ: "Ой, всё пропало, черный экран!".
В Windows встроен штатный способ подключиться к сессии пользователя, не выкидывая его (он видит, что вы делаете).
Как это сделать:
Узнаем ID сессии пользователя:
qwinsta /server:BUH-PC-01
# Видим: buhgalter ID: 1 Active
Подключаемся в режиме Shadow:
mstsc /shadow:1 /v:BUH-PC-01 /control
Что значат ключи:
/shadow:1 — подключиться к сессии с ID 1.
/control — разрешить управление мышкой/клавиатурой (без этого будет только просмотр).
/noConsentPrompt — подключиться без спроса (нужна настройка GPO, иначе у пользователя вылезет окошко "Разрешить админу просмотр?").
Идеально для техподдержки. Вы видите проблему глазами пользователя.
#windows #rdp #helpdesk #tips #shadowmode #cmd
👍4
🪟 CMD: Охота на зависшие RDP-сессии
Перед праздниками полезно проверить терминальные серверы. Часто бывает, что пользователи нажали "крестик", но сессия осталась висеть, поедая оперативную память и блокируя файлы. Диспетчер задач открывать долго.
1. Смотрим, кто в системе:
Вывод покажет: USERNAME, ID, STATE (Active/Disc). Ищите тех, у кого статус Disc (Disconnected) висит уже несколько дней.
2. Сбрасываем зависшую сессию: Запоминаем ID из прошлой команды (например, 7).
3. Удаленно (если лень заходить):
Пять минут на чистку — и серверу станет легче дышать на каникулах.
#windows #rdp #cmd #maintenance #adminlife #cleanup
Перед праздниками полезно проверить терминальные серверы. Часто бывает, что пользователи нажали "крестик", но сессия осталась висеть, поедая оперативную память и блокируя файлы. Диспетчер задач открывать долго.
1. Смотрим, кто в системе:
quser
Вывод покажет: USERNAME, ID, STATE (Active/Disc). Ищите тех, у кого статус Disc (Disconnected) висит уже несколько дней.
2. Сбрасываем зависшую сессию: Запоминаем ID из прошлой команды (например, 7).
logoff 7
3. Удаленно (если лень заходить):
quser /server:SRV-TERM-01
logoff 7 /server:SRV-TERM-01
Пять минут на чистку — и серверу станет легче дышать на каникулах.
#windows #rdp #cmd #maintenance #adminlife #cleanup
🪟 Windows Server: Почему тормозит RDP? Отключаем UDP.
Замечали, что иногда курсор в RDP-сессии двигается рывками, а текст печатается с задержкой? По умолчанию современный RDP (начиная с версии 8.0) пытается использовать протокол UDP для ускорения графики. Но на нестабильных каналах или при наличии определенных файерволов это дает обратный эффект.
Как «вылечить» и сделать сессию плавной: Нужно принудительно заставить RDP работать только через TCP.
1. Нажмите Win + R, введите gpedit.msc.
2. Путь: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Удаленная сессия.
3. Найдите: «Выбор протоколов передачи данных удаленного рабочего стола».
4. Установите: «Включено» и выберите «Только TCP».
После этого задержки (input lag) обычно пропадают.
#windows #server #rdp #sysadmin #troubleshooting #it
Замечали, что иногда курсор в RDP-сессии двигается рывками, а текст печатается с задержкой? По умолчанию современный RDP (начиная с версии 8.0) пытается использовать протокол UDP для ускорения графики. Но на нестабильных каналах или при наличии определенных файерволов это дает обратный эффект.
Как «вылечить» и сделать сессию плавной: Нужно принудительно заставить RDP работать только через TCP.
1. Нажмите Win + R, введите gpedit.msc.
2. Путь: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Удаленная сессия.
3. Найдите: «Выбор протоколов передачи данных удаленного рабочего стола».
4. Установите: «Включено» и выберите «Только TCP».
После этого задержки (input lag) обычно пропадают.
#windows #server #rdp #sysadmin #troubleshooting #it
👍2
🪟 Windows Server: Гроза «зависших» сессий — PowerShell-скрипт для очистки RDP 🧹
Знакомая ситуация: ты пытаешься зайти на сервер по RDP, а он тебе: «Превышено максимальное число подключений». Кто-то из коллег просто закрыл крестиком окно вместо Log off, и сессия висит «призраком», занимая слот.
Не нужно гадать, кто это. Выбиваем бездельников одной командой.
Сниппет для поиска и завершения зависших сессий:
Админский совет: Настрой этот скрипт в планировщике задач на контроллерах домена и терминальных серверах. Пусть система сама чистит за теми, кто забывает разлогиниться.
#windows #powershell #rdp #sysadmin #automation #server #admin_future
Знакомая ситуация: ты пытаешься зайти на сервер по RDP, а он тебе: «Превышено максимальное число подключений». Кто-то из коллег просто закрыл крестиком окно вместо Log off, и сессия висит «призраком», занимая слот.
Не нужно гадать, кто это. Выбиваем бездельников одной командой.
Сниппет для поиска и завершения зависших сессий:
# Показать все сессии, которые висят в статусе "Disconnected" более 2 часов
$sessions = qwinsta /server:localhost | Append-Output | Select-String "Disc"
foreach ($sess in $sessions) {
$sessId = ($sess -split '\s+')[2]
rwinsta $sessId /server:localhost
Write-Host "Сессия $sessId принудительно завершена." -ForegroundColor Yellow
}
Админский совет: Настрой этот скрипт в планировщике задач на контроллерах домена и терминальных серверах. Пусть система сама чистит за теми, кто забывает разлогиниться.
#windows #powershell #rdp #sysadmin #automation #server #admin_future
🛡️ Защита RDP: Как не дать подобрать ключи от сервера
Привет, коллеги! Оставлять 3389 порт открытым в дикий интернет — это как оставить ключи от квартиры под ковриком, на котором написано здесь лежат деньги. Ботнеты найдут вас через 30 секунд после поднятия интерфейса. Разберем, как превратить обычный RDP в неприступный шлюз, используя блокировки и GeoIP.
Уровень 1: Политика блокировки учетных записей
Команда для настройки:
Теперь, если бот попробует подобрать пароль, учетка заблокируется на полчаса. Это резко снижает эффективность любого перебора.
Уровень 2: GeoIP — Фильтруем по прописке
Скрипт для блокировки чужих подсетей (пример логики):
Уровень 3: Автоматический бан через Event Log
Логика проста:
1. Скрипт мониторит журнал событий на наличие Event ID 4625 (ошибка входа).
2. Если с одного IP пришло несколько ошибок за минуту — этот IP улетает в блок в фаерволе.
Зачем это нужно:
Золотое правило:Лучший RDP — это тот, который доступен только через VPN. Если всё же нужен прямой доступ — используй все три уровня защиты.
#security #rdp #powershell #geoip #bruteforce #admin_future
Привет, коллеги! Оставлять 3389 порт открытым в дикий интернет — это как оставить ключи от квартиры под ковриком, на котором написано здесь лежат деньги. Ботнеты найдут вас через 30 секунд после поднятия интерфейса. Разберем, как превратить обычный RDP в неприступный шлюз, используя блокировки и GeoIP.
Уровень 1: Политика блокировки учетных записей
Если у вас нет блокировки после N неудачных попыток, хакер может брутфорсить ваш пароль годами. Нам нужно, чтобы после 5 попыток дверь закрывалась перед носом атакующего. В Windows это настраивается через групповые политики, но мы сделаем это быстрее через командную строку.
Команда для настройки:
# Устанавливаем порог блокировки в 5 попыток
net accounts /lockoutthreshold:5
# Время блокировки (в минутах)
net accounts /lockoutduration:30
# Окно сброса счетчика попыток
net accounts /lockoutwindow:30
Теперь, если бот попробует подобрать пароль, учетка заблокируется на полчаса. Это резко снижает эффективность любого перебора.
Уровень 2: GeoIP — Фильтруем по прописке
Зачем вашему серверу принимать подключения из других стран, если ваши сотрудники сидят в одном регионе? Использование GeoIP списков для фаервола — это база. Мы можем использовать PowerShell, чтобы разрешить доступ только для определенных диапазонов адресов.
Скрипт для блокировки чужих подсетей (пример логики):
# Импортируем список разрешенных IP-адресов
$AllowedIPs = Get-Content C:\Scripts\allowed_ips.txt
# Создаем правило фаервола, которое разрешает RDP только для этих IP
New-NetFirewallRule -DisplayName Allow RDP Region Only -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -RemoteAddress $AllowedIPs
# Отключаем дефолтное правило, которое разрешает RDP всем
Disable-NetFirewallRule -DisplayName Remote Desktop - User Mode (TCP-In)
Уровень 3: Автоматический бан через Event Log
Самый эффективный способ — динамический бан. Если кто-то стучится и ошибается, его IP должен лететь в черный список фаервола немедленно.
# Порог попыток перед баном
$Threshold = 3
# За какой период смотреть логи (в минутах)
$TimeRange = 10
$StartTime = (Get-Date).AddMinutes(-$TimeRange)
# Собираем события неудачного входа (ID 4625)
$Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=$StartTime} -ErrorAction SilentlyContinue
if ($Events) {
# Группируем по IP-адресу (свойство 19 обычно содержит IP)
$FailedIPs = $Events | ForEach-Object {
[PSCustomObject]@{
IP = $_.Properties[19].Value
}
} | Group-Object IP | Where-Object { $_.Count -ge $Threshold -and $_.Name -ne "-" -and $_.Name -ne "127.0.0.1" }
foreach ($Item in $FailedIPs) {
$IP = $Item.Name
$RuleName = "AutoBan_$IP"
# Проверяем, нет ли уже такого правила
if (-not (Get-NetFirewallRule -Name $RuleName -ErrorAction SilentlyContinue)) {
Write-Host "Блокируем IP: $IP (Попыток: $($Item.Count))" -ForegroundColor Red
New-NetFirewallRule -DisplayName $RuleName -Name $RuleName -Direction Inbound -Action Block -RemoteAddress $IP
}
}
}
Логика проста:
1. Скрипт мониторит журнал событий на наличие Event ID 4625 (ошибка входа).
2. Если с одного IP пришло несколько ошибок за минуту — этот IP улетает в блок в фаерволе.
Зачем это нужно:
Защита RDP — это многослойный пирог. Одного сложного пароля мало. Блокировка учеток спасает от медленного перебора, GeoIP отсекает лишний мировой шум, а динамический бан добивает самых настырных.
Золотое правило:
#security #rdp #powershell #geoip #bruteforce #admin_future
✍2👍2