Очищення історії RDP підключень в Windows

RDP клієнт в Windows (mstsc.exe) при кожному успішному з'єднанні з віддаленим комп'ютером зберігає в системі його ім'я (або ip адреса) і ім'я користувача, під яким був виконаний вхід. При наступному запуску клієнт RDP пропонує користувачеві вибрати одне з підключень, якими він вже користувався раніше. Користувач може вибрати зі списку ім'я віддаленого rdp сервера, і клієнт автоматично підставляє використовується раніше для входу ім'я користувача.

Це зручно з точки зору кінцевого користувача, однак несекьюрно з точки зору безпеки, особливо коли rdp з'єднання ініціюється з загальнодоступного або недовірених комп'ютера.

Інформація про термінальних сесіях зберігається індивідуально для кожного користувача комп'ютера в його профілі, тобто користувач (мається на увазі пересічний користувач, а не адміністратор) не зможе переглянути історію підключень іншого користувача.

У цій статті ми покажемо, де в Windows зберігається історія підключень до віддалених робочих столів і збережені паролі, і яким чином можна цю історію очистити.

зміст:

  • Видалення журналу RDP підключень з реєстру системи
  • Очищення історії (логів) RDP підключень за допомогою скрипта
  • Видалення збережених RDP паролів

Видалення журналу RDP підключень з реєстру системи

Інформація про всіх RDP підключених зберігається в реєстрі кожного користувача. Видалити комп'ютер (и) зі списку історії rdp підключень штатними засобами Windows не вийде, доведеться вручну видаляти ключі в системному реєстрі.

  1. Відкрийте редактор реєстру regedit.exe і перейдіть в гілку HKEY_CURRENT_USER \ Software \ Microsoft \ Terminal Server Client
  2. Нас цікавлять дві подветкой: Default (Зберігає історію про 10 останніх rdp підключених) і Servers (Містить список всіх rdp серверів і імен користувачів, які використовуються раніше для входу)
  3. Розгорнемо гілку реєстру HKEY_CURRENT_USER \ Software \ Microsoft \ Terminal Server Client \Default, в якій міститься список 10 адрес або імен віддалених комп'ютерів, які використовувалися останніми (MRU - Most Recently Used). Ім'я (ip адреса) термінального сервера зберігається в значенні ключа MRU *. Щоб очистити історію останніх rdp-з'єднань, виділіть всі ключі з іменами MRU0-MRU9, клацніть правою клавішею і виберіть пункт Delete.
  4. Розгорнемо далі гілку HKEY_CURRENT_USER \ Software \ Microsoft \ Terminal Server Client \Servers. У ній міститься список всіх RDC (remote desktop client) з'єднань, які колись встановлювалися з даного комп'ютера. Якщо розгорнути гілку з ім'ям (ip адресою) будь-якого сервера, то в ключі UsernameHint (Підказка імені користувача) можна побачити ім'я користувача, під яким здійснювалося rdp з'єднання.
  5. Щоб очистити історію всіх rdp-підключень і збережених імен користувачів необхідно очистити вміст гілки реєстру Servers. Оскільки виділити все гілки не вийде, найпростіше видалити цілком Servers гілку, а потім перебудувати її вручну.
  6. Крім зазначених ключів реєстру, необхідно видалити файл дефолтного rdp підключення Default.rdp (Містить інформацію про самому останньому rdp підключенні. Файл є прихованим і знаходиться в каталозі Documents (Документи).
Примітка. Описана методика очищення історії термінальних rdp підключень працює як на всіх версіях Windows XP, Vista, Windows 7, Windows 8 (як включити rdp в Windows 8) і Windows 10, так і серверних платформах Windows Server 2003/2008/2012/2016.

Очищення історії (логів) RDP підключень за допомогою скрипта

Вище ми розібрали методику "ручний" очищення історії з'єднань. Однак робити це вручну (особливо на декількох комп'ютерах) - заняття досить довгий. Тому ми пропонуємо невеликий скрипт (bat-файл), який дозволяє автоматично очищати історію підключень до віддалених робочих столів.

Для автоматизації очищення історії rdp, даний скрипт можна помістити в автозавантаження, або поширити його на комп'ютери користувачів за допомогою групової політики.

@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 "cd% userprofile% \ documents \ attrib Default.rdp -s -h del Default.rdp

Послідовно розберемо всі дії скрипта:

  1. Відключаємо висновок інформації в консоль
  2. Видаляємо все значення в гілці HKCU \ Software \ Microsoft \ Terminal Server Client \ Default (очищаємо список останніх rdp з'єднань)
  3. Видаляємо весь вміст гілки HKCU \ Software \ Microsoft \ Terminal Server Client \ Servers (очищення історії rdp підключень і збережених імен користувачів)
  4. Перетворюємо віддалену раніше гілку
  5. Переходимо в каталог з файлом Default.rdp. Відзначимо, що в даному випадку шлях до папки "Документи" буде відрізнятися в залежності від версії і мови Windows. В даному прикладі вказано шлях для Windows 7 En, для XP RUS - він буде виглядати cd% userprofile% \ "Мої документи", для XP ENG - cd% userprofile% \ "My Documents" і т.д.
  6. Міняємо атрибути файлу Default.rdp - за замовчуванням він є системним і прихованим (як відобразити приховані файли в Windows)
  7. Видаляємо файл Default.rdp

Завантажити готовий скрипт можна тут: CleanRDPHistory.bat

Крім того, очистити історію підключень 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
$ Docsfoldes = [environment] :: getfolderpath ( "mydocuments") + '\ Default.rdp'
remove-item $ docsfoldes -Force 2> & 1 | Out-Null

Примітка. До речі, функція очищення логів RDC вбудована в багато "чистильники" системи і реєстру, такі як, CCCleaner і т.д.

У тому випадку, якщо в Windows необхідно повністю заблокувати ведення історії підключень віддаленого робочого столу, можна спробувати заборонити системі запис в дану гілку реєстру (але, варто розуміти, що це вже unsupported configuration ...).

Видалення збережених RDP паролів

У тому випадку, якщо при установці віддаленого RDP підключення, перед введенням пароля користувач поставив галку Remember Me / Запам'ятати мене, то ім'я користувача і пароль будуть збережені в системному менеджері паролів системи (Credential Manager). При наступному підключенні до цього ж комп'ютера, RDP клієнт автоматично використовує збережений раніше пароль для авторизації на віддаленому комп'ютері.

Видалити цей пароль можна прямо з вікна клієнта mstsc.exe. Виберіть зі списку з'єднань теж саме підключення, і натисніть на кнопку Delete. Далі підтвердіть видалення збереженого пароля.

Або можна видалити збережений пароль безпосередньо з менеджера паролів Windows. Відкрийте в панель управління і перейдіть в розділ Control Panel \ User Accounts \ Credential Manager. Виберіть Manage Windows Credentials і в списку збережених паролів знайдіть ім'я комп'ютера (в форматі TERMSRV / 192.168.1.100). Розгорніть знайдений елемент і натисніть на кнопку Remove.

У доменній середовищі заборонити збереження паролів для RDP підключень можна за допомогою політики Network access: Do not allow storage of passwords and credentials for network authentication (Див. Статтю).