Страница 1 из 1

Сервер терминалов на MS Windows SBS 2003

СообщениеДобавлено: 21 май 2012 12:16, Пн
UncleFather
Проблема:

Имеется Microsoft Windows Small Business Server 2003 x86 Service Pack 2 Rus.

Как известно, Microsoft накладывает ограничения на использование этого сервера в качестве сервера терминалов:
В Windows Small Business Server 2003 доступен только удаленный рабочий стол для администрирования сервера. Только этот режим доступен, так как Windows Small Business Server 2003 всегда выполняется на контроллере домена, и при запуске сервера терминалов на контроллере домена безопасности сервера и безопасность конфиденциальных данных организации могут быть подвержены излишнему риску.


Из-за этого ограничения, число одновременно подключенных терминальных пользователей не превышает двух:
02.jpg
RDP-TCP


При этом режим работы сервера "Для удаленного администрирования" сменить не удается, поскольку в SBS это не предусмотрено:
01.jpg
Режим лицензирования


В апплете "Установка и удаление программ" пункт "Сервер терминалов отсутствует".


Решение:

Для снятия ограничений на количество терминальных подключений, необходимо просто изменить несколько байтов в файле "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 защищается системой, поэтому последовательность действий должна быть примерно такой:

  1. Копируем "%systemroot%\system32\termsrv.dll" во временное место, например, в папку "C:\Temp\"

  2. Патчим "C:\Temp\termsrv.dll"

  3. Копируем с заменой пропатченный "C:\Temp\termsrv.dll" в папку "%systemroot%\system32\dllcache\"
    Код: Выделить всё
    copy C:\Temp\termsrv.dll %systemroot%\system32\dllcache /y


  4. Копируем с заменой пропатченный "C:\Temp\termsrv.dll" во все места, где имеется "termsrv.dll", кроме "%systemroot%\system32\", поскольку он открыт и не заменится
    Код: Выделить всё
    copy C:\Temp\termsrv.dll %systemroot%\ServicePackFiles\i386 /y


  5. Переименовываем "%systemroot%\system32\termsrv.dll", например "termsrv.dll.orig"
    Код: Выделить всё
    ren %systemroot%\system32\termsrv.dll termsrv.dll.orig


  6. Копируем на его место пропатченный "C:\Temp\termsrv.dll"
    Код: Выделить всё
    copy C:\Temp\termsrv.dll %systemroot%\system32 /y


  7. Перезагружаемся

Обратите внимание!

Несмотря на то, что после этих манипуляций ограничения на количества терминальных сессий снимаются:
03.JPG
Диспетчер служб терминалов


Тем не менее, в апплете "Настройка служб терминалов" режим лицензирования так и остается в режиме "Удаленный рабочий стол для администрирования", а в свойствах подключения RDP-TCP максимальное число подключений остается равным двум. Не обращаем на это внимания и пользуемся сервером терминалов с неограниченным числом подключений.


Дополнения:

  • Чтобы снять ограничения на подключение только администраторов запускаем Пуск - Панель управления - Администрирование - Настройка служб терминалов - Подключения - RDP_TCP"
    Код: Выделить всё
    tscc.msc /s

    на вкладке "Разрешения" добавляем кого нужно, например группу "Пользователи удаленного рабочего стола" с необходимым уровнем доступа:
    04.JPG
    Права доступа


    И не забываем добавить нужных пользователей в группу безопасности "Пользователи удаленного рабочего стола"

  • Если очередное обновление Windows заменит пропатченный "termsrv.dll", то будет необходимо провести всю процедуру заново

  • Пропатченный "termsrv.dll" версии 5.2.3790.3959 для SBS 2003 SP2 x86 Rus можно скачать отсюда:
    termsrv.rar
    termsrv.dll
    (111.44 КБ) Скачиваний: 598


  • Командный файл, копирующий и заменяющий оригинальный termsrv.dll пропатченным берем здесь:
    CopyTermSrv.rar
    CopyTermsrv
    (744 байт) Скачиваний: 496

    Его необходимо запускать из той же папки, где лежит пропатченный termsrv.dll