Декілька RDP сесій у windows. Як увімкнути кілька одночасних підключень віддаленого робочого столу або сесій у Windows XP

Як і в попередніх клієнтських версіях операційних систем Майкрософт, користувачі Pro та Enterprise Windows 10 редакцій можуть віддалено підключатися до своїх комп'ютерів через службу віддалених робочих столів (RDP). Однак є обмеження на кількість одночасних RDP сесій - можлива одночасна робота лише одного віддаленого користувача. При спробі відкрити другу сесію RDP, сеанс першого користувача пропонується завершити.

По суті, обмеження на кількість одночасних rdp підключень є не технічним, а скоріше ліцензійним, що забороняє створювати на базі робочої станції сервер RDP для роботи декількох користувачів.

Порада. У домашніх редакціях Windows 10 вхідні підключення до віддаленого робочого столу заборонені, що, втім, можна перемогти з допомогою RDP Wrapper Library .

Ми розглянемо два способи вимкнути обмеження кількості одночасних RDP підключень до Windows 10:

    RDP Wrapper Library

    Альтернативою модифікації файлу termsrv.dll є використання проекту RDP Wrapper Library. Ця програма працює як прошарок між менеджером управління службами (SCM-Service Control Manager) і службою терміналів (Terminal Services) і дозволяє включити не тільки підтримку кількох одночасних RDP сесії, але й активувати підтримку RDP Host на домашніх редакціях Windows 10. RDP Wrapper не вносить жодних змін до файлу termsrv.dll, просто підвантажуючи termsrv зі зміненими параметрами.

    Таким чином, це рішення буде працювати навіть при оновленні версії файлу termsrv.dll, що дозволяє не побоюватися оновлень Windows.

    Завантажити RDP Wrapper можна з репозиторію GitHub: https://github.com/binarymaster/rdpwrap/releases (остання доступна версія RDP Wrapper Library v1.6)

    Порада. До речі, доступні вихідники RDP Wrapper Library, що дозволяє при бажанні самому зібрати виконувані файли.

    Архів RDPWrap-v1.6.zip містить декілька файлів:

    • RDPWinst.exe — програма встановлення/видалення RDP Wrapper Library
    • RDPConf.exe - утиліта налаштування RDP Wrapper
    • RDPCheck.exe - Local RDP Checker - утиліта перевірки RDP
    • install.bat, uninstall.bat, update.bat — пакетні файли для встановлення, видалення та оновлення RDP Wrapper

    Щоб встановити утиліту, запустіть файл install.bat з правами адміністратора.

    Після закінчення установки запускаємо RDPConfig.exe. І засвідчуємо, що у секції Diagnosticsвсі елементи пофарбовані у зелений колір.

    Намагаємося відкрити другу RDP сесію. Все вийшло! Тепер наша Windows 10 дозволяє одночасно підключатися по RDP відразу двом віддаленим користувачам.

    Виправляємо недоліки RDP за допомогою RDP Wrapper Library

    Настільні операційні системи Microsoft мають деякі обмеження, пов'язані з роботою служби віддалених робочих столів. Так, по-перше, підтримка серверної частини (RDP Host) є лише у старших редакціях Windows (не нижче Professional). У домашніх редакціях цей функціонал вимкнено, тому підключитися до молодших версій Windows RDP неможливо.

    І по-друге, кількість паралельних RDP-сесій обмежена. Допускається лише одне одночасне підключення RDP, а при спробі відкрити другу RDP-сесію система видасть повідомлення про те, що в системі вже знаходиться один користувач і запропонує його викинути завершити його сеанс.

    Обійти ці обмеження дозволить проект RDP Wrapper Library by Stas'M. RDP Wrapper працює як прошарок між менеджером служб (Service Control Manager, SCM) та службою віддалених робочих столів. При цьому, на відміну від інших рішень такого роду, він не змінює файл termsrv.dll(Бібліотека, яка використовується Remote Desktop Services), що дозволяє не побоюватися оновлень Windows.

    Вітання. Як вам усім відомо, на клієнтських ОС від Microsoft можна одночасно працювати тільки одному користувачеві. Виявляється це в тому, що якщо ви підключаєтеся до віддаленого робочого столу, і вже є активний користувач, то вискакує попередження, що активного користувача буде вимкнено.

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

    Як це зробити на Windows 10, я сьогодні вам покажу.

    Тут можна заморочитися, і робити все вручну - правити реєстр, замінювати dll і т. д., але спосіб про який я розповідатиму набагато простіше. Є проект під назвою rdp wrapper, який дозволяє зробити термінальний сервер із Windows 10 буквально за 2 кліки. До речі, і на windows 7 і на windows 8 цей спосіб так само працює.

    Загалом качаємо архів, розпаковуємо його кудись, і запускаємо командний рядок від імені адміністратора.

    У ній переходимо до папки, куди було розпаковано архів (хто не в курсі - команда cd шлях\до\файлу

    І виконуємо команду install.bat

    Також в комплекті йде утиліта для зміни деяких налаштувань - RDPConf.exe.

    Тут можна звернути увагу на можливість легкої зміни порту, на якому висить наш rdp сервер, і ще кілька налаштувань, які можуть виявитися корисними.

    Тепер додамо додаткового користувача тесту. Тиснемо win+r (або правою кнопкою по пуску - виконати) і набираємо lusrmgr.msc. Заходимо до користувачів.

    Тиснемо дію новий користувач, даємо йому ім'я та пароль.

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


    У Windows 8/8.1, як і попередніх версіях клієнтських ОС Microsoft, підтримується тільки одне одночасне вхідне RDP-підключення. Це означає, що до комп'ютера Windows 8 через віддалений робочий стіл може одночасно підключитися лише один користувач (одна сесія), локальна або віддалена. Найчастіше цього достатньо, але іноді хотілося б мати можливість одночасної роботи відразу кількох користувачів у власних сесіях. Хорошим прикладом може бути комп'ютер у ролі Media Center, коли в консольній сесії відтворюється відео, і одночасно необхідно віддалено працювати з системою без переривання відео на TV.

    Порада.Віддалений RDP доступ не працює в домашніх редакціях Windows, потрібно редакції Pro або Enterprise.

    При спробі відкрити другу RDP сесію до комп'ютера з Windows 8, з'являється повідомлення про те, що вже в системі вже залогінений інший користувач і його сесія може бути завершена.

    Порада. Попередньо у властивостях комп'ютера на вкладці Віддалений доступ (Remote) потрібно додати облікові записи потрібних користувачів до локальної групи Remote Desktop Users. Локальним адміністраторам віддалений RDP доступ дозволено за умовчанням. Після ввімкнення RDP доступу до властивостей системи, Windows Firewall автоматично включає правила, що дозволяє вхідний трафік на порт 3389. Іноді наявність цього правила слід перевірити вручну.

    Так, наприклад, у серверній версії Windows підтримуються два одночасні адміністративні підключення з індивідуальними сесіями (у разі організації на базі Windows Server термінального сервера RDS, це число може бути ще більшим).

    Тим не менш, на просторах інтернету можна знайти спеціальний патч, що дозволяє оминути це обмеження. Завдяки цьому патчу кілька користувачів зможуть одночасно підключитися RDP до комп'ютера з Windows 8 / Windows 8.1.

    Важливо. Використання цього патча є порушенням ліцензійної угоди та умов використання продуктів Microsoft. Тому всі описані нижче операції ви виконуєте на свій ризик.

    Отже, патч передбачає заміну оригінального системного файлу %SystemRoot%\System32\termsrv.dll(Бібліотека, що використовується службою Remote Desktop Services).

    • Windows 8 – termsrv.dll-win8.zip
    • Windows 8.1 - termsrv.dll-win8.1.zip

    Перед заміною системної бібліотеки створимо резервну копію файлу termsrv.dll командою:

    Copy c:\Windows\System32\termsrv.dll termsrv.dll_old

    Тепер, якщо щось піде не так, завжди можна повернутися до початкової конфігурації, замінивши поточний файл на оригінальний termsrv.dll_old.

    Завантажте архів із бібліотекою для своєї версії Windows.

    У Windows 8 потрібно змінити значення наступних ключів у гілці реєстру HKLM\System\CurrentControlSet\Control\Terminal Server\:

    • fDenyTSConnections(DWORD) - 0 (ключ дозволяє на комп'ютері)
    • fSingleSessionPerUser(DWORD) - 0

    Цю ж операцію можна виконати з командного рядка:

    REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_D

    Потім переходимо до каталогу C:\Windows\System32, знаходимо файл termsrv.dllта відкриваємо його властивості.

    За замовчуванням, власник цього файлу є TrustedInstallerі навіть у адміністратора немає прав на його заміну.

    Перейдемо на вкладку Securityта натиснемо кнопку Edit. У списку доступу знайдіть групу локальних адміністраторів та надайте їй повні права на файл ( Full Control) та збережіть зміни.

    Наступний крок перед заміною файлу бібліотеки, відкрити консоль управління службами ( services.msc) та зупинити службу Remote Desktop Services.

    Скопіюємо файл 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 8.1/8 цей файл може бути замінений. Відповідно доведеться самостійно за допомогою HEX редактора патчити новий файл, або шукати в інтернеті готовий модифікований файл для вашого білда Windows.

    Як рішення, стійке до заміни файлу termsrv.dll при встановленні оновлень Windows, слід використовувати відкрите Open Source рішення RDP Wrapper Library(доступний на GitHub), яке не керує файлом termsrv.dll, і є прошарком між службою Terminal Services і SCM. Докладніше про використання RDP Wrapper Library можна почитати.

    Сервер терміналів Windows 7 / Vista / XP (sp1/sp2/sp3)- Реальне рішення. Термінальний сервердля підключення до віддаленого робочого столу Windows 7 / Vista / XP (sp1/sp2/sp3)одночасно кількох користувачів.

    Сервер терміналівможна використовувати для запуску однієї програми з віддалених комп'ютерів або до вашого термінальному серверу на Windows 7/XP / Vista/можна підключити одночасно різні старі комп'ютери типу 486 і Pentium 1, вони будуть працювати начебто на них встановлена ​​операційна система Windows Vista /7/XP з Office XP-2003-2007, 1Ста купою різних офісних програм.

    За замовчуванням Windows 7/Vista/XPне підтримує роботу одночасно кількох користувачів. Для того щоб дозволити кільком користувачам працювати одночасно по RDP, треба замінити файл C:\Windows\System32\termsrv.dll і внести зміни до реєстру - щоб прибрати обмеження накладене на Windows XP/7/Vista.

    Перед тим як вносити зміни до Windows 7 / Vista / XP, переконайтеся, що ваші дії не суперечать законодавству Вашої країни та ліцензійній угоді, тому використовувати метод чи ні вирішувати Вам.

    Як з Windows XP/7/Vista зробити термінальний сервер?

    1. Створіть кілька користувачів із правами адміністратора або звичайного користувача, обов'язково встановіть пароль.

    Переконайтеся, що включена опція - Швидке перемикання між користувачами (Панель управління -> Облікові записи користувачів -> Зміна входу користувачів до системи)

    2. Дозвольте віддалене підключення - виберіть "Мій комп'ютер", клацнувши правою кнопкою миші та відкрийте його "Властивості". У вікні зайдіть у вкладку «Видалені сеанси». Пункт «Дозволити віддалений доступ до цього комп'ютера» підтвердіть галочкою. Вибрати віддалених користувачів (інакше Remote Desktopбуде працювати тільки для адміністраторів) та натисніть «Ок»

    3. Переконайтеся, що підключення до віддаленого робочого столу працює для одного користувача.

    Робимо термінальний сервер Windows XP / 7 / Vista

    4. Завантажити універсальний патч для створення термінального сервера:
    -
    Windows XP SP2 SP3;
    - Windows Vista sp1 sp2;
    - Windows 7, 32bit(x86)/64bit(x64).

    5. Виконайте файл UniversalTermsrvPatch-*.exeякий відповідає розрядності Вашої системи та натисніть Patchдля заміни файл а C:\Windows\System32\termsrv.dll

    6. Виконайте файл *.reg який відповідає Вашій операційній системі для внесення змін до Реєстру

    7. Перевантажте операційну систему

    8. Пуск -> Виконати -> gpedit.msc

    Для Windows 7

    Конфігурація комп'ютера -> Адміністративні шаблони -> Компоненти Windows -> Служби дистанційних робочих столів -> Вузол сеансів видалених робочих столів -> Підключення ->

    Для Windows XP

    Конфігурація комп'ютера -> Адміністративні шаблони -> Компоненти Windows -> Сервер терміналів-> Обмежити кількість підключень

    Встановлюємо "Включено" та змінюємо значення кількості дозволених терміналів.

    9. Перезавантажте комп'ютер

    Якщо ви все виконали правильно, то термінальний сервер Windows 7 / Vista / XP (sp1/sp2/sp3)готовий. Тепер у вас має працювати віддалений робочий стіл одночасно для кількох користувачів.

    Додаткові налаштування термінального сервера Windows XP

    1. Як показує практика, користувачі термінального сервера просто відключаються, а програми працюють далі. Можна вказати час вимкнення неактивного сеансу

    Пуск -> Виконати -> gpedit.msc
    Конфігурація комп'ютера -> Адміністративні шаблони -> Компоненти Windows -> Сервер терміналів -> Сеанси -> Встановити обмеження часу для вимкнених сеансів

    Включити та вказати час

    Також там є інші обмеження, можете вибирати як Вам подобатися

    2. Запуск однієї програми для всіх віддалених користувачів термінального сервера без робочого столу

    Пуск -> Виконати -> gpedit.msc
    Конфігурація комп'ютера -> Адміністративні шаблони -> Компоненти Windows -> Сервер терміналів ->Запускати програму під час підключення

    увімкнути
    \Bkc.RemoteClient.exe

    Вказати робочу папку
    C:\Program Files\Банкомзв'язок\Віддалений клієнт спостереження

    3. Запуск однієї програми для вибраних користувачів термінального сервера без робочого столу(Увага, діє навіть якщо зайти локально, так що я навіть не знаю як це скасувати потім, хіба що видалити користувача, а потім створити нового або за допомогою завантажувального диска liveCD, (програмою ERD-commander) з вибором завантаження реєстру потрібної нам операційної системи .

    Пуск -> Виконати ->regedit

    Створити рядковий параметр Shell та у полі "Значення" вказати повний шлях до файлу програми

    4. Запуск однієї програми самостійно користувачем термінального сервера без робочого столу

    Для початку виконати п.2 для всіх користувачів , перевантажитись і потім повернути значення як було (Не заданий)

    У налаштуваннях клієнта Windows (Підключення до віддаленого робочого столу) з якого підключаємось, у Параметрах у вкладці Програми ставимо галочку "При підключенні запускати наступну програму"

    Вказати повний шлях до програми та ім'я файлу

    Вказати робочу папку
    C:\Program Files\Банкомзв'язок\Віддалений клієнт спостереження

    5. Запуск програми при вході до системи на робочий стіл

    Додати ярлик до папки Автозавантаження
    C:\Documents and Settings\ім'я_користувача\Головне меню\Програми\Автозавантаження\