В десктопных редакциях Windows есть ограничение на максимальное количество одновременных сетевых подключений с других компьютеров. Так, например Window 10 и 11 (независимо от редакции) поддерживают только 20 одновременных сессий. Если компьютер с Windows 10/11 используется в качестве файлового сервера, или сервера печати, то при превышении лимита TCP/IP сессий, 21 пользователь при подключении получит ошибку:
No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept.
Или:
Windows не удается подключиться к принтеру. Дополнительные подключения к этому удаленному компьютер сейчас невозможны, так как их число достигло предела.
В пользовательском лицензионном соглашении (EULA)Windows 10 указано, что к компьютеру смогут одновременно подключиться не более 20 устройств (CAL):
Подключение устройств. К программному обеспечению, установленному на лицензированном устройстве, могут иметь доступ до 20 других устройств в целях использования следующих функций программного обеспечения: файловых служб, служб печати, служб IIS и служб общего доступа к подключению Интернета, а также служб телефонии на лицензированном устройстве. Вы можете разрешить любому количеству устройств обращаться к программному обеспечению, установленному на лицензированном устройстве, для синхронизации данных между устройствами.
Таким образом Microsoft ограничивает возможно использования десктопных редакций Windows в качестве полноценного сервера. Если вам нужна поддержка большего количества клиентов, придется приобрести Windows Server (или перейти на samba)
Лимит на количество входящих сессий в Windows можно получить с помощью команды:
net config server
Текущий лимит:
Maximum Logged On Users 20
Например в Windows Server, максимально число подключений намного больше –
16777216
.
Также обратите внимание на значение параметра
Idle session time (min)
. По умолчанию компьютер будет отключать сессии неактивные более 15 минут.
Если вы хотите более агрессивно отключать неактивные сессии (например, уменьшив таймаут неактивности до 5 минут), выполните:
net config server /autodisconnect:5
Также при превышении количества одновременных подключений, вы можете отключить некоторые устройства вручную. Вывести список активных сетевых подключений к компьютеру:
net session
Отключить все активные сессии с компьютера (или IP адреса):
net session \\192.168.31.94 /d
Если при достижении максимального количества подключений вы хотите автоматически отключать определенных клиентов, можно воспользоваться PowerShell скриптом. Ниже приведен пример простого PowerShell скрипта, которые получает список активных сессий и при достижении 19 подключений, отключает 2 сессии с самыми большими таймаутами (но вы можете использовать свою логику).
$number_of_old_sessions_to_kill=2 $output = net session | Select-String -Pattern \\ $CurConns= ($output| Measure-Object -Line).Lines if ($CurConns -ge 19) { $sessions = @() $output | foreach { $parts = $_ -split "\s+", 4 $session= New-Object -Type PSObject -Property @{ Computer = $parts[0].ToString(); Username = $parts[1]; Opens = $parts[2]; IdleTime = $parts[3]; } $sessions += $session } $oldsessions=$sessions|Sort-Object -Property IdleTime -Descending | Select-Object -First $number_of_old_sessions_to_kill ForEach ($oldsession in $oldsessions) { net session $($oldsession.Computer) /d /y } }
Такой PowerShell скрипт можно запускать через планировщик Windows каждые n-минут, чтобы он отключал простаивающие сессии.
Для предыдущих версий Windows можно найти патчи для файла tcpip.sys, позволяющие отключить ограничение на количество сессий в десктопных редакциях Windows (по аналогии с библиотекой RDP Wrapper). Но для Windows 10 и 11 таких патчей я не втречал. В любом случае их использование будет нарушением лицензионного соглашения.
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM — будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
Самый верный вариант — установить серверную ревизию windows (дорого) либо (бесплатно) — linux с samba. Поднять в виртуалке особых проблем не составит.
p.s. можно попробовать windows сборку samba от cygwin, несколько лет назад читал про успешные поытки (даже рнешали проблемы с кирилицей)
сейчас возможно поможет wsl
Когда вам нужно расшарить куче народу папку с обычного рабочего компьютера — ваши проблемы только начинаются. Например, с бэкапом.
Правильное решение — завести сервер, на котором это добро будет лежать. Если нет конкретных привязок к инфраструктуре от M$ — лучше на Линуксе: будет и гибче, и надежнее.
webdav, ftp, http…
Пытаться расшарить папку на системе, предназначенной для игр и развлечений — верный путь к проблемам
На сайте c 14.06.2012 |
(Проблема с дистрибутивным рендером, пропадают текстуры) В связи с расширением сети возникла проблема: у винды есть ограничение на число одновременно подключенных к серверу пользователей — 10 юзеров. Вызываем команду «net config server» и видим вот такое: Нагуглил, что для решения это проблемы якобы надо установить специальную серверную винду, в которой этого ограничения нет. Я её поставил (Windows Server 2008 SP2), а ограничение всё-таки есть — как было 10, так и осталось. Скрины сделаны из неё. Параметр «Число одновременных пользователей» больше 10 увеличить невозможно. Возможно, что именно от этого я периодически имею серьёзную проблему с дистрибутивным рендером: несмотря на строго сетевые английские пути, пропадают текстуры, выпавшие бакеты идут даже по ирмапе. Причём машины, теряющие их, хаотично меняются. Время появления глюка тоже предугадать нельзя — то нормально, то начнёт глючить. Вирей народный 2.40.03, макс 2011, сеть гигабит, для общего доступа расшарен весь диск, а не отдельные папки. Самая жесть начинается, когда рендерят двое-трое и подключают по 7-10 машин. Также иногда некоторые юзеры не могут зайти на сервак, полагаю, по той же причине (10 подключений — максимум) Кто сталкивался с такой проблемой, рулит большой фермой, и может что-то подсказать, как разрулить ситуацию? Может я где-то ошибся и проблема не в винде? Ни у кого нет мыслей по этому поводу? |
На сайте c 14.06.2012 |
Тааак… это уже кое что. Попробую всё в папку затолкать и расшарить её, а не диск целиком. (странный ход, но вдруг поможет. Винда вобщем-то считает папкой и путь типа, С:\) UPD. Расшарил новую папку, чтобы проверить, в разрешения добавил всех, и всё равно не получается. Нет доступа до сервака у многих компов, просто открыть его не могут. |
На сайте c 31.03.2011 |
Yehat а сколько лицензий вирея есть в сети? до 3-й версии вирей под одной лицензией позволяет зацеплять не более 10 рендер нодов в дистрибьютед, а у 3-й версии все рендер ноды отдельных денег стоят и на каждую рабочую машину нужна своя лицензия, до 3-й версии можно было 1 лицензию установить на сколько угодно компов я в конторе когда работал у нас была своя ферма, там насколько я помню было то ли 40, то ли 60 серверов, так вот обычно просто через бэкбернер всегда использовали, а по дистрибьютеду как раз до 10 компов подцеплялось, ибо только одна флешка с ключем была куплена на офис |
На сайте c 14.06.2012 |
Лицензий вирея нет и об ограничении в 10 тачек мы знаем, больше 9 даже не берём. Купить — не вопрос, но ведь это не поможет, выпавшие бакеты это просто следствие. Главная проблема — со входом на сервак. Когда в сеть добавились тачки, добрая половина не может просто зайти на сервер по сети. Итак, решение найдено! Windows Server 2008R2 Standart не имеет такого ограничения (Datacenter edition имеет, энтерпрайз и вёб эдишн не проверял). Винда обязательно должна быть лицензионная. Если крякнуть — ставится ограничение на 10 подключений. Число одновременных юзеров по умолчанию 16777216. Спасибо всем за наводки и поддержку. PS: Лицензионная Win7 имеет ограничение в 20 одновременных подключений. Этого достаточно для небольшой сети. |
Удаленные пользователи могут подключаться к своим компьютерам Windows 10 через службу удаленных рабочих столов (RDP) в редакциях Pro и Enterprise (но не в Home/Single Language). Но есть ограничение на количество одновременных RDP сессии – допускается одновременная работа только одного удаленного пользователя. Если вы попробуете открыть вторую RDP сессию, появится предупреждение с запросом отключить сеанс первого пользователя.
Данная информация предназначена для услуг: VPS хостинг или Облачный хостинг
В систему вошел другой пользователь. Если вы продолжите, он будет отключен. Вы все равно хотите войти в систему?
В английской версии предупреждение такое:
Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?
Рассмотрим основные ограничения на использование службы удаленного рабочего стола в Windows 10 (и всех предыдущих десктопных версиях Windows):
- Вы можете удаленно подключиться через RDP только к старшим редакциям Windows (Professional и выше). В домашних редакциях (Home) RDP доступ заблокирован.
- Поддерживается только одно одновременное RDP подключение. При попытке запустить вторую RDP-сессию, пользователю предлагается завершить существующее подключение.
- Если пользователь работает за консолью компьютера (локально), то при удаленном подключении по RDP, его локальный сеанс будет отключен (заблокирован). Правильно и обратное утверждение: удаленный RDP сеанс принудительно завершается, если пользователь авторизуется на консоли системы.
Ограничение на количество одновременных RDP подключений является не техническим, а скорее лицензионным. Таким образом Microsoft запрещает создавать терминальный RDP сервер на базе рабочей станции для одновременной работы нескольких пользователей. Логика Microsoft проста: если вам нужен терминальный сервер — купите лицензию Windows Server, лицензии RDS CAL, установите и настройте роль Remote Desktop Session Host (RDSH).
Хотя с технической точки зрения любая редакция Windows при наличии достаточного количества оперативной памяти может обслуживать одновременную работу нескольких десятков удаленных пользователей. В среднем на одну RDP сессию пользователя без учета запускаемых приложений требуется 150-200 Мб памяти. Т.е. максимальное количество одновременных RDP сессий в теории ограничивается только ресурсами компьютера.
Мы рассмотрим два способа отключить ограничение на количество одновременных RDP подключений к Windows 10: с помощью приложения RDP Wrapper и с помощью правки файла termsrv.dll.
Важно. Изначально в самой первой версии статьи основным рабочим вариантом, позволяющим снять ограничение на количество одновременных RDP подключений пользователей в Windows был способ модификации и подмены файла termsrv.dll в папке %SystemRoot%\System32. Однако при установке нового билда Windows 10 или некоторых обновлений безопасности, этот файл обновляется.
В результате приходится каждый раз редактировать этот файл Hex редактором, что довольно утомительно. Поэтому в качестве основного способа организации бесплатного терминального сервера на клиентской Windows 10 стоит считать утилиту RDP Wrapper Library.
Примечание. Модификации системы, описанные в этой статье, считаются нарушением лицензионного соглашения Windows и вы можете выполнять их на свой страх и риск.
RDP Wrapper: разрешить несколько RDP сеансов в Windows 10
OpenSource проект RDP Wrapper Library позволяет включить конкурентные RDP сессии в Windows 10 без замены файла termsrv.dll. Эта программа работает в качестве прослойки между менеджером управления службами (SCM — Service Control Manager) и службой терминалов (Remote Desktop Services). RDPWrap позволяет включить не только поддержку нескольких одновременных RDP сессии, но и реализовать RDP сервер на домашних редакциях Windows 10. RDP Wrapper не вносит никаких изменений в файл termsrv.dll, просто подгружая termsrv с изменёнными параметрами.
Таким образом, RDPWrap будет работать даже при обновлении версии файла termsrv.dll, что позволяет не опасаться обновлений Windows.
Важно. Перед установкой RDP Wrapper важно убедится, чтобы у вас использовалась оригинальная (непропатченная) версия файл termsrv.dll. В противном случае RDP Wrapper может работать не стабильно, или вообще не запускаться.
Вы можете скачать RDP Wrapper из репозитория GitHub: https://github.com/binarymaster/rdpwrap/releases (последняя доступная версия RDP Wrapper Library v1.6.2). Судя по информации на странице разработчика, поддерживаются все версии Windows. Windows 10 поддерживается вплоть до 1809 (хотя в 1909 тоже все прекрасно работает, см. ниже).
Архив RDPWrap-v1.6.2.zip содержит несколько файлов:
- RDPWinst.exe —программа установки/удаления RDP Wrapper Library;
- RDPConf.exe — утилита настройки RDP Wrapper;
- RDPCheck.exe — Local RDP Checker — утилита проверки RDP;
- install.bat, uninstall.bat, update.bat — пакетные файлы для установки, удаления и обновления RDP Wrapper.
Чтобы установить RDPWrap, запустите файл install.bat
с правами администратора.
После окончания установки запустите RDPConfig.exe. Проверьте, что в секции Diagnostics все элементы окрашены в зеленый цвет.
Запустите RDPCheck.exe и попробуйте открыть вторую RDP сессию (или подключитесь несколькими сессиями RDP с удаленных компьютеров) Все получилось! Теперь ваша Windows 10 позволяет одновременно подключаться по RDP сразу двум удаленным пользователям.
Утилита RDPWrap поддерживается во редакциях Windows: Windows Vista, Windows 7, Windows 8, Windows 8.1 и Windows 10. Таким образом из любой клиентской версии Windows можно сделать сервер терминалов.
Также из интересных возможностей RDP Wrapper можно выделить:
- Опция Hide users on logon screen позволяет скрыть список пользователей на экране приветствия;
- При отключении опции Single session per user — будут разрешены несколько одновременных RDP сессий под одной учетной записью (устанавливается параметр реестра fSingleSessionPerUser = 0 в ветке HKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser).
- RDP Port — можно изменить номера порта удаленного рабочего стола со стандартного TCP 3389 на любой другой;
- В секции Session Shadowing Mode вы можете выбрать режим теневого подключения к рабочему столу пользователей Windows 10.
Не работает RDP Wrapper в Windows 10
Рассмотрим, что делать, если у вас в Windows 10 при установленной утилите RDP Wrapper не получается использовать несколько RDP подключений..
В моем случае утилита RDConfig в окне статуса показывала [not supported]. Проблема была в том, что на компьютере отсутствовал прямой доступ в Интернет и программа не смогла скачать с GitHub актуальную версию файла rdpwrap.ini с настройками для последних версий Windows (как вручную обновить rdpwrap.ini см. ниже).
Скачайте файл rdpwrap.ini с ресурса разработчика и поместите его в каталог установки (C:\Program Files\RDP Wrapper\rdpwrap.ini). Перезапустите службу TermService и убедитесь, что надпись [not supported] сменилась на [fully supported].
Чтобы заменить файл rdpwrap.ini:
- Остановите службу termservice:
get-service termservice|stop-service
- Замените файл rdpwrap.ini в каталоге C:\Program Files\RDP Wrapper\;
- Перезагрузите компьютер;
- После перезагрузки запустите RDPConf и убедитесь, что все статусы стали зелеными.
Если после установки обновлений безопасности или после апгрейда билда Windows 10, RDP Wrapper не работает, проверьте, возможно в секции Diagnostics присутствует надпись Listener state: Not listening.
Попробуйте обновить ini файл «C:\Program Files\RDP Wrapper\rdpwrap.ini» скриптом update.bat (либо вручную) и переустановить службу:
rdpwinst.exe -u
rdpwinst.exe -i
Бывает, что при попытке второго RDP подключения под другим пользователем у вас появляется надпись:
Число разрешенных подключений к этому компьютеру ограничено и все подключений уже используются. Попробуйте подключиться позже или обратитесь к системному администратору.
The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.
В этом случае нужно с помощью редактора групповых политики gpedit.msc в секции Конфигурация компьютера –> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения включить политику “Ограничить количество подключений” и изменить ее значение на 999999 (Computer Configuration -> Administrative Templates -> Windows Components ->Remote Desktop Services ->Remote Desktop Session Host -> Connections-> Limit number of connections).
Перезагрузите компьютер для применения настроек.
Модификация файла termsrv.dll для снятия ограничений RDP в Windows 10
Чтобы убрать ограничение на количество RDP подключений пользователей в Windows 10 без использования rdpwraper, можно заменить файл termsrv.dll. Это файл библиотеки, которая используется службой Remote Desktop Services. Файл находится в каталоге C:\Windows\System32.
Прежде, чем править или заменять файл termsrv.dll желательно создать его резервную копию. Это поможет вам в случае необходимости можно будет вернуться к исходной версии файла. Запустите командную строку с правами администратора и выполните команду:
copy c:\Windows\System32\termsrv.dll termsrv.dll_backup
Прежде чем править файл termsrv.dll, вам нужно стать его владельцем и предоставить группе администраторов полные права на него. Проще всего это сделать из командной строки. Чтобы сменить владельца файла с TrustedInstaller на группу локальных администраторов с помощью команды:
takeown /F c:\Windows\System32\termsrv.dll /A
Должно появится сообщение: «SUCCESS: The file (or folder): «c:\Windows\System32\termsrv.dll» now owned by the administrators group».
Теперь предоставим группе локальных администраторов полные права на файл termsrv.dll (Full Control):
icacls c:\Windows\System32\termsrv.dll /grant Administrators:F
(или Администраторы
в русской версии Windows). Должно появится сообщение: «processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files«.
Теперь нужно остановить службу Remote Desktop Service (TermService) из консоли services.msc или из командной строки:
Net stop TermService
Прежде чем идти дальше, вам нужно узнать вашу версию (билд) Windows 10. Проще всего это сделать с помощью следующей команды PowerShell:
Get-ComputerInfo | select WindowsProductName, WindowsVersion
В моем случае установлена Windows 10 билд 1909.
Затем откройте файл termsrv.dll с помощью любого HEX редактора (к примеру, Tiny Hexer). В зависимости от билда нужно найти и заменить строку:
Версия Windows 10 | Найти строку | Заменить на |
Windows 10 x64 1909 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 |
B8 00 01 00 00 89 81 38 06 00 00 90 |
Windows 10 x64 1903 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 | |
Windows 10 x64 1809 | 39 81 3C 06 00 00 0F 84 3B 2B 01 00 | |
Windows 10 x64 1803 | 8B 99 3C 06 00 00 8B B9 38 06 00 00 | |
Windows 10 x64 1709 | 39 81 3C 06 00 00 0F 84 B1 7D 02 00 |
Например, для самой первой редакции Windows 10 x64 RTM 10240 (версия файла termsrv.dll — 10.0.10240.16384) нужно открыть файл termsrv.dll в Tiny Hexer. Затем найдите строку:
39 81 3C 06 00 00 0F 84 73 42 02 00
И замените ее на:
B8 00 01 00 00 89 81 38 06 00 00 90
Сохраните файл и запустите службу TermService.
Готовый пропатченный файл termsrv.dll для Windows 10 Pro RTM x64 можно скачать здесь: termsrv_windows_10_x64_10240.zip
Если что-то пошло не так, и у вас возникнут проблемы со службой RDP, остановите службу и замените модифицированный файл termsrv.dll исходной версией:
copy termsrv.dll_backup c:\Windows\System32\termsrv.dll
Преимущество способа включения нескольких RDP сессий в Windows 10 путем замены файла termsrv.dll в том, что на него не реагируют антивирусы. В отличии от утилиты RDPWrap, которую многие антивирусов считают Malware/HackTool/Trojan. Основной недостаток — вам придется вручную править файл при каждом обновлении билда Windows 10 (или при обновлении версии файла termsrv.dll в рамках ежемесячных кумулятивных обновлений).