Поиск по сайту:

Как очистить историю подключений RDP в Windows?


Встроенный клиент подключения к удаленному рабочему столу Windows (RDP) (

mstsc.exe

) сохраняет имя удаленного компьютера (или IP-адрес) и имя пользователя, которое используется для входа в систему после каждого успешного подключения к удаленному компьютеру. При следующем запуске RDP-клиент предлагает пользователю выбрать одно из подключений, которое использовалось ранее. Пользователь может выбрать имя хоста RDS/RDP из списка, и клиент автоматически заполняет имя пользователя, использованное ранее для входа в систему.

Это удобно с точки зрения конечного пользователя, но небезопасно с точки зрения безопасности. Особенно, когда вы подключаетесь к своему RDP-серверу с общедоступного или ненадежного компьютера.

Информация обо всех сеансах RDP (терминала) хранится индивидуально в кусте реестра каждого пользователя, т.е. пользователь, не являющийся администратором, не сможет просмотреть историю подключений RDP другого пользователя.

В этой статье мы покажем, где Windows хранит историю и сохраненные учетные данные подключений к удаленному рабочему столу, как удалять записи из окна mstsc и очищать журналы RDP.

Как удалить кеш RDP-соединений из реестра?

Информация обо всех RDP-соединениях хранится в реестре каждого пользователя. Удалить компьютер (или компьютеры) из списка истории RDP-подключений встроенными средствами Windows невозможно. Вам придется вручную очистить некоторые ключи реестра.

  1. Запустите редактор реестра (

    regedit.exe

    ) и перейдите к разделу реестра HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client;

  2. В этом разделе вам потребуются два ключа реестра: По умолчанию (хранит историю последних 10 подключений RDP) и Серверы (содержит список всех серверов RDP и имен пользователей, использованных ранее для авторизоваться);

  3. Разверните раздел реестра HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default, который содержит список из 10 IP-адресов или DNS-имен удаленных компьютеров, которые недавно использовались (MRU — наиболее недавно использованные). Имя (или IP-адрес) сервера удаленных рабочих столов хранится в значении MRU*. параметр. Чтобы очистить историю последних подключений RDP, выберите все параметры с именами MRU0-MRU9, щелкните правой кнопкой мыши и выберите Удалить;

  4. Теперь разверните ключ HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers. Он содержит список всех RDP-соединений, которые когда-либо были установлены этим пользователем. Разверните ключ reg, указав имя (или IP-адрес) любого хоста. Обратите внимание на значение параметра UsernameHint. Он показывает имя пользователя, используемое для подключения к хосту RDP/RDS. Это имя пользователя будет использоваться для автоматического подключения к хосту RDP. Кроме того, переменная CertHash содержит отпечаток SSL-сертификата RDP-сервера (см. статью «Настройка доверенных TLS/SSL-сертификатов для RDP»);

  5. Чтобы очистить историю всех подключений RDP и сохраненных имен пользователей, необходимо очистить содержимое раздела реестра «Серверы». Поскольку невозможно выбрать все вложенные ключи реестра одновременно, проще удалить весь ключ Servers, а затем воссоздать его вручную;

  6. Далее вам необходимо удалить файл подключения RDP по умолчанию (который содержит информацию о последнем сеансе rdp) — Default.rdp (этот файл является скрытым файлом, расположенным в каталоге Documents). .

  7. Windows также сохраняет недавние подключения к удаленному рабочему столу в списках переходов. Если вы наберете

    mstsc

    в поле поиска Windows 10 в списке появятся ранее использованные RDP-соединения. Вы можете полностью отключить последний файл и местоположение Windows 10 в списке переходов с помощью параметра реестра dword Start_TrackDocs в ключе reg.

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

    (установите значение 0), или вы можете очистить списки повторно отправленных элементов, удалив файлы в каталоге.

    %AppData%\Microsoft\Windows\Recent\AutomaticDestinations

Примечание. Описанный метод очистки истории подключений удаленного рабочего стола работает на всех десктопных версиях Windows (от Windows XP до Windows 10) и для Windows Server.

Скрипт для очистки истории подключений RDP

Выше мы показали, как вручную очистить историю RDP-подключений в Windows. Однако выполнение этого вручную (особенно на нескольких компьютерах) требует много времени. Поэтому мы предлагаем небольшой скрипт (BAT-файл), позволяющий автоматически очищать историю RDP.

Чтобы автоматизировать очистку истории RDP, вы можете поместить этот сценарий в автозагрузку Windows или запустить его на компьютерах пользователей с помощью сценария выхода из GPO.

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinations

Рассмотрим все действия скрипта:

  1. Отключить вывод информации на консоль;

  2. Удалите все параметры в разделе реестра HKCU\Software\Microsoft\Terminal Server Client\Default (очистите список последних подключений RDP);

  3. Удалить весь ключ регистрации HKCU\Software\Microsoft\Terminal Server Client\Servers (очищает список всех RDP-соединений и сохраненных имен пользователей);

  4. Восстановите ранее удаленный ключ реестра;

  5. Измените атрибуты файла Default.rdp в каталоге профиля текущего пользователя (по умолчанию это «Скрытый» и «Системный»);

  6. Удалите файл Default.rdp;

  7. Очистите записи подключения к удаленному рабочему столу из последних элементов списка переходов.

Кроме того, вы можете очистить историю подключений RDP с помощью следующего скрипта PowerShell:

Get-ChildItem "HKCU:\Software\Microsoft\Terminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:\Software\Microsoft\Terminal Server Client\servers' -Recurse  2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Default' 'MR*'  2>&1 | Out-Null
$docs = [environment]::getfolderpath("mydocuments") + '\Default.rdp'
remove-item  $docs  -Force  2>&1 | Out-Null

Как запретить Windows сохранять историю подключений RDP?

Если вы НЕ хотите, чтобы Windows сохраняла историю подключений RDP, вы должны запретить запись в раздел реестра.

HKCU\Software\Microsoft\Terminal Server Client

для всех учетных записей пользователей. Сначала отключите наследование разрешений для указанного ключа реестра (Разрешения -> Дополнительно -> Отключить наследование). Затем измените ACL ключа реестра, отметив для пользователей параметр Запретить (но вы должны понимать, что это неподдерживаемая конфигурация).

В результате mstsc.exe просто не может записать информацию о RDP-соединении в реестр.

Как очистить кэш растровых изображений удаленного рабочего стола?

Клиент подключения к удаленному рабочему столу имеет функцию постоянного кэширования растровых изображений. RDP-клиент сохраняет редко меняющиеся фрагменты удаленного экрана в виде кэша растровых изображений. Благодаря этому клиент mstsc.exe загружает из кэша локального диска части экрана, которые не изменились с момента последнего рендеринга. Эта функция кэширования RDP уменьшает объем данных, передаваемых по сети.

Кэш RDP — это два типа файлов в каталоге

%LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache
  • *.bmc

  • мусорное ведро

В этих файлах хранятся необработанные растровые изображения экрана RDP в виде фрагментов размером 64×64 пикселя. Использование простых сценариев PowerShell или Python (которые легко найти по

RDP Cached Bitmap Extractor

запрос), вы можете получить файлы PNG с фрагментами экрана удаленного рабочего стола и использовать их для получения конфиденциальной информации. Размер тайлов небольшой, но достаточный, чтобы предоставить полезную информацию человеку, изучающему кэш RDP.

Вы можете запретить RDP-клиенту хранить кэш изображений экрана удаленного рабочего стола, отключив параметр Постоянное кэширование растровых изображений на вкладке Дополнительно.

Иногда при использовании RDP-кэша он может быть поврежден:

Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted.  Some bitmaps may not appear.

В этом случае вам необходимо очистить каталог кэша RDP или отключить опцию «Кэширование растровых изображений».

Очистка сохраненных учетных данных RDP

Если при установлении нового удаленного RDP-соединения перед вводом пароля пользователь отметит опцию Запомнить меня, то имя пользователя и пароль будут сохранены в диспетчере учетных данных Windows. При следующем подключении к тому же компьютеру клиент RDP автоматически использует ранее сохраненный пароль для аутентификации на удаленном хосте.

Вы можете удалить сохраненный пароль RDP непосредственно из окна mstsc.exe клиента. Выберите то же соединение из списка подключений и нажмите кнопку Удалить. Затем подтвердите удаление сохраненных учетных данных.

Подробнее о том, как работают сохраненные пароли по RDP, в статье по ссылке.

Альтернативно вы можете удалить сохраненный пароль RDP непосредственно из диспетчера учетных данных Windows. Перейдите в раздел Панель управления\Учетные записи пользователей\Диспетчер учетных данных. Выберите Управление учетными данными Windows и в списке сохраненных паролей найдите имя компьютера (в следующем формате

TERMSRV/192.168.1.100

). Разверните найденный элемент и нажмите кнопку Удалить.

В доменной среде Active Directory вы можете отключить сохранение паролей для RDP-соединений с помощью специального объекта групповой политики — Сетевой доступ: не разрешать хранение паролей и учетных данных для сетевой аутентификации (см. статью).

Удаление журналов событий, связанных с RDP, на удаленном хосте

Журналы подключений также сохраняются на стороне хоста RDP/RDS. Информацию об истории подключений RDP можно найти в журналах просмотра событий:

  • Безопасность;

  • Журналы приложений и служб -> Microsoft -> Windows -> TerminalServices-RemoteConnectionManager -> Operational;

  • TerminalServices-LocalSessionManager -> Администратор.

Подробнее об анализе логов RDP-соединений читайте в статье.

Вы можете очистить журналы событий на сервере RDP с помощью wevtutil или PowerShell.

Статьи по данной тематике