Ограничение на количество одновременных сетевых подключений в Windows 10 и 11

В десктопных редакциях 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 10

Или:

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

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

В пользовательском лицензионном соглашении (EULA)Windows 10 указано, что к компьютеру смогут одновременно подключиться не более 20 устройств (CAL):

Подключение устройств. К программному обеспечению, установленному на лицензированном устройстве, могут иметь доступ до 20 других устройств в целях использования следующих функций программного обеспечения: файловых служб, служб печати, служб IIS и служб общего доступа к подключению Интернета, а также служб телефонии на лицензированном устройстве. Вы можете разрешить любому количеству устройств обращаться к программному обеспечению, установленному на лицензированном устройстве, для синхронизации данных между устройствами.

Таким образом Microsoft ограничивает возможно использования десктопных редакций Windows в качестве полноценного сервера. Если вам нужна поддержка большего количества клиентов, придется приобрести Windows Server (или перейти на samba)

Лимит на количество входящих сессий в Windows можно получить с помощью команды:

net config server

net config server - максимальное количество подключений к компьютеру

Текущий лимит:

Maximum Logged On Users 20
Например в Windows Server, максимально число подключений намного больше – 16777216 .

Windows Server - лимит Maximum Logged On Users

Также обратите внимание на значение параметра Idle session time (min) . По умолчанию компьютер будет отключать сессии неактивные более 15 минут.

Если вы хотите более агрессивно отключать неактивные сессии (например, уменьшив таймаут неактивности до 5 минут), выполните:

net config server /autodisconnect:5

Также при превышении количества одновременных подключений, вы можете отключить некоторые устройства вручную. Вывести список активных сетевых подключений к компьютеру:

net session

Отключить все активные сессии с компьютера (или IP адреса):
net session \192.168.31.94 /d

net session - принудительно отключить все сессии с определенного компьютера

Если при достижении максимального количества подключений вы хотите автоматически отключать определенных клиентов, можно воспользоваться PowerShell скриптом. Ниже приведен пример простого PowerShell скрипта, которые получает список активных сессий и при достижении 19 подключений, отключает 2 сессии с самыми большими таймаутами (но вы можете использовать свою логику).

_x000D_$number_of_old_sessions_to_kill=2_x000D_$output = net session | Select-String -Pattern \_x000D_$CurConns= ($output| Measure-Object -Line).Lines_x000D_if ($CurConns -ge 19) {_x000D_ $sessions = @()_x000D_ $output | foreach {_x000D_ $parts = $_ -split "s+", 4_x000D_ $session= New-Object -Type PSObject -Property @{_x000D_ Computer = $parts[0].ToString();_x000D_ Username = $parts[1];_x000D_ Opens = $parts[2];_x000D_ IdleTime = $parts[3];_x000D_ }_x000D_ $sessions += $session_x000D_ }_x000D_ $oldsessions=$sessions|Sort-Object -Property IdleTime -Descending | Select-Object -First $number_of_old_sessions_to_kill_x000D_ ForEach ($oldsession in $oldsessions) {_x000D_ net session $($oldsession.Computer) /d /y_x000D_ }_x000D_}_x000D_

Такой PowerShell скрипт можно запускать через планировщик Windows каждые n-минут, чтобы он отключал простаивающие сессии.

PowerShell скрипт для автоматического отключений клиентов при превышении количество одновременных подключений

Для предыдущих версий Windows можно найти патчи для файла tcpip.sys, позволяющие отключить ограничение на количество сессий в десктопных редакциях Windows (по аналогии с библиотекой RDP Wrapper ). Но для Windows 10 и 11 таких патчей я не втречал. В любом случае их использование будет нарушением лицензионного соглашения.

EnglishRussianUkrainian