On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Утилиты для терминального сервера

В последнее время в компьютерном сообществе много говорят о достоинствах терминального сервера производства Microsoft, реализованного в виде серверных служб Windows 2000 Server Terminal Services. Чтобы понять, о чем собственно идет речь, необходимо в панели управления, Control Panel, запустить приложение Add/Remove Applications, а затем Add/Remove Programs. Теперь нужно выбрать Windows Setup для установки недостающих серверных служб и пролистать список доступных служб в поисках Terminal Services. Установив эту службу в режиме Application Server, следует перезагрузиться, и можно, наконец, приступать к работе.

Однако для того, чтобы обеспечить нормальную работу терминального сервера, недостаточно просто установить соответствующие службы. Нужно еще позаботиться об установке и поддержке клиентского программного обеспечения, регулярно просматривать информацию о текущих соединениях терминального сервера, добавить необходимые для повседневной работы приложения и выполнить тонкую настройку присоединенных пользователей. Кроме того, требуется организовать инвентаризацию настроек соединений клиентов для точного определения уровня административных полномочий над удаленными сессиями, а время от времени и манипулировать этими сессиями. Службы терминального сервера содержат набор утилит для решения всех вышеперечисленных задач. Часть набора хорошо знакома пользователям таких программных продуктов, как Citrix MetaFrame, WinFrame или же Windows NT Server 4.0 и Terminal Server Edition (WTS). Но тем, кто впервые имеет дело с терминальными службами для Windows 2000, лучше предварительно изучить их возможности.

Терминальные службы ровным счетом ничего не значат, если к серверу не присоединены терминальные клиенты. Большинство современных Windows-терминалов поддерживают протокол RDP, а обычные персональные компьютеры - нет, поэтому необходимо устанавливать специальное программное обеспечение для организации на станции клиента терминальной сессии. Администратор системы может воспользоваться утилитой Client Creator для создания набора установочных дискет клиента. Но я этого делать не рекомендую.

Вместо этого следует рассмотреть возможность организации сетевого каталога общего доступа и скопировать в него клиентские файлы. В каталоге сервера Windows 2000 - \%systemroot%\system32\ clients\tsclient\net - содержатся различные файлы для установки терминального клиента (на платформе Intel): NT Workstation и Windows 9x для этого выделен подкаталог Win32 и Windows 3.x - подкаталог Win16. При наличии в сети клиентов того и другого типа есть смысл предоставить сетевой доступ к каталогу верхнего уровня -tsclient\net. Если же клиенты однородны с точки зрения используемой операционной системы, то нужно обеспечить совместный доступ только к каталогу соответствующего типа. Для начала процесса установки следует отыскать в каталоге \%installation folder%\disks\disk1 программу setup.exe, запустить ее и указать установку RDP-клиента. Другой способ установки - разослать по корпоративной почте письмо с вложением содержимого каталогов соответствующего типа и инструкцией, что нужно делать (собственно, запустить программу setup.exe).

Займемся настройкой

После установки RDP-клиента компьютер готов к соединению с терминальным сервером, но сначала нужно сделать кое-что еще. Следует задать продолжительность сессии для соединения или пользователя; интервал, в течение которого сессия может простаивать, пока система не переведет ее в состояние disconnect; как долго сессия может находиться в состоянии disconnect перед тем, как будет закрыта; наконец, каким образом организовать удаленное управление пользовательской сессией. Администратор системы имеет возможность редактировать путь и файл профиля для каждого пользователя.

Рисунок 1. Соединения, поддерживаемые терминальным сервером.

Начнем с настроек соединения. В окне Terminal Services Configuration следует щелкнуть Connections для просмотра поддерживаемых терминальным сервером соединений в данный момент времени. Мы знаем, что информация, приведенная на Рисунке 1, относится только к работе терминальных служб, так как на правой панели появляются лишь иконки RDP-Tcp. При установке таких продуктов, как MetaFrame или Direct ICA, картина будет аналогичной. Открываем контекстное меню выбранного соединения RDP-Tcp. Появляется окно свойств соединения. В этом окне администратор может редактировать любые установки, указывая, надо ли переписывать аналогичные установки, выполненные пользователем.

Рисунок 2. Общие установки терминального сервера.

Окно настройки терминальных служб, Terminal Services Configuration, содержит и каталог настроек сервера, Server Settings (см. Рисунок 2). На правой панели перечислены установки, относящиеся ко всем сессиям терминального сервера, а не только к сессиям протокола RDP. В нашем случае эти установки полезны лишь отчасти. Например, для смены режима работы терминальных служб с Remote Administration на Application Server (и обратно) потребуется полная переустановка терминальных служб. Если администратор попытается поменять эти установки с помощью интерфейса Server Settings, откроется окно Windows Setup с предложением заново пройти все стадии установки терминального сервера. О соблюдении политики лицензирования в случае использования Internet Connector беспокоиться нечего: присоединяться к терминальному серверу могут одни лишь пользователи Internet, осуществляющие анонимный доступ. В большинстве случаев установки, принятые по умолчанию (т. е. некоторая комбинация установок, выбранная администратором системы при инсталляции терминальных служб, плюс некоторые общие установки) работают прекрасно. Исключение составляет лишь Active Desktop, которую я лично всегда отключаю.

Предпочтения пользователя

Рисунок 3. Настройки пользовательского соединения.

Если администратор системы решит задействовать для терминальных сессий файлы профилей и домашние каталоги, отличные от применяемых в локальной сети, он может задать их в окне свойств пользователя, что показано на Рисунке 3. Учетные записи терминальных пользователей могут быть заведены на сервере, который является членом домена. Тогда предпочтения пользователей задаются в пункте Local Users and Groups утилиты Computer Management (меню Administrative Tools). Если же учетная запись заведена на сервере - контроллере домена, то доступ к учетным записям пользователей и их настройкам осуществляется через утилиту Active Directory Users and Computers в том же меню. Как бы то ни было, с помощью и того и другого диалогового окна можно задать параметры настройки терминальной сессии. Функции удаленного управления, шифрования и другие, связанные с конкретным соединением, задаются и работают одинаково, вне зависимости от того, для сессии или конкретного пользователя они производятся.

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

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

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

Очевидно, что на терминальном сервере будут запускаться те или иные приложения. Это можно сделать двумя способами: через Control Panel Add/Remove Programs и через командную строку - по команде Change User. Обе утилиты переводят терминальный сервер в режим Install. При этом в системный реестр в ветвь HKEY_LOCAL_MACHINE вносятся некоторые изменения, связанные с устанавливаемыми параметрами. Программа инсталляции также копирует их в ветвь HKEY_CURRENT_ USER, когда пользователь запускает данное приложение в терминальном режиме на сервере, который находится в режиме Execute. (После установки приложения администратор системы должен щелкнуть мышью на кнопке Finish или же с командной строки ввести change user /execute для перевода сервера в режим Execute.)

Службы терминального сервера не предоставляют никаких других механизмов для управления процессом установки приложений. Если администратор попытается просто запустить программу установки setup.exe, система выдает сообщение, что для этой цели следует воспользоваться Add/Remove Programs, и предлагает ссылку. Когда используется Add/Remove Programs, приложение устанавливается в операционной системе Windows 2000 в многопользовательском режиме.

Утилита лицензирования, Terminal Services Licensing, предназначена для учета только терминальных сессий. Менеджер лицензирования нужно запустить, чтобы пользователи могли обращаться к терминальному серверу. Сама по себе эта программа вовсе не обязательно должна запускаться именно на терминальном сервере, ее можно установить на любой компьютер с Windows 2000 Server.

До сих пор я рассказывал о том, как работать с утилитами терминальных служб при создании клиентов, о настройке параметров соединения и пользователя, инсталляции приложений и лицензировании пользователей терминального сервера. Но что делать, если события станут развиваться не так, как предполагает администратор терминального сервера? В таком случае на помощь приходит менеджер Terminal Services Manager (см. Рисунок 4) из состава Windows 2000 Server. С его помощью администратор следит за использованием терминального сервера, проводит мониторинг запущенных на сервере приложений и проверяет статус соединений.

Рисунок 4. Terminal Services Manager.

В левой панели, представленной на Рисунке 4, показаны все домены сети и все терминальные серверы внутри доменов. (Чтобы обслуживать терминальный сервер, совсем необязательно находиться за консолью - достаточно запустить данное управляющее приложение и выполнять администрирование любого из найденных в сети серверов.) Что появится в правой панели, зависит от того, что выбрано в левой. Если указана вся сеть или какой-то конкретный домен, то в правой части отображаются все текущие соединения с терминальными серверами (и активные, и не обслуживаемые), с указанием имени хоста для каждого соединения. Если указан определенный сервер, то выводится список всех его соединений. При указании на пользовательское имя, правая панель позволяет увидеть все процессы, запущенные в контексте пользователя или же информацию о пользовательской сессии. Т. е. правая панель составлена из отдельных закладок, содержимое которых синхронизировано с выбранным в левой части объектом - доменом, сервером или пользователем.

Более важная задача - научиться работать с Terminal Services Manager. Рассмотрим для примера, как, используя Terminal Services Manager, установить, что запущено на терминальном сервере, послать пользователям сервера сообщения, принудительно завершить некоторые удаленные процессы и закрыть ряд пользовательских сессий.

Предположим, администратор системы решил выяснить, не играет ли кто-нибудь из сотрудников в TSQuake (терминальную версию популярной игры Quake). Он запускает Terminal Services Manager, выбирает домен или сервер, информацию о котором намеревается собрать. На правой панели выводится закладка со списком пользователей, зарегистрированных на данный момент на терминальном сервере, закладка с активными и отсоединенными сессиями и, наконец, закладка со списком запущенных на терминальном сервере процессов. Эта информация позволяет определить, какой пользователь и какой идентификатор процесса (PID) ассоциирован с какой сессией, а также насколько сервер занят обслуживанием данной сессии.

Если щелкнуть на закладке Processes, связанной с выбранным доменом, появится полный список всех запущенных в домене процессов с указанием серверов, на которых они работают, перечень всех сессий и пользователей - владельцев открытых сессий. Здесь также можно найти идентификаторы PID, которые понадобятся администратору в случае, если потребуется вручную завершить какие-то процессы с командной строки. Единственный способ сделать это - указать специфичную копию запущенного приложения, задав его PID.

Наконец, список играющих в TSQuake готов. Администратор дает пользователям понять, что ему известно, чем они занимаются. Например, он может послать им сообщение, даже между доменами, или посредством интерфейса Terminal Services Manager, или с командной строки. Для отправки сообщения при помощи оболочки Terminal Services Manager нужно выбрать терминальный сервер, затем указать пользователей, которым следует отослать сообщение, и, наконец, в меню Actions выбрать Send Message. Откроется окно, в котором набирается текст сообщения, нажимается ОК, и сообщение незамедлительно 'всплывает' перед участниками игры.

Терминатор

Но представим себе, что нашелся сотрудник, который попросту проигнорировал полученное сообщение. Самое время 'власть употребить' и принудительно снять запущенное приложение. Каждая копия TSQuake, которую закрывает администратор, будет тут же отключена безо всякого предупреждения.

Чтобы снять с выполнения на терминальном сервере одну-единственную копию запущенного приложения, нужно выбрать сервер или домен в левой панели и щелкнуть на закладке Processes в правой части. На экране появятся все работающие процессы. Выбрав процесс, в меню Action нужно открыть контекстное меню и указать End Process (единственный доступный пункт). Работа копии приложения будет незамедлительно прекращена.

Но вместо того, чтобы просто 'убить' приложение, можно подойти к делу более тонко: администратор в состоянии увидеть, чем же именно занят пользователь в данный момент. Скажем, если сотрудник утверждает, что у него и в мыслях не было в рабочее время запускать TSQuake, но он понятия не имеет, как после непреднамеренного запуска этой программы завершить ее работу, администратор может взять на себя полный контроль над сессией данного пользователя. Все, что в состоянии сделать пользователь со своей локальной рабочей станции (в рамках терминальной сессии), может сделать и системный администратор.

Важное замечание: захватить управление сессией терминального пользователя можно лишь из другой терминальной сессии, в которой применяется такой же протокол - другими словами, не удастся управлять сессией, обмен данными с которой осуществляется по протоколу ICA, из другой сессии, работающей по протоколу RDP. И наоборот, RDP-сессия не может управляться ICA-сессией. Кроме того, функция удаленного управления, реализованная в Terminal Services Manager, и соответствующая утилита командной строки непосредственно с консоли терминального сервера не работают. А значит, прежде чем организовать управление какой-либо терминальной сессией, администратор должен открыть новую терминальную сессию и зарегистрироваться на сервере с административными привилегиями. После этого необходимо запустить Terminal Services Manager, выбрать в левой панели сервер и открыть закладку Users со списком всех пользовательских сессий. Затем нужно отыскать сессию того пользователя, станцией которого требуется управлять в удаленном режиме, и выбрать Remote Control из меню Actions. В открывшемся окне будет предложено задать 'горячую' клавишу, при нажатии на которую перехват управления сессией данного пользователя будет завершен, и администратор сможет вернуться в свою 'родную' сессию.

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

Если администратор хочет завершить сессию целиком, а не только закрыть какое-то одно открытое в ней приложение, у него есть выбор - либо отсоединить сессию (disconnect), либо сбросить (reset) соединение окончательно. Отсоединение означает остановку работы сессии пользователя при сохранении в памяти терминального сервера всех запущенных пользовательских приложений и рабочих данных. Впоследствии пользователь сможет вновь присоединиться к покинутой им сессии и продолжить работу с того же самого места. В противоположность этому, сброс соединения означает закрытие всех открытых приложений. Понятно, что отсоединенные сессии все еще потребляют какие-то ресурсы системы, но существенно меньше, чем раньше, поскольку Windows 2000 Server фактически сбрасывает данные, к которым отсутствует обращение, на диск, а сессия не получает от пользователя на вход ничего нового. Сброшенные сессии не потребляют вовсе никаких системных ресурсов.

Для отсоединения или прекращения сессии с помощью интерфейса Terminal Services Manager нужно выбрать сессию в левой панели и указать либо Disconnect, либо Reset из меню Action. Появится окно с последним предупреждением перед выполнением запроса, нажимаем ОК.

Ясно, что данная статья не может претендовать на полноту изложения, но тем, кто совсем недавно начал знакомиться с серверными приложениями на базе Windows 2000, я надеюсь, она очень пригодится.



Литература по Windows 2000