Службы терминалов в Windows NT.
1. Немного истории.
Было время, когда компьютеры были большими (mainframe), их было мало, и работать на на них в одиночку было непростительной роскошью. Вот и придумали подключать к такому компьютеру модули, состоящие из дисплея, клавиатуры и устройства связи, через которые на одном большом компьютере работало одновременно несколько пользователей. Назвали такие модули терминалами. Но развитие персональных компьютеров (IBM PC) привело к появлению среди них особо мощных экземпляров - серверов, которым стало под силу выдержать одновременную работу нескольких пользователей. Технология оказалась востребованной, и, соответственно, поддержка терминального доступа появилась уже в первых "сетевых" версиях Windows - Windows NT.
2. Суть вопроса.
Основная идея терминального доступа - работа удалённого пользователя на мощном сервере по сети, используя в качестве терминала любой (даже очень слабый в вычислительном смысле) компьютер. Количество одновременно работающих пользователей ограничено только вычислительной мощностью сервера и пропускной способностью сети. При этом ВСЯ вычислительная работа происходит на сервере, компьютер-клиент всего лишь выполняет функции подключенных к серверу дисплея с клавиатурой. Т.е. служба терминалов позволяет организовать работу на одном сервере нескольких пользователей, каждого со своими клавиатурой и дисплеем и разнести этих пользователей территориально.
Зачем это нужно? Допустим, есть сеть из 20 полностью устаревших машин; значительно дешевле обойдётся покупка одного сервера и "поднятие" службы терминалов, чем покупка 20 рабочих станций
3. Общие требования.
Для организации работы терминального доступа необходимо:
- мощный сервер (конкретные цифры - далее);
- серверная ОС с поддержкой режима разделения времени и служб терминалов (например, Windows NT Server);
- клиенсткие устройства (компьютеры) с программой-клиентом службы терминалов;
- сеть, по которой возможно соединение клиентов с сервером.
В общем, требования к серверу - вычислительная мощность (мощный процессор, желательно не один) и оперативная память. Требования к клиентам - наличие сети и требования работающей на компьютере-клиенте ОС. Как уже стало понятно, в качестве серверной ОС со службой терминалов будем использовать Windows NT Server (Windows 2000 Server, или, что предпочтительнее, Windows 2003 Server), в качестве клиентской ОС - любую 32-разрядную Windows (начиная с 95-й).
4. Конкретные требования (цифры).
а) требования к серверу терминалов.
Ну, во-первых, это процессор. Лучше - процессоры. Требования к процессору определяются исходя из задач, которые решают пользователи. Если это работа в Word'е - то 3 ГГц процессора хватит на полсотни пользователей, а если задачи математического плана (вычисления, моделирование,обработка мультимедиа, и т.д.) - то чем больше, тем лучше (ибо и на 5-7 пользователей с такими задачами любого топового процессора еле хватит).
Во-вторых - ОЗУ. Идеология Windows NT состоит в строгом разделении адресных пространств, и как следствие, в хранении копий загруженных системных библиотек в памяти КАЖДОГО пользователя. И вообще Windows NT любит оперативу. Для нормальной работы самой Windows Server 2003 необходимо 128 Мб памяти, с сервером терминалов - 160 Мб. И это без единого пользователя. Каждых пользователь без охочих до памяти приложений требует ещё 100 Мб памяти. Итого, для нормальной работы 10 пользователей нужно не менее 1 Гб опреративы. Если клиентов больше, или их программы жрут память (фотошопы там всякие - прибавляйте требования к памяти этих программ или пользователей (по 100 Мб на нос).
И в-третьих, сеть. Если клиентов не очень много (ну, до полусотни), то обычной 100 Мбит/сек сетки на свичах хватит, а если больше (под сотню и выше) - без гигабитного канала хотя бы от сервера до свича не обойтись.
б) требования к клиенту терминалов.
Как было сказано выше, клиент - комп с Windows. Так вот требования к нему - чтоб эта сама Windows запустилась и мог запуститься клиент службы терминалов. Сети хватит 10 Мбит/сек. Как показал опыт, комп Р1 с 16 Мб памяти, сетью 10 Мбит/сек и Win98 - нормальный клиент терминалов. Хотя можно и лучше
5. Ставим!
В Windows NT есть 2 типа служб терминалов - для администрирования и собственно, служба терминалов. Для первого типа устанавливать ничего не нужно - администратор (я имею ввиду права) может подключиться к серверу удалённо, но количество таких "админских" подключений ограничено двумя. Поэтому будем рассматривать второй тип, как нам интересный. Итак, ставим.
Идём Start -> Control Panel -> Add or remove programs -> Install Windows Components (Пуск -> Панель управления -> Установка и удаление программ -> Установка компонентов Windows). Ставим галочки (если не стоят) напротив Terminal Services и Terminal Services Licensing (Службы терминалов и Лицензирование служб терминалов). ОК, перезагрузка. Start -> Run (Пуск -> Выполнить) -> services.msc и включаем (запуск=авто) службы Terminal Services, Terminal Services Licensing, Secondary Logon (Службы терминалов, Лицензирование служб терминалов и Вторичный вход в систему). Start -> Run (Пуск -> Выполнить) -> compmgmt.msc и добавляем пользователей (если аккаунтов нет - создать), которым хотим предоставить терминальный доступ, в группу Remote Desktop Users. Копируем в каталог (например Term_client) 2 файла из %SYSTEMROOT%\system32 - mstscax.dll и mstsc.exe и раздаём этот каталог клиентам. Всё, можно работать.
6. Нюансы
Всё, да не совсем всё. Установленная служба терминалов проработает пару месяцев - и скажет покупайте лицензии. Решения 2: простое - убить на машине-клиенте ветвь реестра (для убития этой ветки реестра нужны права админа) [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing] и получить ещё 2 месяца работы, потом повторять каждые 2 месяца, и сложное (описано на Ру-борде, ищите на winextreme или в Варезнике). Меня лично устраивает первый вариант, особенно потому, что клиенты - Win98 и юзеры сами тыкают на ярлычок, удаляющий вышеупомянутую ветку.
Второе (не совсем по теме, но интересно). В бета-версиях второго сервиспака к ХР присутствовала возможность подключаться одному админу к работающей машине ХР через терминал, но в релизе это "пофиксили". Поскольку сделано это было на скорую руку, "вернуть" эту возможность несложно, для этого есть патч, возвращающий эту иногда полезную возможность.
Комментарии, отзывы, дополнения приветствуются. О недостойных проявлениях личерства просьба сообщать в ПМ.