Терминальный сервер (Windows XP, Windows 7 и 8)

iStock_Netzwerk_AufmacherВопрос «как сэкономить на терминальном сервере?» может показаться при первом рассмотрении весьма глупым. Берем что-нибудь из linux и делаем все не только экономно, но даже и совсем бесплатно.

К сожаленью, все еще существуют производители ПО поддерживающие исключительно Микрософт. Например, распространеннейший бухгалтерский комплекс 1С имеет полноценного «толстого» клиентатолько под Windows. Тогда берем, например, какую-нибудь Windows Professional правим\windows\system32\termsrv.dll и снимаем ограничение на одновременное подключение нескольких пользователей.

Для XP SP2 меняются байты:

128BB:    74    75
217D3:    33    8B
217D4:    C0    C7
2192D:    33    8B
2192E:    C0    C7
225B7:    20    54
Для XP SP3:

22A17:    75    74
22A69:    90    7F
22A6A:    90    16

В реестр вносятся изменения:

HKLM\SYSTEM\ControlSet\Control\Terminal Server\Licensing Core
EnableConcurrentSessions REG_DWORD = 1

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
AllowMultipleTSSessions REG_DWORD = 1

Со вторым параметром в домене возникает проблема — сбрасывается при загрузке системы. Поэтому нужно принять меры для его восстановления.

Для Windows 7 SP1 32bit байты будут меняться следующим образом:

19153:    B8    3B
19154:    00    86
19155:    01    20
19156:    00    03
19158:    90    00
19159:    89    0F
1915A:    86    84
1915B:    20    FF
1915C:    03    14
1915D:    00    01
1989D:    90    43
655E5:    E9    74
655E6:    2C    2F
655E7:    00    68
655E8:    00    88
655E9:    00    62

64 битная XP была редкостью из-за большого количества криво написанных драйверов и еще большего количества их полного отсутствия. С семеркой в этом плане полный порядок, учитывая 64 битность всего современного аппаратного обеспечения, дешевизну памяти и стабильность ОС ее можно смело рекомендовать на роль терминального сервера.

Байты для Windows 7 SP1 64bit:

17384:    B8    8B
17385:    00    87
17386:    01    38
17387:    00    06
17389:    90    00
1738A:    89    39
1738C:    38    3C
17390:    90    0F
17391:    90    84
17392:    90    5E
17393:    90    C3
17394:    90    00
17395:    90    00
176E2:    00    01
5A8AE:    EB    74

В реестре ничего менять не надо.

Да, чтобы не забыть, первый столбец это изменное состояние, второй — первично-оригинальное.

Но вот появились, в последнее время, такие, про которых и говорить даже не хочется. Но скажу. Так вот они, эти самые, хотят терминальный сервер на Windows и дешево и чтобы все было по лицензии. Обычно на эти наглые выпады предлагю купить Windows Server и называю его цену (+ CAL + RD CAL). Действует безотказно, когда клиент приходит в себя он становится гораздо сговорчивее и про лицензионность уже не заговаривает.

Недавно нашел компромиссный вариант: умеренно дорого (от $50 до $75 за пользователя или устройство), лицензионно и функционально. Называется SysElegance Application Server. Впрочем кто такой мне SysElegance и почему это я буду про него писать? Ведь это бесплатная реклама с моей стороны, да еще и коммерческого продукта. Люди зарабатывают себе деньги, а я их рекламирую — непорядок. Ну раз уж начал и только коротко.

Application Server позволяет совершенно лицензионно превратить машину под управлением Windows XP или 7 в терминальный сервер, даже Home версии. Чтобы все было кошерно, для подключения по протоколу RDP к Windows нам нужны Client Access License (CAL) и Remote Desktop Client Access License (RDCAL).

И XP и 7 (в т.ч. и Home) включают в себя от 5 до 20 CAL, для подключения к ним по сети через SMB протокол. Посмотреть количество CAL для данной копии можно через net config server — параметрMaximum Logged On Users. А как же быть с RDCAL — они в случае SysElegance не нужны. Если терминальный доступ полностью реализован средствами сторонних разработчиков , то в этом случае приобретать данные лицензии не требуется.

Windows 8 termsrv.dll build 8102, 8250, 8400

HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\Control\Terminal

Server fDenyTSConnections (dword) = 0

fSingleSessionPerUser (dword) = 0

32-bit

Original: 3B 86 20 03 00 00 0F 84 ?? ?? ?? ??

Patched: B8 00 01 00 00 90 89 86 20 03 00 00

64-bit

Original: 8B 87 38 06 00 00 39 87 3C 06 00 00 0F 84 ?? ?? ?? ??

Patched: B8 00 01 00 00 89 87 38 06 00 00 90 90 90 90 90 90 90

Windows 8.1 64 bit termsrv.dll

Original: 8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 ?? ?? ?? ??

Patched: B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90

Windows 8.1 32 bit termsrv.dll

Original: 3B 81 20 03 00 00 0F 84 ?? ?? ?? ??

Patched: B8 00 01 00 00 90 89 81 20 03 00 00

Наиважнейшее замечание: Нужно патчить файл не только в папке C:\Windows\System32, но и в c:\Windows\WinSxS\x86_microsoft-windows-t..teconnectionmanager_31bf3856ad364e35_6.3.9600.17095_none_23351a336fe50414\
(папка определяется поиском termsrv.dll)

По материалам сайта http://adminland.ru

О Admin
IT-Специалист

Вы должны авторизоваться для добавления комментариев..