В ОС Windows 8 / 8.1, як і попередніх версіях клієнтських ОС Microsoft, підтримується тільки одне одночасне входить RDP-підключення. Це означає що до комп’ютера Windows 8 через віддалений робочий стіл може одночасно підключитися тільки один користувач (одна сесія), локальна або віддалена. У більшості випадків цього достатньо, але іноді хотілося б мати можливість одночасної роботи відразу декількох користувачів у власних сесіях. Хорошим прикладом може бути комп’ютер в ролі Media Center, коли в консольної сесії відтворюється відео, і одночасно необхідно віддалено попрацювати з системою без переривання відео на TV.
Порада. Віддалений RDP доступ не працює в домашніх (Home) редакціях Windows, потрібно редакції Pro або Enterprise.
При спробі відкрити другу RDP-сесію до комп’ютера з Windows 8, з’являється повідомлення про те, що вже в системі вже залягання інший користувач і його сесія може бути завершена.
Увійшов інший користувач. Якщо продовжити, їх буде відключено.
Так, наприклад, в серверній версії Windows підтримуються два одночасних адміністративних підключення до індивідуальних сесіями (в разі організації на базі Windows Server термінального сервера RDS, це число може бути ще більшим).
Проте, на просторах інтернету можна знайти спеціальний патч, що дозволяє обійти це обмеження. Завдяки цьому патч кілька користувачів зможуть одночасно підключитися по RDP до комп’ютера з Windows 8 / Windows 8.1.
важливо. Використання даного патча, по суті, є порушенням ліцензійної угоди і умов використання продуктів Microsoft. Тому всі описані нижче операції ви виконуєте на свій ризик.
Отже, патч передбачає собою заміну оригінального системного файлу % SystemRoot% System32 termsrv.dll (Бібліотека, яка використовується службою Remote Desktop Services).
Посилання на модифіковану версію бібліотеку termsrv.dll:
Перед заміною системної бібліотеки створимо резервну копію файлу termsrv.dll командою:
copy c:WindowsSystem32termsrv.dll termsrv.dll_old
Тепер, якщо щось піде не так, завжди можна повернутися до початкової конфігурації, замінивши поточний файл оригінальним termsrv.dll_old.
Скачайте архів з бібліотекою для своєї версії Windows.
У Windows 8 попередньо потрібно змінити значення наступних ключів в гілці реєстру HKLM System CurrentControlSet Control Terminal Server :
Цю ж операцію можна виконати з командного рядка:
REG ADD "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
Потім переходимо в каталог C: Windows System32, Знаходимо файл termsrv.dll і відкриваємо його властивості.
За замовчуванням, власником цього файлу є TrustedInstaller і навіть у адміністратора немає прав на його заміну.
Перейдемо на вкладку Безпека і натиснемо кнопку Редагувати. У списку доступу знайдіть групу локальних адміністраторів і надайте їй повні права на файл (Повний контроль) І збережіть зміни.
Наступний крок перед заміною файлу бібліотеки, відкрити консоль управління службами (services.msc) І зупинити службу Послуги віддаленого робочого столу.
Скопіюємо файл termsrv.dll з завантаженого архіву для своєї версії Windows в каталог % SystemRoot% System32 (З заміною).
Примітка. Архів для Windows 8.1 містить два файли 32_termsrv.dll і 64_termsrv.dll, Для 32-х і 64-х бітної версії Windows 8.1 відповідно. Розпакуйте архів і перейменуйте файл для своєї версії системи в termsrv.dll
Після заміни файлу запустіть службу Remote Desktop Services і спробуйте створити дві RDP сесії з пропатченний машиною під різними обліковими записами. Якщо ви все зробили правильно, повинні відкритися дві незалежні сесії віддалених робочих столів.
Порада. Можливо буде потрібно перезавантаження комп’ютера.
В якості вирішення, стійкого до заміни файлу termsrv.dll при установці оновлень Windows, слід використовувати відкрите Open Source рішення Бібліотека обгортки RDP (Доступний на GitHub), яка не править файл termsrv.dll, і є прошарком між службою Terminal Services і SCM. Детальніше про використання RDP Wrapper Library можна почитати тут.