Проблема:
Имеется Microsoft Windows Small Business Server 2003 x86 Service Pack 2 Rus.
Как известно, Microsoft накладывает ограничения на использование этого сервера в качестве сервера терминалов:
В Windows Small Business Server 2003 доступен только удаленный рабочий стол для администрирования сервера. Только этот режим доступен, так как Windows Small Business Server 2003 всегда выполняется на контроллере домена, и при запуске сервера терминалов на контроллере домена безопасности сервера и безопасность конфиденциальных данных организации могут быть подвержены излишнему риску.
Из-за этого ограничения, число одновременно подключенных терминальных пользователей не превышает двух:
При этом режим работы сервера "Для удаленного администрирования" сменить не удается, поскольку в SBS это не предусмотрено:
В апплете "Установка и удаление программ" пункт "Сервер терминалов отсутствует".
Решение:
Для снятия ограничений на количество терминальных подключений, необходимо просто изменить несколько байтов в файле "termsrv.dll", который лежит в папке "%systemroot%\system32".
Для SBS 2003 SP2 x86 Rus, "termsrv.dll" версии 5.2.3790.3959:
0002A894: 8B 31
0002A895: FF C0
0002A896: 55 C2
0002A897: 8B 04
0002A898: EC 00
Утилита WinHex поможет в поиске и исправлении нужных байтов.
Внимание!
Целостность %systemroot%\system32\termsrv.dll защищается системой, поэтому последовательность действий должна быть примерно такой:
-
Копируем "%systemroot%\system32\termsrv.dll" во временное место, например, в папку "C:\Temp\"
-
Патчим "C:\Temp\termsrv.dll"
-
Копируем с заменой пропатченный "C:\Temp\termsrv.dll" в папку "%systemroot%\system32\dllcache\"
Код: Выделить всё
copy C:\Temp\termsrv.dll %systemroot%\system32\dllcache /y
-
Копируем с заменой пропатченный "C:\Temp\termsrv.dll" во все места, где имеется "termsrv.dll", кроме "%systemroot%\system32\", поскольку он открыт и не заменится
Код: Выделить всё
copy C:\Temp\termsrv.dll %systemroot%\ServicePackFiles\i386 /y
-
Переименовываем "%systemroot%\system32\termsrv.dll", например "termsrv.dll.orig"
Код: Выделить всё
ren %systemroot%\system32\termsrv.dll termsrv.dll.orig
-
Копируем на его место пропатченный "C:\Temp\termsrv.dll"
Код: Выделить всё
copy C:\Temp\termsrv.dll %systemroot%\system32 /y
-
Перезагружаемся
Обратите внимание!
Несмотря на то, что после этих манипуляций ограничения на количества терминальных сессий снимаются:
Тем не менее, в апплете "Настройка служб терминалов" режим лицензирования так и остается в режиме "Удаленный рабочий стол для администрирования", а в свойствах подключения RDP-TCP максимальное число подключений остается равным двум. Не обращаем на это внимания и пользуемся сервером терминалов с неограниченным числом подключений.
Дополнения:
-
Чтобы снять ограничения на подключение только администраторов запускаем Пуск - Панель управления - Администрирование - Настройка служб терминалов - Подключения - RDP_TCP"
Код: Выделить всё
tscc.msc /s
на вкладке "Разрешения" добавляем кого нужно, например группу "Пользователи удаленного рабочего стола" с необходимым уровнем доступа:
И не забываем добавить нужных пользователей в группу безопасности "Пользователи удаленного рабочего стола"
-
Если очередное обновление Windows заменит пропатченный "termsrv.dll", то будет необходимо провести всю процедуру заново
-
Пропатченный "termsrv.dll" версии 5.2.3790.3959 для SBS 2003 SP2 x86 Rus можно скачать отсюда:
-
Командный файл, копирующий и заменяющий оригинальный termsrv.dll пропатченным берем здесь:
Его необходимо запускать из той же папки, где лежит пропатченный termsrv.dll