Полное руководство по терминальным службам Windows Server 2003

         

Отказоустойчивость


Отказоустойчивоть — Способность системы продолжать функционировать в случае сбоя одного из ее компонентов.

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

Отказоусточивость сервера - Этот уровень определяет способность продолжать поддерживать пользователей в случае потери одного из серверов. Для этого определите число необходимых серверов и добавьте еще один - запасной.

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

В большинстве случаев нет необходимости поддерживать отказоустойчивость для всех пользователей, достаточно только для критических. Для принятия правильного решения вам необходимо собрать адекватные данные.

Допустим, есть 1200 критических пользователей. Для обеспечения отказоустойчивости сервера, это число пользователей требуют 4 сервера, каждый из которых может поддерживать 400 пользователей. В обычных условиях на каждом сервере по 300 пользователей, но в случае поломки сервера остальные серверы способны вынести нагрузку. Для обеспечения отказоустойчивости метоположения с 4 серверами в двух зданиях, вам потребуется 6 х 400 серверов. Если здание 1 будет недоступным, три сервера в здании 2 продолжат поддерживать пользователей.

(Прим. перев.: наверное, навеяно событиями 11 сентября)

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

После того, как вы определились с количеством серверов, вам нужен способ распределения сеансов пользователей по серверам. Мы подошли к расределению нагрузки.



Отображение файлов INI


До Windows 95 все настройки системы и приложений хранились в файлах INI (инициализационных файлах). Старые приложения до сих пор их используют. В отличие от реестра, который отделяет пользовательские настройки от машинных, файлы INI являются глобальными, поэтому изменения, сделанные одним пользователем, затрагивают всех пользователей на терминальном сервере. Кроме того, большинство терминальных серверов настроены так, что обычные пользователи не имеют достаточных прав для изменения этих системных файлов, поэтому приложения, использующие файлы, не будут работать в пользовательском контексте.

Для компенсации такого поведения, Terminal Services создает копии системных файлов INI и сохраняет их в домашнем каталоге каждого пользователя. Если приложение пытается читать или записать в системный файл INI, Terminal Services переадресуют вызов на пользовательскую копию вместо оригинала.

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



Отображение реестра


Реестр Windows разделен на два основных раздела: HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. HKEY_LOCAL_MACHINE используется для хранения глобальной конфигурационной информации = такой, как сетевые настройки, аппаратная конфигурация, настройки программного обеспечения, одинаковые для всех пользователей. HKEY_CURRENT_USER хранит пользовательские настройки, например, косметические настройки, предпочтения пользователя, пользовательские настройки приложений. Каждый пользователь, зарегистрировавшийся в Windows, имеет свой собственный узел HKEY_CURRENT_USER.



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

Если приложение использует службу Windows Installer, приложение может использовать advertising для создания ключей HKEY_CURRENT_USER. Если такое приложение запускается из меню Start, то запускается служба Windows Installer и делает пользовательскую подстройку приложения. При этом создаются все необходимые ключи и специфические для пользователя файлы, необходимые для приложения.

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

Чтобы гарантировать, что все пользователи получат правильные значения реестра, Terminal Services использует процесс, называемый отображением реестра (registry mapping). При инсталляции приложения, терминальный сервер переводится в режим инсталляции. В этом режиме сервер наблюдает за всеми изменениями, вносимыми программой установки в HKEY_CURRENT_USER. Как показано на следующем рисунке, все ключи, которые записываются в HKEY_CURRENT_USER, автоматически копируются в особое место в HKEY_LOCAL_MACHINE - в подключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software

.

Отображение реестра работает только в том случае, если программа для записи в реестр использует стандартные вызовы API. Всегда проверяйте реестр после установки приложения и до первого его запуска, чтобы убедиться, что зеркало создано. Если нет, вам следует вручную скопировать ключи.

По завершении установки приложения сервер переводится в режим исполнения. В этом режиме, если приложение пытается прочитать ключ реестра из HKEY_CURRENT_USER, а ключа там нет, система автоматически проверит, есть ли такой ключ в подключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software. Если он там найден, то система скопирует его в HKEY_CURRENT_USER.



Память


Когда RAM была более дорогой, она часто была ограничивающим фактором в масштабировании терминальных серверов. Сегодня не редкость встретить терминальные серверы с 4Гб памяти - достаточно для поддержки сотен пользовательских сеансов. Объем памяти на сервере чаще ограничивается операционной системой и аппаратурой сервера, чем бюджетом.

В первую очередь вам необходимо учесть ограничения материнской платы и BIOS. Также примите во внимание число доступных слотов памяти. На максимальный объем памяти влияет также редакция WS2K3:

Редакция

Максимум RAM

Максимальное число процессоров

Standard Edition

4GB

4

Enterprise Edition (32-bit)

32GB

8

Datacenter Edition (32 bit)

64GB

32

Перед тем, как устанавливать в сервер память, необходимо определить, сколько ее нужно для ваших пользователей. Для этого есть несколько ресурсов, которые помогут вам оценить требуемый объем RAM:

Windows 2000 Terminal Services Capacity and Scaling

The HP ProLiant Sizer for Citrix MetaFrame XP and Windows Server 2003 Terminal Services

Microsoft рекомендует начать отсчет памяти с 128MB RAM для ОС. После этого определите тип работы, которая будет осуществляться на терминальном сервере. Пользователей можно разбить на три категории:

Обычные пользователи - обычно выполняют одновременно только одно приложение. Их работа обычно связана с набором текста (обработка жалоб, прием заказов или служба работы с покупателями).

Опытные пользователи - Используют одновременно несколько приложений, переключаясь между ними. В основном, это администраторы, менеджеры, аналитики.

Ввод данных - пользователи вводят данные в компьютер, например, переводчики, клерки службы обработки заказов и т.п.

Определив типы пользователей, вы можете оценить объем требуемой памяти, воспользовавшись следующей таблицей:

Тип пользователя

Объем памяти

Системная память

Обычный пользователь

9.3MB

128MB

Опытный пользователь

8.5MB

128MB

Ввод данных

3.5MB

128MB

Hewlett Packard рекомендует увеличить объем памяти, если используются 16-разрядные приложения. 16-разрядные приложения требуют дополнительной памяти - на 25% больше, чем 32-разрядные.



Параметры командной строки клиента Remote Desktop Client


MSTSC [<Connection File>][/v:<server[:port]>] [/console] [[/f[ullscreen]|[/w:<width> /h:<height>]]|[/Edit”connection file”][/Migrate]

где:

<Connection File> - файл RDP для соединения

/v:<server[:port]> - имя сервера или его адрес IP, а также номер порта

/console - подключение к консольному сеансу WS2K3

/f[ullscreen] - запуск клиента в полноэкранном режиме

/w:<width> /h:<height> - задает высоту и ширину окна соединения

/edit - открывает файл RDP для редактирования

/Migrate - миграция старых соединений Client Connection Manager из реестра в файлы RDP



Перезагрузка терминальных серверов


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

Вы можете использовать GPO и для деинсталляции программ. Подробнее см. книгу Darren MarElia’s The Definitive Guide to Windows 2000 Group Policy (http://www.realtimepublishers.com)

Существуют также системы управления программным обеспечением, позволяющие устанавливать программы по расписанию и не требующие перезагрузки. К ним относятся Microsoft Systems Management Server и компонент Installation Manager в Citrix MetaFrame XPe.



Порядок обработки политик


Очень важен порядок применения объектов GPO. Поскольку для данного пользователя или компьютера у вас может быть несколько политик, в конечном счете эффект настроек определяет результирующий набор политик (Resultant Set of Policy). Чтобы определить конечные настройки, которые применяются к пользователям, вы должны просмотреть все GPO, которые применяются к этому пользователю. GPO применяются в фиксированном порядке: локальные, сайтовые, доменные, OU. Машинные и пользовательские настройки применяются раздельно, хотя они оба идут из одного GPO.

Для понимания порядка обработки GPO, давайте взглянем на инфраструктуру теоретического домена и проследим применение политик. На рисунке показан примерный домен и его GPO. Для простоты я применил только по одному GPO на каждом уровне. В большинстве случаев у вас будет одновременно несколько GPO на уровнях сайта, домена и OU. Эти GPO будут обрабатываться все, чтобы получить Результирующий набор политик.

Начнем с обрабоки GPO при загрузке компьютера computer1. Во время загрузки настройки безопасности применяются к этому компьютеру в следующем порядке:

Local — Применяются настройки Computer Configuration из локальной политики cComputer1 Local Policy.

Site — Применяются настройки Computer Configuration из USA Site Policy.

Domain — Применяются настройки Computer Configuration из Domain Policy.

OU — Применяются настройки Computer Configuration из Workstation OU Policy. Политики OU определяются OU, в которой находится объект. В нашем случае computer1 находится в OU "Workstations", поэтому обрабатываются политики, связанные с этой OU.

Теперь, когда computer1 имеет полную конфигурацию, заставим на нем зарегистрроваться пользователя Greg, чтобы обработались политики User Configuration:

Local — Применяются настройки User Configuration из Computer1 Local Policy

Site — Применяются настройки User Configuration из USA Site Policy

Domain — Применяются настройки User Configuration из Domain Policy

OU — Применяются настройки User Configuration из Users OU Policy для OU "Users". В стандартном режиме обработки, Грег всегда получит свою конфигурацию User Configuration из политики, независимо от того, в какой OU находится компьютер, на котором он регистрируется.

В стандартном режиме обработки, поскольку в OU "Workstation" нет пользователей, политика User Configuration из Workstation OU Policy никогда не применяется. Кроме того, в стандартном режиме обработки, Грег получит одинаковый результирующий набор пользовательских политик независимо от того, на каком компьютере он регистрируется. Эта особенность важна в больших доменах со множеством рабочих станций, где Грег может использовать компьютеры из других OU. Однако, если вы хотите, чтобы Грег получил более ограничительную политику при регистрации на некотором компьютере (например, на терминальном сервере), вам необходимо реализовать обратную обработку политик.



Практика защиты от вирусов


Защита от вирусов - это последняя линия обороны от вредоносного кода. Вы можете создать фильтры в корпоративной почтовой системе, использовать почтового клиента типа Microsoft Outlook 2002, который блокирует все исполняемые прикрепления, установить строгие правила брэндмауэров и прокси-серверов на соединениях с Интернет. Тем не менее, вирусы всегда находят способ проникнуть в вашу систему.

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

В следующем списке содержатся практические рекомендации по применению и настройке антивирусного ПО:

Выбирайте продукт, предлагающий обновление своей базы данных вирусов без перезагрузки сервера

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

Многие антивирусы размещают свою иконку на панели задач. Проконсультировавшись с продавцом, уберите иконку из системного трея (обычно удалением из ключа HKEY_LOCAL_MACHINE\Software\Micrrosoft\Windows\CurrentVersion\Run). Это уменьшит нагрузку на сервер, вызванную программой, выполняемой в каждом пользовательском сеансе.

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



B: Важные ссылки


Windows Server 2003 Terminal Services Technology Center

http://www.microsoft.com/windowsserver2003/technologies/terminalservices/default.mspx

Microsoft TechNet: Terminal Services

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/technologies/terminal/default.asp

Terminal Server Sizing Sample Scripts

http://www.microsoft.com/windows2000/techinfo/administration/terminal/loadscripts.asp

Windows Server 2003 Terminal Server Licensing

http://www.microsoft.com/windowsserver2003/techinfo/overview/termservlic.mspx

Terminal Services Client Access License Activation Web site

https://activate.microsoft.com

Software Update Services (SUS)

http://www.microsoft.com/windows2000/windowsupdate/sus/default.asp



С: Изменения в реестре


Список изменений в реестре из главы 2.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Policies\Explorer]

"LinkResolveIgnoreLinkInfo"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]

"IdleWinStationPoolCount"=dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserOverride\Control Panel\Desktop]

"AutoEndTasks"="1"

"CursorBlinkRate"="-1"

"DragFullWindows"="0"

"MenuShowDelay"="10"

"WaitToKillAppTimeout"="20000"

"SmoothScroll"=dword:00000000

"Wallpaper"="(none)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserOverride\Control Panel\Desktop\WindowMetrics]

"MinAnimate"="0"



Пользователь Joe User имеет домашний


Пользователь Joe User имеет домашний каталог, определенный в его учетной записи \\Server01\Home\Joe.User. При входе на терминальный сервер, буква H отображается на \\Server01\Home. В сеансе Джо, переменная %HOMEDRIVE% имеет значение H, а переменная %HOMEPATH% - значение \Joe.User.
Джо использует приложение, которое позволяет ему использовать персональные шаблоны для его документов, и есть ключ реестра, который определяет путь к этим шаблонам. Реестр не может ссылаться на переменные окружения, а только на аболютные маршруты, поэтому мы не можем использовать %HOMEDRIVE%%HOMEPATH%. Если мы попытаемся использовать H для UserTemplates, шаблоны Джо будут создаваться в корне домашней папки, а не в его каталоге.
Если администратор использовал ROOTDRV2.CMD для установки переменной ROOTDRIVE в W, то USRLOGON.CMD использует команду SUBST для отображения W на %HOMEDRIVE%%HOMESHARE% или H:\Joe.User. Теперь путь W:\ является ссылкой на H:\Joe.User, и значения реестра могут ссылаться на W:\, если им необходим доступ к домашнему каталогу Джо. Кроме того, этот путь может использоваться для размещения его файлов шаблонов.

Небольшая среда (театр)


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

Инфраструктура состоит из 9 тонких клиентов, используемых сотрудниками театра, терминального сервера и персонального брэндмауэра, подключенного к линии DSL. Пользователи подключаются к терминальному серверу и получают в свое распоряжение полный рабочий стол со всеми необходимыми установленными приложениями. Они сохраняют документы в своих папках My Documents на терминальном сервере и имеют доступ к общей папке для общих документов. Эта папка также находится на терминальном сервере. Профили пользователей, общая папка и система резервируются по ночам, в 1 час, на внешний жесткий диск, подключенный к серверу.

Давид хочет иметь надежную и безопасную сеть, поэтому он применил следующие меры защиты:

Брэндмауэр настроен на использование NAT и блокирует входящие запросы. Это позволяет персоналу ходить по Web, но предотвращает проникновение червей из Интернет.

Весь персонал театра на терминальном сервере находится в группе Limited Users. Это предотвращает установку нежелательных компонентов ActiveX, но не применяет к ним Internet Explorer Enhanced Security Configuration, поэтому они могут ходить по Интернет и не получать предупреждающих сообщений.

Клиент Automatic Updates настроен на автоматическую загрузку и установку критических обновлений от Microsoft по ночам, в 4 часа. Разрешена автоматическая перезагрузка.

На сервере установлено антивирусное ПО и настроено на загрузку обновлений с сервера производителя каждую ночь в 3 часа.

Есть только один сервер, поэтому Давид устанавливает сервис-паки и заплаты вручную.



У Jane Doe нет сетевого


У Jane Doe нет сетевого домашнего каталога, поэтому ее шаблоны должны храниться в ее профиле. В сеансе Джейн, переменная %HOMEDRIVE% указывает на C, а %HOMEPATH% указывает на \WTSRV\Profiles\Jane.Doe. Опять, мы не можем использовать переменные окружения в ключах реестра, поэтому у нас нет легкого способа сылаться на каталог профиля Джейн.
Администратор установил в скрипте ROOTDRIVE=W:, поэтому USRLOGON.CMD подключает W напрямую к каталогу профиля Jane, и мы можеи использовать в реестре W:\.
В примере с Джо пришлось использовать обходной путь, поскольку NT 4.0 не может отображать сетевой драйв на подкаталог папки общего доступа, поэтому
Net Use H: \\Server01\Share\Directory
подключит H к \\Server01\Share. Но WS2K3 может отображать подкаталог, что позволяет использовать домашний каталог в ROOTDRIVE.
Однако, без модификации USRLOGON.CMD всегда сбрасывает текущее значение ROOTDRIVE перед выполнением команды SUBST, поэтому он не получает преимущества от расширенных возможностей переназначения драйвов в WS2K3. Зачем нужны оба драйва, которые указывают на один и тот же каталог? Лучше изменить USRLOGON.CMD так, чтобы он использовал преимущества WS2K3.
Подробнее о ROOTDRIVE см. статью Microsoft “How and why ROOTDRIVE is used on Windows Terminal Server”
Допустим, вы используете сетевые домашние каталоги и назначили их на драйв H. Если вы установили ROOTDRIVE тоже на H, то вы можете избежать назначения двух драйвов. Ниже показаны изменения, которые вы можете сделать в USRLOGON.CMD (изменения выделены красным)
Cd /d %SystemRoot%\"Application Compatibility Scripts"Call RootDrv.CmdIf "A%RootDrive%A" == "AA" goto doneREM If the user has a network Home Directory already mapped REM on the ROOTDRIVE, we do not need to do anything.if /I "%rootdrive%" == "%homedrive%"        goto NoSubst:DoSubstNet Use %RootDrive% /D >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%"if ERRORLEVEL 1 goto SubstErrgoto AfterSubst:SubstErrSubst %RootDrive% /d >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%":AfterSubst
:NoSubst
Если вы не инсталлируете приложения, требующие скриптов совместимости, то ROOTDRIVE никогда не будет создан, а процесс входа существенно упростится.
После установки ROOTDRIVE, скрипт USRLOGON.CMD вызывает любые установленные скрипты совместимости:
Rem Invoke each Application Script.  Application Scripts are automaticallyRem added to UsrLogn2.Cmd when the Installation script is run.Rem If Not Exist %SystemRoot%\System32\UsrLogn2.Cmd Goto Cont1Cd LogonCall %SystemRoot%\System32\UsrLogn2.Cmd:Cont1:Done
При установке скрипта совместимости, его вызов добавляется в USRLOGN2.CMD, чтобы все скрипты совместимости могли вызываться без модификации USRLOGON.CMD.

BigBusiness, Inc.


BigBusiness, Inc - средняя компания с числом служащих около 2000. Из-за разнообразия задач каждый пользователь имеет рабочую станцию Windows XP с локально установленными приложениями. Есть два критических приложения, требующих частого обновления и доступа к большим базам пользовательских данных.

Для оптимизации производительности и упрощения развертывания обновлений приложения, персонал службы автоматизации BigBusiness создал ферму каталога сеансов и разместил два при приложения на терминальных серверах. Пользователи обращаются к приложению посредством веб-страницы Remote Desktop Web Connection, которая подключает пользователей к отпределенному приложению, а не к рабочему столу сервера.

Персонал службы автоматизации BigBusiness настроили следующую конфигурацию:

Корпоративный брэндмауэр блокирует весь входящий траффик на терминальные серверы

Все пользователи находятся в группе Limited Users, для всех пользователей разрешено Internet Explorer Enhanced Security Configuration. Поскольку пользователи на терминальном сервере не имеют доступа к IE, эту конфигурацию можно разрешить, не влияя на работу пользователей.

На всех терминальных серверах установлено антивирусное ПО и настроено на загрузку обновлений с локального сайта FTP. Обновления антивируса сначала проверяются в лабораторной среде, а затем выгружаются на FTP.

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

Рабочие серверы разбиты на группы. Каждый день вечером для каждой группы серверов запускается скрипт, запрещающий новые логины. Ночью клиент Automatic Updates для каждой группы загружает обновления с рабочего сервера SUS и выполняет перезагрузку. В течении недели все серверы получают новые обновления.

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

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



Пример из реального мира


Давайте рассмотрим пример приложения, требующего модификации для использования на терминальном сервере. Допустим, ваша компания использует некую программу, называемую WorkGroup, для управления проектами. Эта программа использует базу данных SQL для хранения описаний проекта, сроков, замечаний членов проекта и пр. Вы хотите инсталлировать WorkGroup на ваш терминальный сервер, чтобы позволить пользователям запускать его через веб-браузеры (используя клиент Remote Desktop Web connection).

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

Начните с мастера Add New Programs для запуска SETUP.EXE для установки WorkGroup. инсталлятор не требует перезагрузки, поэтому немедленно запустите regedit и поищите в HKEY_LOCAL_MACHINE\SOFTWARE абсолютные маршруты в ключе WorkGroup:

В ключе Paths вы обнаружили размещение базы данных SQL, которая является общей для всех пользователей, поэтому она не будет представлять проблем для Terminal Services. Однако, в SpellCheck вы нашли значение, которое может создать проблемы - DictionaryPath. После внимательного изучения, это значение выглядит как файл словаря, который совместно используется всеми пользователями. На всякий случай запишите на бумаге значение этого ключа.

Затем поищите аналогичные значения в HKEY_CURRENT_USER\Software. Здесь вы находите еще один ключ SpellCheck, который содержит размещение пользовательского словаря - C:\Program Files\Workgroup:

Этот ключ поднимает красный флаг для Terminal Services. Каждый пользователь должен иметь свой файл USER.LEX для WorkGroup, но этот файл по умолчанию хранится на терминальном сервере, а не в пользовательском домашнем каталоге. К счастью, WorkGroup позволяет изменить ключ реестра для размещения файла, поэтому проблему можно легко решить.


Затем определите, сработало ли отображение реестра, сравнив этот ключ HKEY_CURRENT_USER с HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server, как показано на следующем рисунке.

Как видно, отражение не сработало, поэтому вы должны сделать отражение раздела реестра вручную (если вы решили, что вам нужно предварительно сделать настройки в HKEY_CURRENT_USER для ваших пользователей). В этом случае вы должны создать файл .REG для ключа HKEY_CURRENT_USER\Software\SoftwareCo\WorkGroup.
Теперь запустите WorkGroup и убедитесь, что программа работает под учетной записью пользователя, инсталлировавшего ее. Допустим, что все работает. Вы можете подключиться к базе данных, считывать и вводить данные, делать запросы. Теперь сделайте то же самое под обычным тестовым пользователем. Приложение запускается без проблем, но при попытке добавить слово в пользовательский словарь программа выдает ошибку - тестовый пользователь не имеет прав записи в файл USER.LEX, находящийся на диске C. Вам необходимо устранить этот дефект.
Сначала проверьте, позволяет ли WorkGroup переместить файл USER.LEX в другое место. Снова зарегистрируйтесь под администратором и скопируйте файл из C:\Program Files\WorkGroup в H:\WorkGroup, а затем измените значение UserDicPath в HKEY_CURRENT_USER на H:\WorkGroup. Теперь запустите WorkGroup и попробуйте добавить слово в словарь. Проверив временные метки, вы можете подтвердить, что слово добавлено в копию на драйве H, поэтому изменения сделаны успешно.
Чтобы реплицировать эти изменения для всех пользователей, вам нужно сделать следующее:
Изменить значение UserDicPath для каждого пользователя
Копировать файл USER.LEX на ROOTDRIVE всякий раз при входе пользователя.
Вы могли бы сделать это с помощью отображения реестра, но, как мы выяснили, это отображение придется сделать вручную. Копирование файла потребует скрипта совместимости. Давайте рассмотрим эти задачи по очереди.
Для создания отображения реестра, отредактируйте файл .REG, созданный из HKEY_CURRENT_USER, щелкнув на нем правой кнопкой и выбрав Edit. Используйте команду Replace для замены всех вхождений "HKEY_CURRENT_USER\Software" на "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software".


Кроме того, найдите значение UserDicPath и измените его на "H:\WorkGroup". Сохраните измененный файл в каталоге C:\WINNT\Application Compatibility Scripts\Install.
Для копирования файла вам нужно написать два скрипта совместимости - один для инсталляции, а второй для входа. Для нашего приложения оба скрипта очень просты. Для копирования файла в нужное место вам необходимо определить переменную ROOTDRIVE. Затем инсталляционный скрипт должен импортировать ваш файл .REG и добавить вызов скрипта совместимости для входа в USRLOGN2.CMD.
Ручной импорт файла .REG и редактирование USRLOGN2.CMD может быть проще, но использованием инсталляционного скрипта совместимости вы делаете этот процесс легко повторяемым при инсталляции приложения на рабочем сервере. Убедитесь, что вы поддерживаете центральное хранилище для всех скриптов совместимости, которых вы создаете, чтобы вы могли реплицировать их на новых серверах.

Перед запуском инсталляционного скрипта совместимости, вам необходимо создать скрипт совместимости для входа, который будет делать копирование файла для каждого пользователя. Этот скрипт будет вызываться всякий раз при входе пользователя, но он должен копировать файл лишь в том случае, если его не существует на пользовательском ROOTDRIVE. Этот скрипт должен быть сохранен в каталоге C:\WINNT\Applicaiton Compatibility Scripts\Logon. Ниже показан пример скрипта совместимости для входа:

Теперь, когда все части собраны, запустите инсталяционный скрипт совместимости для WorkGroup. Теперь вы должны проверить скрипт совместимости, войдя под тестовым пользователем. Не забудьте удалить профиль этого пользователя - как перемещаемый, так и локальный - перед входом, чтобы получить чистое окружение.
После входа в первую очередь поищите в домашнем каталоге файл USER.LEX, созданный в подкаталоге WorkGroup. Если файла нет, вернитесь назад и убедитесь, что ваш скрипты совместимости для инсталляции правильно добавил вызов команды в USRLOGN2.CMD, а затем проверьте скрипт совместимости для входа.
Теперь запустите WorkGroup и убедитесь, что все ключи реестра, особенно измененное значение UserDicPath, скопировались в HKEY_CURRENT_USER для тестового пользователя. Добавьте слово в пользовательский словарь тестового пользователя и убедитесь, что это слово добавлено в словарь, находящийся в домашнем каталоге.
Завершив этот процесс, вы должны проверить WorkGroup, запустив ее одновременно несколькими пользователями. Если вы удовлетворены производительностью, вы готовы повторить инсталляцию на рабочем сервере.

ы инсталляции приложений на терминальном сервере


Давайте рассморим процесс инсталляции трех разных приложений. Одно не имеет проблем с Terminal Services, другое требует специального метода установки для Terminal Services, а третье требует скрипта совместимости. Это "старые" приложения - Acrobat Reader 5, Netscape Navigator 4 и Office 2000 - но многие организации до сих пор их используют.



Прложение A: Клиенты Terminal Services


Remote Desktop Connection for Windows Server 2003

http://www.microsoft.com/downloads/details.aspx?FamilyID=a8255ffc-4b4a-40e7-a706-cde7e9b57e79&DisplayLang=en

Если вам необходим клиент в формате MSI (для распространения через GPO), запустите с комадной строки:

msrdpcli.exe /c

Remote Desktop Connection Client for Mac

http://www.microsoft.com/downloads/details.aspx?FamilyID=c669fcf7-c868-4d45-95f3-f75ddd969232&DisplayLang=en

Remote Desktop Web Connection

http://www.microsoft.com/downloads/details.aspx?FamilyID=e2ff8fb5-97ff-47bc-bacc-92283b52b310&DisplayLang=en

Terminal Services Client for PocketPC (2000 and 2002)

http://www.microsoft.com/windowsmobile/resources/downloads/pocketpc/tsc.mspx



Процессор


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

Как вы видели ранее, разные редакции WS2K3 поддерживают разное число процессоров. Эти ограничения такие же, как и для Win2K Server, но в W2K3 встроена поддержка технологии Intel HyperThreading. Эта технология позволяет одним процессором параллельно обрабатывать два потока (threads), виртуально удваивая вычислительную мощность процессора.

WS2K3 может корректно различать физические процессоры и виртуальные, создаваемые HyperThreading. При загрузке Windows, она подсчитывает количество процессоров в системе. Если процессоров больше, чем поддерживает эта лицензированная ОС, то отсчет заканчивается на лимите ОС. Это важно, поскольку BIOS подсчитывает физические процессоры перед виртуальными. Такое поведение предотвращает Win2K использовать виртуальные процессоры, если есть доступные физические. На рисунке показан порядок, в котором процессоры подсчитываются в ОС при использовании HyperThreading.

Давайте сравним процессорные ограничения стандартной редакции каждой ОС - каждая из них ограничена 3 процессорами. Поскольку Win2K не может различать физические и логические процессоры, ОС останавливается на четвертом процессоре. В нашем примере есть 4 физических процессора с HyperThreading, Win2K остановится на 4-м процессоре и будет размещять на каждом процессоре по одному потоку. Если бы было только 2 процессора с HyperThreading, то Win2K тоже остановилась бы на четвертом, но в этом случае разместила бы по два потока на каждый процессор, используя преимущества HyperThreading.

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

Что это означает для терминальных серверов? В большинстве случаев, поддержка HyperThreading в WS2K3 позволит вам повысить производительность без добавления процессоров в систему или обновления ОС до Enterprise Edition.



Простая инсталляция


Adobe Acrobat Reader - это бесплатная утилита для чтения файлов PDF. Она без проблем работает на терминальном сервере. Для ее установки просто используйте мастре Add New Programs в апплете Add/Remove Programs панели управления, как показано на рисунке. Мастер автоматически переводит сервер в режим инсталляции.

По заврешении инсталляции щелкните кнопку Finish. Сервер вернется в режим исполнения и Acrobat Reader готов для ваших терминальных пользователей. В качестве упражнения откройте редактор реестра и сравните значения в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Adobe с аналогичными в HKEY_CURRENT_USER\Software\Adobe, чтобы убедиться, что сработало отображение реестра. Когда пользователь первый раз запустит Acrobat, система скопирует ключи в пользовательский узел HKEY_CURRENT_USER.

Уже вышел Acrobat Reader 6. Эта версия упакована в MSI и также не требует особых шагов для установки на терминальном сервере.



Путь к профилю Terminal Services


При регистрации пользователя на рабочей станции, система проверяет атрибут Profile Path объекта пользователя. Если пользователь имеет централизованно хранящийся профиль, и этот профиль новее, чем его локально кешированная копия, то профиль загружается для этого пользователя. Аналогично, когда пользователь регистрируется на терминальном сервере, система запрашивает атрибут UserParameters и ищет Terminal Services Profile Path.

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

Использование профилей Terminal Services позволяет пользователю получать одинаковые настройки независимо от того, к какому серверу он подключается. Для избежания проблем с дисковым пространством вы можете разрешить системную политику, которая удаляет локальные кешированные копии перемещаемых профилей.

Если вы не указали терминальный профиль, но указали перемещаемый профиль Windows, терминальный сервер будет использовать перемещаемый профиль Windows. Кроме того, если терминальный профиль указан, но недоступен, система вернется к профилю Windows. Это поведение может вызвать нежелательные результаты, если вы используете на сервере сценарии совместимости приложений.


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

География также может стать причиной разделения профилей. Скорее всего, вы захотите хранить пользовательские профили Windows на файловых серверах поближе к рабочим станциям, но терминальные серверы из-за их невысоких требований к пропускной способности могут находиться в центрах данных. Вы не хотите, чтобы профили закачивались по медленным каналам связи.

WS2K3 имеет две новые политики, которые управляют пользовательскими профилями. Allow only local user profiles предотвращает указанному компьютеру загружать перемещаемые профили, даже если они сконфигурированы для пользователей. Set Path for TS Roaming Profiles позволяет указать специфический файловый сервер, который будет использоваться для перемещаемых профилей всех пользователей, регистрирующихся на терминальном сервере.


Query


Выводит список всех терминальных серверов в текущем или указанном домене:

QUERY TERMSERVER [servername] [/domain:domain] [/address] [/continue]

где:

servername - имя запрашиваемого сервера

/domain:domain

- имя домена (по умолчанию текущий домен)

/address - включить в вывод адреса IP каждого сервера

/continue - не делать пауз между экранами



Query Process


Выводит список процессов, выполняющихся на терминальном сервере (можно отфильтровать для сеанса).

QUERY PROCESS [* | processid | username | sessionname | /id:nn | programname] [/server:servername] [/system]

где:

* - все процессы

processed - информаци только о процессе с указаным ID

username - все процессы, выполняемые в контексте указанного пользователя

sessionname - процессы, выполняемые в контексте указанного сеанса

/ID:nn - процессы, выполняемые в сеансе с указанным номером ID

programname - процессы, порожденные указанной исполяемой программой

/server:servername

- имя запрашиваемого сервера

/system - список системных процессов



Query Session


Выводит список всех текущих сеансов на указанном терминалном сервере

QUERY SESSION [sessionname | username | sessionid] [/server:servername] [/mode] [/flow] [/connect] [/counter]

где:

sessionname - имя запрашиваемого сеанса

username - имя пользователя

sessionid - идентификатор сеанса

/server:servername

- имя сервера. По умолчанию - сервер, на котором вы зарегистрировались.

/mode - вывод текущих настроек

/flow - вывод текщих настроек управления потоком

/connect - вывод текущих настроек соединения

/counter - вывод информации о счетчиках для сервера



Query User


Выводит список всех текущих пользователей на терминальном сервере

QUERY USER [username | sessionname

| sessionid] [/server:servername]

где:

sessionname - имя запрашиваемого сеанса

username - имя пользователя

sessionid - идентификатор сеанса

/server:servername

- имя сервера. По умолчанию - сервер, на котором вы зарегистрировались.

Вы можете сократить команду QUERY USER до QUSER



Распределение нагрузки


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



Разрешение обратного порядка


Обратный порядок разрешается в разделе Computer Configuration редактора Group Policy Object Editor (см. рисунок). Вы можете включить обратный порядок либо в локальной машинной политике на терминальном сервере, либо через любой объект GPO, примененный к терминальным серверам.



Разрешения для RDP


Вкладка Permissions

свойств соединения RDP-Tcp показывает, что право использовать RDP разрешено администраторам и членам группы Remote Desktop Users. По умолчанию группа Remote Desktop Users пустая, поэтому чтобы позволить пользователям подключаться к терминальному серверу, вам необходимо добавить их в эту группу.

Как видно из рисунка, группа Remote Desktop Users по умолчанию разрешает доступ User Access. Каждый уровень доступа - гость, пользователь, полный контроль - идет с разным набором разрешений к сеансам на терминальном сервере. Чтобы полностью использовать мощь этих разрешений, вы должны понять, что предоставляет каждый из этих уровней доступа и какие доступны дополнительные опции.



Развертывание приложений для конечных пользователей


Если вы используете Terminal Services для замены рабочих столов, развертывание приложений для ваших пользователей состоит просто в добавлении иконки программ в All Users в меню Start на терминальном сервере. Если же вы хотите развернуть единственное приложение в модели Application Service Provider (ASP), тип развертывания будет зависеть от типа используемого клиента.

Если пользователи подключаются к приложениям на терминальном сервере с помощью локального клиента Remote Desktop Connection, вам необходимо создать файл RDP, который содержит имя сервера и начальное приложение, а затем раздать этот файл пользователям.

Если вы хотите предоставлять доступ к приложениям через клиент Remote Desktop Web Connection, чтобы пользователи запускали программы по ссылке URL, вы должны обратиться к документации, которую предлагает Microsoft вместе с клиентом, чтобы создать веб-страницы для хостинга приложений. Клиент Web Connection Client очень мощный и настраиваемый, поэтому при небольшом знании HTML и ActiveX вы можете создать мощный портал для ваших приложений



Развертывание сервис-паков и заплат


Microsoft также выпускает сервис-паки (service packs) и заплаты (hotfixes). Их необходимо тщательно проверять перед установкой в рабочей среде, поскольку сервис-паки содержат очень большое число изменений, и кроме того, есть тестовые заплаты, поддержка которых со стороны Microsoft ограничена.



Развертывание заплат


Windows Automatic Updates и SUS заботятся только о критических обновлениях и обновлениях безопасности. Если вы решили, что вам необходимы другие, некритические обновления, вам необходим способ установить их на ваши серверы.

Для новых серверов наилучшим способом будет интеграция заплат в процесс создания сервера. Если вы используете клонирование или образы RIS, эта задача может быть решена либо ручной установкой фиксов до запуска Sysprep или Ripprep. Если вы создаете серверы с автоматической (unattended) инсталляцией, вы можете добавить их с помощью файла CMDLINES.TXT.

Подробнее об интеграции заплат в автоматическую инсталляцию Windows, см. статью Hotfix Installation and Deployment Guide

Однако, Microsoft не предоставляет ясного способа развернуть заплаты на нескольких существующих серверах. Руководство предлагает единственный способ - инсталляция с сетевого ресурса. Этот процесс подходит для небольших сред, но для крупных ферм вам наверняка захочется его автоматизировать. Следующие предлагаемые способы будут работать не во всех случаях и не являются исчерпывающим списом. Выберите тот способ, который лучше всего подходит для вас.



Реализация Windows Automatic Updates


Internet Explorer Enhanced Security Configuration может защитить вас от вредного кода, который может быть найден на веб-страницах. Microsoft периодически выпускает заплаты и обновления, предназначенные для закрытия брешей в безопасности, но за инсталляцию этих обновлений отвечаете вы.

С выходом W2K3 и Windows XP, Microsoft включил клиента автоматического обновления (Windows Automatic Updates). WS2K3 также включает в себя эту службу. С помощью Windows Automatic Updates вы можете настроить серверы и рабочие станции так, чтобы они загружали и инсталлировали любые критические обновления. Automatic Updates Client весьма разносторонний и может быть настроен для любых ситуаций.

Вы можете настроить автоматическое обновление вручную или при помощи групповых политик. Для ручной настройки откройте в панели управления апплет System и выберите вкладку Automatic Updates:

На этой вкладке вы можете разрешить или запретить автоматическое обновление, а также настроить режим работы клиента. Доступные режимы:

Notify before downloading (Уведомить перед загрузкой) —Клиент регулярно проверяет наличие новых обновлений. Если таковое найдено, клиент помещает иконку в панель задач при регистрации на сервере администратора. Администратор щелкает на этой иконке, загружает и инсталлирует обновление.

Automatically download but notify before installing

(Автоматически загружать и предупреждать перед установкой) —Клиент регулярно проверяет наличие новых критических обновлений. Если есть обновление, клиент автоматически загружает его, а затем помещает иконку в панель задач при регистрации на сервере администратора. Администратор щелкает на этой иконке и инсталлирует обновление.

Automatically download and install at a specific time (Автоматически загружать и устанавливать в указанное время) —Клиент регулярно проверяет наличие новых обновлений. Если есть обновление, клиент автоматически загружает его, но инсталлирует в укаазнное время.

Вы также можете настроить автоматическое обновление при помощи групповых политик:




Настройка Configure Automatic Updates определяет режим и расписание. Она предлагает те же опции, что и апплет панели управления.

Следующая настройка, Specify intranet Microsoft update service location, перенаправляет клиента на внутренний сервер Software Update Services (SUS)

Reschedule Automatic Updates scheduled installations определяет, как долго после загрузки нужно ждать до запуска инсталлции обновлений, если компьютер в назначенное время был выключен. Это полезно для рабочих станций, но не обязательно для серверов.

Наконец, No auto-restart for scheduled Automatic Updates installations позавляет перезагрузку. Эта настройка полезна, если у вас работает скрипт автоматической перезагрузки и вы не хотите перезагржать сервер дважды.

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


Редактирование реестра


Иногда необходимо отредактировать реестр пользователя. В случае с рабочими станциями, вам необходимо было подключаться к удаленному реестру пользовательского компьютера. На терминальном сервере вы совместно с вашими пользователями используете один и тот же реестр. Есть только один ключ HKEY_LOCAL_MACHINE для всех пользователей, а ключ HKEY_CURRENT_USER для каждого сеанса может быть найден в HKEY_USERS.

Каждый реестр пользователя имеет свой SID. Самый быстрый способ найти нужного пользователя, если вы не знаете его SID, заключается в просмотре подключа Volatile Environment

для каждого пользователя. Этот подключ содержит переменную APPDATA, в которой содержится имя пользователя. Любые сделанные изменения становятся немедленно видимыми для пользователя.



Remote Desktop


Первое изменение, которое бросается в глаза, состоит в устранении режима Remote Administration. В Win2K этот режим разрешал два удаленных сеанса для системного администрирования. Эта терминология сбивала с толку администраторов, поскольку включение Terminal Services не обязательно делало сервер терминальным сервером. Кроме того, Remote Administration Mode заставляла сервер регистрироваться в WINS и появляться в утилите Terminal Server Administration. Это поведение затрудняло поиск терминальных серверов Win2K.

Но не пугайтесь. Вы можете удаленно администрировать серверы WS2K3. Однако, вместо установки Terminal Services вы просто включаете Remote Desktop. Если вы используете Windows XP, то уже знакомы с Remote Desktop. В WS2K3, Remote Desktop позволяет создать два виртуальных сеанса RDP, а также удаленное подключение к консольному сеансу сервера (этого требовали многие администраторы Win2K). Кроме того, в отличие Remote Administration Mode в Win2K, WS2K3 Remote Desktop препятствует появлению сервера в списке утилиты Terminal Server Administration.

Чтобы сервер с Remote Desktop был виден в Terminal Server Administration, измените в реестре значение TSAdvertise с 0 на 1 в следующем ключе:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.

Для включения Remote Desktop откройте System Control Panel, выберите вкладку Remote и установите флажок Allow users to remotely connect to your computer. По умолчанию удаленное соединение разрешено только локальным администраторам, но вы можете добавить пользователей в группу Remote Desktop Users. Учтите, что включение Remote Desktop не активирует систему совместимости приложений, поэтому приложения могут работать некорректно.

Microsoft добавила возможность подключаться и удаленно управлять консольным сеансом. Для подключения к консольному сеансу вы можете либо использовать Remote Desktop Administration, либо запустить клиента Remote Desktop Connection с опцией /console. Для удаленного управления консольным сеансом используйте Terminal Server Administration.

Для быстрого установления удаленного управления консоли сервра, к которому вы подключены через RDP, запустите с командной строки:

SHADOW 0



Reset Session


Завершение сеанса без предупреждения пользователя и без аккуратного выхода. Может использоваться для завершения зависших сеансов.

RESET SESSION [sessionname | sessionid] [/server:servername] [/v]

где:

sessionname - имя сеанса

sessionid - ID сеанса

/server:servername

- имя сервера, на котором выполняется сеанс

/v - выводить информацию об осуществляемых действиях



Режимы инсталляции и исполнения


Для работы переназначения реестра и файлов INI, система во время инсталляции приложения и во время его работы должна находиться в соотвествтующем режиме. Для переключения сервера в режим инсталляции просто запустите мастер Add New Programs в апплете панели управления Add/Remove Programs. Для переключения обратно в режим исполнения закройте мастер. Если вы попытаетесь запустить программу SETUP.EXE за пределами панели управления, терминальный сервер выдаст сообщение об ошибке:

Терминальный сервер не может перехватывать все программы установки, поэтому выработайте привычку всегда использовать панель управления для установки новых программ.

В качестве альтернативы вы можете переключаться между режимами с комадной строки, используя следующие команды:

CHANGE USER /INSTALL

CHANGE USER /EXECUTE

Эти команды полезны, если вы хотите заскриптовать процесс инсталляции приложения.



Режимы совместимости


Как и Win2K, WS2K3 предлагает два режима совместимости для Terminal Services: Полная безопасность (Full Security) и Ослабленная безопасность (Relaxed Security). Режимы совместимости позволяют выполнять старые приложения, которые не могут работать в условиях более строгих ограничений на файловую систему и реестр со стороны WS2K3



Результирующая политика


В сложных доменах со множеством групповых политик и комбинаций стандартной и обратной обработки довольно сложно отслеживать суммарный эффект объектов GPO и точно предсказывать результат перемещения пользователя или компьютера из одного OU в другой. Для помощи в этом Microsoft предлагает утилиту Resultant Set of Policy (RSOP.MSC).

Вы можете запустить ее с помощью команды Run для получения информации для текущего пользователя или компьютера, или из GPMC для тестирования сценариев регистрации пользователей на отдельных компьютерах. GPMC также предоставляет доступ к инструменту Group Policy Modeling, который вы можете использовать для тестирования "что будет, если..." перед внесением изменений в групповые политики или перемещением объектов.

RSOP.MSC не только показывает конечный эффект применения всех политик к пользователю или компьютеру, но также позволяет получить доступ к отдельным настройкам и увидеть все сконфигурированные политики.



Роли сервера


При установке WS2K3 большая часть второстепенных подсистем не активируется или не устанавливается. Это сделано по причинам безопасности. Поскольку система по умолчанию защищена, системные администраторы могут сосредоточиться на проектировании системы, которая будет выполнять исключительно возложенные на нее функции и ничего лишнего. Для помощи при включении нужных функций, Windows теперь предлагает выбрать роль сервера (Server Role):

Роль - это функция сервера (например, почтовый сервер, контроллер домена). Один сервер может играть несколько ролей. При регистрации администратора на сервере, мастер "Manage Your Server" помогает добавить новые роли и изменять существующие.

При добавлении новой роли, мастер Manage Your Server включает нужные службы и осуществляет необходимые изменения в безопасности. Вы также можете добавлять и удалять службы старым способом - через Add/Remove Windows Components и оснастку Services, но мастер Manage Your Server очень полезен.

После добавления роли, мастер Manage Your Server создает ссылки для доступа к инструментам и настройкам каждой роли.

File Server

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

Теневое копирование (Shadow copy) - Резевное побайтовое копирование ранних версий документов, позволяющее пользователям отменять сделанные изменения в документах, хранящихся на сервере.

Улучшенная распределенная файловая система DFS - позволяет создавать единое логическое именованное пространство для множества общих папок, расположенных на разных серверах. Теперь пользователям не нужно запоминать, на каких серверах расположены часто используемые ими общие папки. DFS в WS2K3 также предоставляет службу репликации файлов с выбором топологии, что было недоступно в Win2K. Кроме того, серверы WS2K3 могут обслуживать несколько корней DFS.


Служба теневого копирования томов (Volume shadow copy service) - Создает копию оригинальных общих данных на заданный момент времени. Программы резервного копирования могут использовать эту копию,чтобы сделать папку общего доступа статической, пока меняются текущие документы. Кроме того, вы можете перемещать теневые копии на другие сервера для резервного хранения, тестирования и анализа данных

.

Print Server

Серверы печати используются для предоставления и управления доступом к принтерам. Роль сервера печати позволяет управлять принтерами через веб-броузер, печатать на URL принтера, используя протокол IPP, а также подключать принтеры, используя Point and Print. Microsoft сделала ряд расширений службы печати в WS2K3:

Поддержка кластеров печати - автоматичекая репликация драйверов принтеров по всем серверам в кластере.

Расширения в Active Directory - Администраторы могут публиковать принтеры в AD, чтобы пользователи могли искать принтеры в зависимости от месторасположения, цвета и скорости.

Улучшение безопасности - Включены новые групповые политики, позволяющие администратору предотвращать доступ клиентов к спулеру, если сервер не ослуживает печать.

Application Server

Когда вы настраиваете сервер в качестве сервера приложений, вы устанавливаете Internet Information Services (IIS) 6.0 и целый ряд компонентов, например, COM+ и ASP.NET. Microsoft оптимизировала IIS 6.0 с точки зрения стабильности, управляемости, быстрой разработки приложений и безопасности.

Роль сервера приложений WS2K3 обеспечивает поддержку новых веб-служб и платформы .NET, включая службы Universal Description, Discovery and Integration (UDDI), а также Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL). Серверы приложений часто конфигурируют включая следующее:

Слияние ресурсов (Resource pooling)

Управление распределенными транзакциями

Встроенная защита

Отказоустойчивость

Mail Server

WS2K3 теперь включает серверы POP3 и SMTP. Это позволяет обслуживать базовые почтовые ящики ваших пользователей и позволяет принимать и отправлять почту с сервера. Почтовые серверы обеспечивают прием и отправку почты. Входящая почта может хранится на сервере, а потом забираться пользователем по протоколу POP3. Для роли почтового сервера вы должны иметь:



Активное соединение с интернет

Зарегистрированное доменное имя

Запись MX у провайдера для вашего почтового домена

Terminal Server

После инсталляции роли терминального сервера, вы можете разрешить пользователям подключаться к серверу и запускать на нем приложения так, как будто эти приложения были инсталлированы на рабочей станции клиента. Мы рассмотрим установку, конфигурирование и новые возможности терминального сервера позже. В отличие от Win2K, которая автоматически разрешает пользователям доступ после установки Terminal Services, WS2K3 ограничивает доступ только администраторами. Вы должны добавить пользователей или их группы в группу Remote Desktop Users.

Remote Access/VPN Server

Серверы удаленного доступа и VPN предоставляют точку входа в вашу сеть для удаленных пользователей. Используя роль Remote Access/VPN Server, вы можете реализовать протоколы маршрутизации для сред LAN и WAN. Эта роль поддерживает модемные соединения и VPN через интернет.

Domain Controller

Контроллер домена содержит базу данных Active Directory. Контроллеры домена предоставляют службы аутентификации для пользователей и компьютеров, а также управляют доступом к сетевым ресурсам. Роль контроллера домена заменяет инструмент DCPROMO, который был в Win2K. Эта роль позволяет добавить контроллер домена к существующему домену, создать новый домен, создать новое дерево.

DNS Server

Служба DNS позволяет преобразовывать доменные имена (FQDN) в адреса IP. Версия DNS в WS2K3 включает службу динамического DNS (DDNS), которая позволяет компьютерам самим регистрироваться в базе данных DNS. Версия DNS в WS2K3 также позволяет интергрировать DNS с WINS.

DHCP Server

Сервер DHCP позволяет клиентам получать свой IP по мере необходимости. Сервер DHCP также предоставляет дополнительную информацию для конфигурации сети - адрес серверов DNS, WINS и т.п.

Streaming Media Server

Потоковый сервер предоставляет службы Windows Media Services сетевым клиентам. Windows Media Services используются для управления и доставки мультимедийного контента - потокового видео и аудио - через интранет или интернет.

WINS Server

WINS позволяет клиентам NetBIOS преобразовывать имена компьютеров в адреса IP. В отличие от DNS, требующего доменные имена, WINS спроектирована для внутренней интрасети для разрешения простых имен NetBIOS.

Хотя можно иметь сеть Windows без NetBIOS и WINS, многие утилиты все еще зависят от базы данных WINS. Многие типы записей, имеющиеся в WINS, отсутствуют в DNS. Эти типы позволяют легко находить в сети серверы, выполняющие специфические службы (включая Terminal Services). Такой утилитой является Terminal Server Administration. Без WINS вам придется вручную указывать сервер для управления.


Сценарии развертывания терминальных служб


Что вам необходимо учитывать в первую очередь при управлении рабочими столами Windows? Честно говоря, я уверен, что на первом месте будут следующие факторы:

Развертывание программного обеспечения

Защита от вирусов

Обновление ПО

Используя Terminal Services вы можете значительно снизить сложность этих задач. Роль терминального сервера WS2K3 позволяет вам централизировать программное обеспечение, уменьшить число систем Windows в вашей среде и снизить риск заражения вирусами, централизованно обновляя антивирусное ПО и создавая единую точку входа для удаленных пользователей.

Существует три основные модели использования Terminal Services:

Замена рабочего стола - Убрать со стола пользователя ПК с Windows и заменить его устройством тонкого клиента.

Удаленный доступ - Обеспечение доступа удаленных пользователей к рабочему столу или индивидуальным приложениям через глобальные сети или RAS

Провайдер приложений (Application service provider, ASP) - Предоставление доступа пользователей к индивидуальным приложениям, не инсталлируя эти приложения на рабочих столах пользователей.



Shadow


Созает теневой сеанс для удаленного упарвления:

SHADOW [sessionname | sessionid] [/server:servername] [/v]

где:

sessionname - имя сеанса

sessionid - ID сеанса

/server:servername

- имя сервера



Скрипт перезагрузки


Далее приведен скрипт регулярной перезагрузки сервера. Частота перезагрузки сервера зависит от ваших особенностей - числа пользователей, среды перемещаемых профилей, установленных приложений и т.п. Для правильного запуска скрипта вам нуобходимы два дополнительных файла - Sleep.EXE и текстовый файл yes.txt, содержащий букву Y.

REM

REM Sending a message to any currently logged-on users

REM warning them that a maintenance reboot will occur

REM in 10 minutes.

REM

change logon /disable

msg * Please save your work and log off. Maintenance reboot in 10 minutes.

REM Pausing for 5 minutes

sleep 300

REM 5 minute warning

msg * Save your work now and log off. Maintenance reboot in 5 minutes

REM Pausing for 5 minutes

sleep 300

REM 30 second warning

msg * Maintenance reboot in progress. You will be logged off in 30 seconds

REM Pausing for 30 seconds

sleep 30

REM Logging all users off

logoff rdp-tcp < yes.txt

REM Stopping the Print Spooler service and deleting any

REM orphaned files.

net stop spooler

del %systemroot%\system32\spool\printers\*.* /q

REM Rebooting the TS

tsshutdn /REBOOT



Скрипты совместимости приложений


Многие приложения не учитывают особенностей Terminal Services и сохраняют свои компоненты на диске С компьютера. Эти компоненты могут включать в себя макросы, шаблоны, всяческие файлы. На рабочей станции, если пользователь модифицирует один из таких файлов, изменения затронут любого пользователя, который зарегистрируется на этом компьютере. Но на терминальном сервере изменения также затронут всех пользователей, одновременно зарегистрированных на нем. Это может создать проблемы, когда такие файлы будут использоваться одним пользователем и будут недоступны другому экземпляру приложения, запущенному в другом сеансе другим пользователем.

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

Тот факт, что многие современные приложения следуют спецификации Windows Logo, заметен по уменьшению количества скриптов совместимости, включенных в Windows. Вы можете найти эти скрипты в C:\WINNT\Application Compatibility Scripts. Скрипты разбиты на три группы:

Install — Эти скрипты вносят изменения на системном уровне и добавляют строки в USRLOGON2.CMD, если приложение также требует скрипт совместимости для каждого пользователя при входе

Logon — Эти скрипты вызываются из USRLOGON2.CMD при входе пользователя; они копируют пользовательские компоненты на ROOTDRIVE и вносят изменения в реестр HKEY_CURRENT_USER.

Uninstall — Эти скрипты удаляют вызов скриптов из USRLGON2.CMD, если отпадает необходимость в запуске скрипта совместимости.

Как видно, Microsoft включает лишь скрипты для Eudora 4, Visual Studio 6 и Outlook 98. Если вы используете старые приложения (например, Office 97, Project 95 и т.п.), вы можете скопировать скрипты с терминального сервера Win2K.

При инсталляции приложения, требующего скрипта совместимости, вы запускаете инсталляционный скрипт после установки приложения. Этот инсталляционный скрипт делает все необходимые системные изменения и указывает USRLOGN2.CMD выполнить скрипт входа при регистрации пользователя.

Если вы устанавливаете приложение, не удовлетворяющее спецификациям Microsoft и не имеющее скрипта совместимости, см. раздел "Установка недокументированных приложений".



Скрипты входа


Помимо доменных скриптов входа, Terminal Services использует последовательность скриптов, которые запускаются при входе пользователя, чтобы помочь вам скорректировать приложения так, чтобы они работали в многопользовательской среде. На следующем рисунке показан процесс входа пользователя.

При инсталляции Terminal Services, система добавляет вход в ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Appsetup, который запускает скрипт USRLOGON.CMD, находящийся в каталоге System32 . USRLOGON.CMD - это сердце процесса входа Terminal Services, внутри него вызываются дополнительные скрипты.

Все скрипты, предоставляемые Microsoft, написаны на языке комадного интрпретатора, но WS2K3 также может использовать VBScript и JavaScript с помощью Windows Script Host (WSH).



Совместимость разрешений (Permission Compatibility)


В Win2K при установке Terminal Services вам предлагалось выбрать режим совместимости - разрешения, совместимые с Windows 2000 или с Terminal Server 4.0. В Windows 2003 Microsoft сосредоточилась на безопасности, теперь в WS2K3 по умолчанию режим Full Security. В этом режиме в W2K3 пользователи, отличные от администраторов, не могут изменять ключ реестра HKEY_LOCAL_MACHINE и записывать файлы в любое место диска, кроме каталога своего профиля.

Если вам попалось приложение, которое не может выполняться в режиме Full Security, вам может потребоваться изменить режим на Relaxed Security (ослабленная безопасность). Используйте этот режим в крайнем случай, поскольку он открывает сервер для нежелательных изменений со стороны обычных пользователей.



Создание административных инсталляций


Пакеты MSI обычно включают в себя все требуемые файлы, упакованные в файлы CAB. Для оптимизации установки программ, заблаговременно распакуйте эти файлы, создав административную инсталляцию.

Для создания административной инсталляции, запустите Windows Installer Service с опцией “/a” и укажите путь к пакету MSI, который вы хотите распаковать.:

msiexec /a d:\proplus.msi

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

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



Создание папки общего доступа


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

Убедитесь, учетные записи машин ваших терминальных серверов имеют право чтения и выполнения в этой папке. Группы Authenticated Users и Everyone включают машинные учетные записи.



Технология Terminal Services


Что такое терминальный сервер? Windows спректирована как однопользовательская операционная система, т.е. в один и тот же момент времени в ней может интерактивно работать только один пользователь. Служба Terminal Services ломает эту модель, внедряя между слоями системы и пользователя слой сеанса. Session Manager для каждого сеанса создает отдельный экземпляо подсистемы Win32, WIN32K.SYS. Затем Session Manager внутри сеанса запускает рабочий процесс подсистемы клиент-сервер, CRSS.EXE, и службу входа WINLOGON.EXE, как показано на следующем рисунке.

Этот процесс позволяет нескольким пользовательским сеансам параллельно выполняться на одной системе Windows. Session Manager работает аналогично распорядителю в ресторане - он провожает новых посетителей (клиентов) к их столикам (сеансам), а затем дает указания персоналу (приложениям, службам и ресурсам) обслужить стол. Session Manager присваивает каждому сеансу уникальный идентификатор (ID) и адресное пространство.

Еще одним важным компонентом Terminal Services является протокол RDP, который позволяет пользователям взаимодействовать с сеансами, выполняющимся на терминальном сервере. Без RDP каждому пользователю потребовалась бы консоль, непосредственно подключенная к серверу.

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

Используя Terminal Services, вы можете инсталлировать приложения на небольшом количестве серверов, а не на сотнях рабочих станций. Вы также можете получить выгоду от использования недорогих "тонких клиентов", чем от рабочих станций. Даже если вам необходимо иметь персональные компьютеры для пользователей, вы все равно можете получить выгоду от использования терминальных серверов за счет централизации сетевого траффика.

Многие компании также используют терминальные серверы для удаленного доступа. Это позволяет закрыть большую часть сети и разрешить удаленные соединения с лишь с отдельными серверами. На таких серверах легко можно поддерживать последние пакеты обновлений, антивирусы и пр.



Terminal Server Shutdown


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

TSSHUTDN [wait_time] [/server:servername] [/reboot] [/powerdown] [/delay:logoffdelay] [/v]

где:

wait_time - число секунд ожидания после предупреждения пользователя до принудительного закрытия из сеансов (по умолчанию 30 секунд).

/server:servername - имя выключаемого/перезагружаемого сервера

/reboot - перезагрузить сервер

/powerdown - выключить сервер после остановки Windows; эту функцию должен поддерживать BIOS

/delay:logoffdelay

- число секунд ожидания после выхода всех пользователей до отключения (по умолчанию 30 секунд)

/v - вывод подробной информации об осуществляемых дейтсвиях



Terminal Services Configuration


Это основной инструмент настройки терминального сервера. С его помощью вы можете устанавливать режим полномочия для сервера, настраивать опции производительности, настраивать RDP. Вы можете запустить Terminal Services Configuration тремя способами:

Из меню Start в разделе Administrative Tools

Из мастера Configure Terminal Server

Из мастера Manage Your Server

В Server Settings вы видите шесть опций:

Три из этих опций - Delete temporary folders on exit , Use temporary folders per session (использовать в сеансе временные папки) и Active Desktop - лучше оставить по умолчанию

Delete temporary folders on exit (удалять временные файлы при выходе). Каждому пользователю на терминальном сервере предоставляется временный каталог. Он находится в C:\Documents and Settings\<username>\local settings\temp. Если эта опция включена, то содержимое этого каталога удаляется при выходе пользователя.

Если вы используете перемещаемые профили и включили политику Delete cached copies of roaming profiles (обычная практика на терминальных серверах), то настройка Delete temporary folders on exit становится бессмысленной. Однако, лучше оставить эту опцию включенной, если у вас нет приложений, которые требуют наличия временных файлов со старого сеанса - в этом случае вам также придется изменить групповую политику.

Use temporary folders per session (отдельный временный каталог для каждого сеанса). Если включено, то для каждого сеанса пользователя создается отдельный временный каталог. Эти каталоги именуются \temp\0, \temp\1 и т.д. Это не дает разным сеансам мешать друг другу.

Active Desktop - Начиная с Windows 98, на рабочий стол стало возможным внедрять активное содержимое (веб-страницы, анимацию, новостные тикеры и т.п.). Для уменьшения прорисовок экрана, посылаемых с терминального сервера клиенту, эта настройка по умолчанию запрещена.

Оставшиеся три настройки —

Licensing, Permission Compatibility и Restrict each user to one session — требуют чуть большего внимания и понимания.Они зависят от вашей среды и приложений, которые вы инсталлируете на терминальном сервере.



Terminal Services Manager


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

Если вы знакомы с Win2K Terminal Services Manager, то заметите несколько улучшений в версии, включенной в состав WS2K3. Во-первых, новая версия содержит узел This computer, дающий быстрый доступ к сеансам сервера, на котором вы зарегистрированы. Во-вторых, есть узел Favorite Servers, который позволяет получить доступ к некоторым терминальным серверам, которые вы чаще всего администрируете. Наконец, узел All Listed Servers изначально не раскрыт, поэтому вам не нужно долго ждать поиска всех терминальных серверов перед началом использования этой утилиты.

Если вы выделите некоторый сервер, утилита покажет список всех пользовательских сеансов на этом сервере. Также показывается состояние каждого сеанса:

Active (активный) — Пользователь в настоящий момент посылает на сервер информацию от клавиатуры или мыши

Idle (холостой) — Пользователь не перемещал мышь и не нажимал клавиш в течении определенного промежутка времени

Disconnected (разъединенный) — Пользователь отключился от сервера, но оставил сеанс работать для дальнейшего подключения.

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

Вкладка Information

в правой панели сообщает имя устройства клиента и адрес IP, а также версию клиента RDP, разрешение экрана и уровень шифрования. Эта информация поможет в устранении проблем. Если вы щелкните правой кнопкой на пользовательском сеансе, появится контекстное меню:

Connect — Прозволяет подключиться к другому сеансу, который вы установили на сервере

Disconnect — Отключает пользователя от сеанса, но оставляет сеанс работать на сервере

Remote Control — Позволяет просмотреть или взаимодействовать с сеансом пользователя, не отключая пользователя. Пользователь видит любые выполняемые вами действия, а вы в свою очередь можете наблюдать за действиями пользователя.

Reset — Убить сеанс

Status — Выводит окно состояния, показывающее сетевую активность между сервером и клиентом.

Log Of f— Принудительное завершение сеанса

Опция Log Off аккуратно завершает сеанс и выгружает профиль пользователя в центральный каталог профиля. Однако она не оставляет пользователю возможности сохранить свою работу.



Terminal Services Profile


Заполняет профиль Terminal Services указанного пользователя. Может использоваться для копирования содержимого профиля Terminal Services от одного пользователя к другому. Эта команда требует привилегий администратра.

TSPROF /update [/domian:domainname | /local] /profile:path username

TSPROF /copy [/domian:domainname | /local] [/profile:path] src_user dest_user

TSPROF /q [/domian:domainname | /local] username

где:

/update - заполняет профиль пользователя domainname\username с маршрутом path

/copy копирует профиль Terminal Services из src_user в dest_user

и, если указано, обновляет путь к профилю для пользователя dest_user

маршрутом path

/q вывод маршрута Terminal Services Profile для указанного пользователя



Типы лицензий


WS2K3 Terminal Services Licensing может поддерживать семь типов маркеров лицензий. Помимо CAL, необходимых для подключения к терминальным серверам Win2K, есть четыре новых типа CAL, специфичных для WS2K3 Terminal Services

Встроенных лицензий для WS2K3 Terminal Services больше не существует. Вам необходимо покупать CAL для всех устройств или пользователей, подключющихся к таким серверам, независимо от используемой операционной системы клиента.

WS2K3 Terminal Server Device CAL - Эти лицензии запрашиваются у сервера лицензий терминальными серверам WS2K3, лицензируемыми в режиме "Per Device"

WS2K3 Terminal Server User CAL - Для терминальных серверов WS2K3, лицензируемых в режиме "Per User"

Лицензии WS2K3 Terminal Server External Connector - Эти лицензии разрешают неограниченное число соединений внешних пользователей к терминальному серверу. Эти лицензии еще не доступны.

Win2K Terminal Services CAL - Терминальные серверы Win2K запрашивают эти лицензии у сервера лицензий для клиентов, выполняющих ОС, отличную от Win2K Professional или Windows XP. Эти лицензии нужны только если у вас есть серверы Win2K.

Лицензии Win2K Terminal Services Internet Connector - Эти лицензии разрешают до 200 одновременных соединений к терминальному серверу Win2K через интернет для не-сотрудников вашей организации.

Встроенные лицензии Win2K - Клиенты, выполняющие Win2K Pro или Windows XP получают маркер лицензии из встроенного пула маркеров лицензий при подключении к терминальному серверу Win2K.

На следующем рисунке показаны лицензии, доступные в Terminal Server Licensing. Обратите внимание, что лицензии для пользователей обрабатываются отдельно от лицнзий для устройств. Пользовательские лицензии - новые в WS2K3. Теперь терминальные серверы можно перевести в режим лицензирования Per Device или Per User. Один сервер Terminal Services Licensing может обслуживать разные маркеры в любой комбинации, если установлены соответствующие лицензии.



Требования для доступа к терминальному серверу


WS2K3 имеет три различных уровня защиты, которые позволяют контролировать доступ к терминальному серверу. Чтобы пользователь мог зарегистрироваться на терминальном сервере, необходимо соблюдение следующих трех условий:

Право Allow log on through Terminal Services

(разрешен вход через службу терминалов) — В Windows 2000 вам необходимо было давать право Log on locally всем пользователям, которым требовался доступ терминальному серверу. Это создавало потенциальную брешь в безопасности, поскольку позволяло регистрироваться на консоли сервера, обходя ограничения, которые вы сделали для RDP. WS2K3 разделяет право локального входа и право входа через службу терминалов. По умолчанию, на WS2K3 право Allow log on through Terminal Services дается только администраторам и членам группы Remote Desktop Users.

Права использовать RDP — Администратор может установить разрешения RDP с помощью Terminal Services Configuration. Как уже упоминалось, Microsoft изменила разрешения по умолчанию для протокола в WS2K3. Если в Win2K локальной группе Users был разрешен доступ к RDP, то в WS2K3 этот доступ ограничен только локальной группой Remote Desktop Users. Поэтому чтобы пользователи могли регистрироваться на терминальном сервере, вы должны поместить их в эту группу.

Опция Allow logon to terminal (разрешен вход на терминальный сервер) — В свойствах каждого пользователя в AD есть опция Allow logon to terminal server, которая определяет, разрешено ли пользователю регистрироваться на терминальном сервере. По умолчанию эта опция включена.

Два из этих условий зависят от членства в группе Remote Desktop Users. Если пользователь получает сообщение You do not have permission to access this session, то одно из этих трех условий не соблюдается.



TSSHUTDN Wrapper


TSSHUTDN.EXE - это утилита, используемая для выключения или перезагрузки терминального сервера. Эта утилита предупреждает пользователей о выключении сервера, двавая им возможность сохранить работу. Затем она запускает для каждого сеанса команду logoff и выключает сервер. К сожалению, эта утилита выключает, а не перезагружает сервер.

Я написал обертку для предотвращения случаных выключений. Скопируйте этот код и сохраните в формате VBS в каталоге SYSTEM32. Для запуска скрипта введите с командной строки имя файла VBS (например, я назвал этот файл TSSHUTDOWN.VBS):

' AUTHOR: Greyson Mitchem, The Definitive Guide to WS2K3 TS

' This VBS file is a safety wrapper for the native

' TSSHUTDN.EXE that shuts down or reboots a TS.

' This script will collect the parameters for

' the tsshutdn command. 

set oShell=CreateObject("Wscript.Shell")

set oNet=CreateObject("Wscript.Network")

returnkey=msgbox("This script collects the parameters needed to"&VBCRLF&"correctly shutdown or reboot a Terminal Server."&VBCRLF&"You may abort the process at any time by hitting CANCEL."&VBCRLF&VBCRLF&"Do you wish to continue?", VBOKCancel + VBInforamtion, "TS Shutdown")

IF returnkey=VBCancel THEN Wscript.Quit(1)

Server=InputBox("Enter the name of the server you wish to Reboot/Shudown:", "Server Name", oNet.ComputerName)

if trim(Server)="" then Wscript.Quit(1)

bRestart=MSGBox("Do you wish to have the server reboot?"&VBCRLF&VBCRLF&"Clicking NO will PowerDown the system without rebooting.", VBYesNoCancel + vbQuestion, "Reboot or PowerDown")

Select Case bRestart

     Case vbYes

           sOption="/REBOOT"

     Case vbNo

           sOption="/POWERDOWN"

     Case vbCancel


           Wscript.Quit(1)

End Select

Wait=InputBox(" Please enter the number of seconds to give users to finish working before forcibly logging them off:", "Wait Time", "60")

if trim(Wait)="" then Wscript.Quit(1) 

Delay=InputBox("Please enter the number of seconds to wait after all users have logged off before shutting down the system:", "Wait Time", "30")

if trim(Delay)="" then Wscript.Quit(1)

' All Parameters have been collected.  Now we build the comand line. 

ShutdnCMD="tsshutdn.exe "&wait&" /server:"&Server&" "&sOption&" /Delay:"&Delay&" /v"

oShell.RUN(ShutdnCMD)

Wscript.Quit(0)

Если вы хотите создать ссылку, то используйте команду

wscript %systemroot%\system32\<scriptname.vbs>




Удаленное управление


При выборе опции Remote Control вы временно отключаетесь от своего сеанса и подключаетесь к пользовательскому сеансу. Теперь RDP посылает всю видеоинформацию как на вашу машину, так и на клиентское устройство пользователя, и получает нажатия клавиш и перемещения мыши от вас обоих (если вы настроили интерактивное удаленное управление).

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



Удаленный доступ


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

Модель удаленного доступа предоставляет удаленным пользователям возможность иметь доступ к индивидуальным приложениям или даже к целому корпоративному рабочему столу через интернет (используя Remote Desktop Web Connection, веб-версию клиента Remote Desktop Connection) с их домашних компьютеров. Кроме того, невысокие требования RDP к пропускной способности повышают производительность работы по сравнению с работой на ноутбуке через медленные каналы связи.

Использование терминального сервера в качестве портала в корпоративную локальную сеть может защитить вашу сеть от вирусов, присутствующих на удаленных компьютерах.

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



в WS2K3 Terminal Services сделано


Самое большое количество изменений в WS2K3 Terminal Services сделано в RDP. Теперь он поддерживает некоторые новые возможности перенаправления ресурсов. Новые расширения значительно приблизили RDP к протоколу Citrix ICA.

Теперь можно переназначать драйвы клиентов, аудио, буфер обмена, порты, часовые пояса, клавиши Windows (например, ALT+TAB). RDP 5.2 даже поддерживает аутентификацию с помощью смарт-карт. Все эти функции включаются и отключаются администратором. RDP 5.2 добавляет поддержку 24-разрядного цвета и разрешение экрана до 1600х1600.

Функция

RDP 5.2

ICA

Отображение драйва клиента

Автоматически подключается ко всем локальным и сетевым драйвам клиента

Автоматически подключается ко всем локальным драйвам клиента

Отображение буфера обмена

Автоматически

Автоматически

Теневые сеансы

Есть

Есть

Отображение локальных принтеров клиента

Автоматически

Автоматически

Отображение сетевых принтеров клиента

Автоматически

Автоматически

Смарт-карты

Есть

Есть

Восстановление разъединенных сеансов

Автоматически

Автоматически

Звук

Есть

Есть

Шифрование

До 128 bit

До 128 bit

Сжатие

Автоматически

Автоматически

Отображение временных зон

Есть

Есть

Клавиши Windows

Автоматически

Требует альтернативных комбинаций клавиш

Отображение последовательных и параллельных портов клиента

Автоматически

Автоматически

Поддерживаемые ОС клиента

Win32, Win16, Windows CE, CE.NET, PocketPC, Macintosh

Win32, Win16, Windows CE, PocketPC, MS-DOS, UNIX, Macintosh, Linux, Java

Протокол передачи

TCP/IP

TCP/IP, IPX/SPX, NetBEUI

Seamless Windows

Нет

Автоматически


Управление разрешенными элементами ActiveX


Независимо от Internet Explorer Enhanced Security Configuration, группам Limited Users и Restricted Users запрещена установка любых элементов ActiveX и другого активного кода на терминальном сервере - члены этих групп просто не имеют прав записи в каталоги, где хранятся активные элементы.

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

Зарегистрируйтесь на терминальном сервере под администратором и откройте в IE веб-страницу с активным содержимым.

Если разрешен Internet Explorer Enhanced Security Configuration, вы получите предупреждение. Щелкните Add… для добавления сайта в список доверенных сайтов, либо выберите из меню File пункт Add this site to… для добавления сайта в локальную зону интранет

Появится еще одно окно, предлагающее установить активный элемент; выберите опцию Always trust… и щелкните OK.

Элемент теперь установлен для пользователей терминального сервера.

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

Internet Explorer Enhanced Security Configuration применяется только к IE. Если вы используете другие браузеры интернет, вам необходимо применять другую модель безопасности.



Управление сеансами пользователей


Если у вас инфраструктура ориентирована на рабочие станции, то вы знаете, как трудно удаленно диагностировать и устранять проблемы ваших пользователей. Вероятно, вы используете такие средства, как Microsoft Systems Management Server (SMS) и Windows XP Remote Support для работы на пользовательском ПК и вы знаете, как удаленно подключиться к сетевому реестру для изменения настроек ваших пользователей.

В среде Terminal Services эти задачи упрощаются. Вместо того, чтобы разыскивать некоторую рабочую станцию на удаленном узле вашей сети, вы и ваши пользователи оба зарегистрированы на одном и том же компьютере. А поскольку вы оба используете RDP для передачи данных KVM, вы легко можете вмешаться. Чтобы показать разную технику поддержки, сначала познакомимся с утилитами поддержки.



Управление терминальными серверами в среде AD


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



Уровни доступа RDP


RDP предоставляет три основных уровня доступа: Guest Access (гость), User Access (пользователь) и Full Control (полный доступ). Уровень, назначенный группе, определяет возможности группы при подключении к терминальному серверу через RDP. Давайте разберемся с доступными разрешениями, а затем ассоциируем их с базовыми уровнями доступа. На следующем рисунке показан базовый список разрешений, а в таблице показано, как они относятся к пользователям.

Разрешение

Описание

Query Information

Запрос информации через Terminal Services Administrator или с комадной строки утилитой QUERY.

Set Information

Изменение настроек и разрешений RDP.

Remote Control

Просмотр или удаленное управление сеансом другого пользователя

Logon

Вход на сервер

Logoff

Принудительное завершение сеанса другого пользователя

Message

Отправка сообщений в другие сеансы на сервере используя консоль Terminal Services Manager или с комадной строки командой MSG

Connect

Подключение к разъединенному сеансу того же пользователя

Disconnect

Принудительное отключение сеанса другого пользователя, оставляя сеанс на сервере в активном состоянии.

Virtual Channels

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

В следующей таблице показано, какие разрешения назначены уровням доступа. Вы можете использовать редактор ACL для создания особых наборов разрешений. Например, вы можете дать сотрудникам справочного стола почти все разрешения Full Control, кроме Set Information.

Permission

Guest Access

User Access

Full Control

Query Information

X

X

Set Information

 

 

X

Remote Control

 

 

X

Logon

X

X

X

Logoff

 

 

X

Message

 

 

X

Connect

 

X

X

Disconnect

 

 

X

Virtual Channels

 

 

X



USRLOGON.CMD


Первая часть USRLOGON.CMD вызывает скрипт SETPATHS.CMD

REM USRLOGON.CMD@Echo OffCall "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd"If "%_SETPATHS%" == "FAIL" Goto Done

Скрипт SETPATHS.CMD проверяет, что ключи реестра для пользовательского окружения находятся на месте. Ключи реестра для текущего пользователя находятся в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, а ключи для всех пользовательских переменных находятся в таком же подключе в HKEY_LOCAL_MACHINE. Если ни одна из этих переменных не определена, появляется предупреждающее сообщение и выполнение USRLOGON.CMD прекращается. В следующей таблице показаны переменные окружения:

Компонент среды

Значение реестра

All Users: Startup

COMMON_STARTUP

All Users: Start Menu

COMMON_START_MENU

All Users: Start Menu\Programs

COMMON_PROGRAMS

Current User: Start Menu

USER_START_MENU

Current User: Startup

USER_STARTUP

Current User: Start Menu\Programs

USER_PROGRAMS

Current User: My Documents

MY_DOCUMENTS

Current User: Templates

TEMPLATES

Current User: Application Data

APP_DATA

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

If Not Exist "%SystemRoot%\System32\Usrlogn1.cmd" Goto cont0Cd /d "%SystemRoot%\Application Compatibility Scripts\Logon"Call "%SystemRoot%\System32\Usrlogn1.cmd":cont0

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

Следующий раздел скрипта создает ROOTDRIVE. Концепция ROOTDRIVE создана потому, что большинство ключей реестра не могут ссылаться на переменные окружения. Например, MyApplication.EXE может иметь в реестре значение UserTemplates, которое определяет путь для хранения модифицируемых пользователем шаблонов. Лучшей опцией для такого маршрута было бы указание %HOMEDRIVE%%HOMEPATH%\MyTemplates, чтобы каждый пользователь мог быть направлен на свой сетевой домашний каталог (если он есть) или в профиль на терминальном сервере. Поскольку вы не можете использовать переменные окружения в значениях реестра, вам необходимо указать абсолютный маршрут, который можно было бы разрешить для всех пользователей. Поэтому на терминальном сервере вы определяете ROOTDRIVE.


USRLOGON. CMD использует команду SUBST для подключения буквы ROOTDRIVE к пользовательскому каталогу во время входа.

Cd /d %SystemRoot%\"Application Compatibility Scripts"Call RootDrv.CmdIf "A%RootDrive%A" == "AA" End.CmdRemRem Отобразить домашний каталог пользователя на букву драйваRem Net Use %RootDrive% /D >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%"if ERRORLEVEL 1 goto SubstErrgoto AfterSubst :SubstErrSubst %RootDrive% /d >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%" :AfterSubst

Команда SUBST используется в Windows для назначения буквы драйва абсолютному маршруту - в отличие от NET USE, которая назначает букву драйва для пути в формате UNC. Так, SUBST W: C:\WINNT\FONTS сделает драйв W: ссылкой на каталог шрифтов.

Как выбирается и определяется буква для ROOTDRIVE? Когда администратор инсталлирует скрипт совместимости, который ссылается на ROOTDRIVE, скрипт инсталляции автоматически предлагает администратору изменить пакетный файл ROOTDRV2.CMD, указав в нем букву, которую администратор хотел бы зарезервировать. После этого эта буква не может быть использована в других отображениях драйвов на терминальном сервере.




Установка и настройка клиента Remote Desktop Connection


После установки и настройки терминального сервера вы можете предоставлять доступ к серверу через интерфейс клиента. Существуют две версии клиента Remote Desktop Connection: локальная версия, доступная для 32-разрядных Windows, Macintosh и PocketPC; и Remote Desktop Web Connection, элемент управления ActiveX, используемый для подключения к терминальному серверу из окна Internet Explorer.

Выбор клиента зависит от ваших нужд. Если вы хотите поддерживать конфигурацию соединений к терминальным серверам на клиентах (распространяя файлы RDP или разрешая пользователям самим указывать имена серверов), то лучшим выбором будет Remote Desktop Connection. Однако, если вы хотите централизованно управлять соединением (именами серверов, начальными программами и пр.), лучшим выбором будет Remote Desktop Web Connection.



Установка недокументированных приложений


Что делать, если вам попалось приложение, которое не содержит документации по работе с Terminal Services? Вам небходимо научиться определять, требует ли приложение настройки после инсталляции и нужны ли ему скрипты совместимости. Этот навык очень важен, хотя многие современные приложения следуют спецификациям Microsoft.

Начните с веб-сайта производителя программы, поищите в разделе технической поддержки по ключеым словам “terminal server” или “Citrix” (даже если вы используете только Terminal Services без MetaFrame, вы можете найти много полезной информации, проиндексированной для Citrix, поскольку это давний лидер в области терминальных служб). Если вы ничего не нашли, поспрашивайте в форумах, поищите по ключевым словам, указав имя вашего приложения AND “terminal server” OR “Citrix.”

В поиске недокументированных приложений полезны следующие сайты :

http://www.thethin.net

http://www.thinplanet.com

Собрав любую информацию о вашем приложении, инсталлируйте его на пилотном сервере. Ваш пилотный сервер должен иметь такую же конфигурацию, что и рабочий - с теми же патчами, сервис-паками, скриптами и пр.

Никогда не инсталлируйте непроверенные приложения на рабочий сервер!!!

Как и в случае с другими приложениями, для установки используйте мастер Add New Programs. Если приложение после установки требует перезагрузки, сделайте это. Перед первым запуском приложения проверьте реестр. Начните с HKEY_LOCAL_MACHINE\SOFTWARE и найдите подключ для приложения. Проверьте значения, уделяя особое внимание данным, соежржащим абсолютные маршруты. Значения типа InstallPath или ApplicationSource нормальные, поскольку они одинаковы для всех пользователей, но значения, относящиеся к пользовательским настройкам, например, UserDictionary или UserHome, могут вызвать проблемы. Запишите эти ключи на бумаге.

Затем проверьте в HKEY_CURRENT_USER\Software, что приложение сконфигурировало ключи реестра. Если так, найдите здесь те же типы значений и запишите то, что вы нашли. Проверьте, создано ли зеркало ключей в улее HKEY_LOCAL_MACHINE. Если нет, создайте файл .REG для ключа приложения HKEY_CURRENT_USER\Software, выбрав в regedit опцию Export Registry File из меню Registry. Этот файл понадобится позже, если вам понадобится вручную синхронизировать ключи.


Сделайте экспорт ключа приложения HKEY_CURRENT_USER\ Software до того, как запустите приложение в первый раз. Вам не следует захватывать настройки, которые сгенерируются при первом запуске.

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

Убедитесь, что ключи приложения из HKEY_CURRENT_USER корректно скопировались из ключа Terminal Server в HKEY_LOCAL_MACHINE или были автоматически созданы приложением. Если ключи отсуствуют при сравнении их с теми, что находятся в учетной записи пользователя, установившего приложение, вы должны вручную их синхронизировать. Для этого:

Откройте в Notepad файл .REG, созданный ранее, и выберите Replace из меню Edit для замены всех вхождений HKEY_CURRENT_USER\Software на HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software.

Импортируйте файл .REG в реестр

Теперь удалите профиль (локальный и перемещаемый) тестовой учетной записи и зарегистрируйтесь еще раз. Запустите приложение и убедитесь, что отраженные ключи скопировались. Если они там, и вы решили внести для ваших пользователей какие-то изменения в реестре, сделайте их в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software, и новые настройки будут скопированы, когда ваши пользователи запустят приложение в первый раз.

Теперь обратитесь к вашим записям ключей реестра, относящихся к пользовательским настройкам. Если вы обнаружили ссылки на пользовательские файлы, хранящиеся на локальных драйвах терминального сервера, вы должны попробовать скопировать эти файлы в подкаталог вашего драйва ROOTDRIVE, затем изменить значение реестра так, чтобы оно указывало на новое место. Если эти ключи находятся в HKEY_LOCAL_MACHINE, то просто измените их там. Если они находятся в HKEY_CURRENT_USER, измените их там и в подключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software. Задокументируйте все изменения, которые вы делаете в реестре, чтобы повторить их позже на рабочем терминальном сервере. Запустите приложение и убедитесь, что оно не испытывает проблем с новыми каталогами.

Это процесс - метод проб и ошибок, он отличается для каждого устанавливаемого вами приложения. К счастью, его следует применять только для приложений, не сертифицированных для Windows.


Установка роли терминального сервера


При входе администратора на сервер WS2K3, появляется мастер Manage Your Server:

Щелкните ссылку Add or remove a role для запуска мастера "Configure Your Server":

Затем мастер начнет сканирование ваших сетевых соединений, чтобы определить совместимые роли, а затем выдаст список доступных ролей.

В окне, появившемся после сканирования, выберите роль терминального сервера и щелкните Next.

Мастер предупредит, что после добавления роли сервер будет перезагружен, и запустит апплет

Add/Remove Windows Components для добавления нужных служб. По завершении сервер перезагрузится.

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

После перезагрузки зарегистрируйтесь в системе и вы увидите два окна. Одно из них сообщает о том, что роль терминального сервера успешно установлена.

Второе окно содержит весьма полезный список дальнейших шагов, которые вы должны предпринять для завершения настройки.



Утилиты командной строки


Есть несколько утилит комадной строки, которые могут помочь в администрировании сервера. Большинство из них дублируют функции Terminal Services Manager, но версии командной строки удобны при написании скриптов.

CHANGE USER {/Install /Execute} - Команда CHANGE USER используется для переключения сервера между режимами инсталляции и исполнения.

CHANGE LOGON {/Enable /Disable} - запрещает прием новых соединений сервером

Query {Process | Session | Termserver | User} - Команда Query дает ту же информацию, что и Terminal Services Manager; она перечисляет активные процессы в сеансе, доступные терминальные серверы и текущих пользователей.

TSSHUTDN - TSSHUTDN используется для выключения или перезагрузки терминального сервера. Эта команда, в отличие от команды Shut Down в меню Start, предупреждает пользователей о выключении, чтобы они смогли сохранить свою работу. Затем осуществляется завершение каждого сеанса и в конце концов полное выключение сервера.

Вы можете сократить команду Query User до QUSER для быстрого получения списка активных сеансов на терминальном сервере.

Есть также другие инструменты, которые могут помочь в управлении и блокировке терминального сервера, в управлении групповыми политиками, профилями пользователей и печатью. Например, triCerat Simplify Profiles позволяет сохранять, восстанавливать, создавать и удалять настройки реестра конечных пользователей.

Поддержи сайт!



Вирусы, черви, трояны...


Существует несколько типов вредоносного кода, от которого необходимо защищать систему. Хотя такой код обобщенно называют "вирусами", существует разница между вирусами, троянами и червями.

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

Загрузочные вирусы, например, Michelangelo и Disk Killer, устанавливают себя в загрузочный сектор жесткого диска, чтобы выполняться перед запуском операционной системы.

Макровирусы, например, Melissa и Nice Day, которые находятся внутри документов Office. Эти вирусы запускаются при открытии документа и пытаются инфицировать другие документы Office или шаблоны, чтобы новые создаваемые документы также оказались зараженными.

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

Троян - это программа, которая содержится внутри другой внешне безобидной программы. При запуске такой программы (например, хранителя экрана, поздравительной открытки, shareware-программы) в систему инсталлируется троян. Трояны могут выполнять роль spyware (шпионских программ), отправляя конфиденциальную информацию третьей стороне или могут использоваться для атак типа DoS. Основное отличие троянов от вирусов состоит в том, что трояны сами не размножаются - для инфицирования системы они должны быть запущены вручную.

Атака DoS посылает большое количество запросов на некоторый сервер или URL, вызывая сильную загрузку сервера и предотвращая обслуживанием им других запросов. Распределенная атака DoS использует вирусы, трояны или червей для подчинения нескольких компьютеров в Интернет, приказывая им одновременно атаковать некоторый сервер.

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

Если вы используете разрешения по умолчанию и храните пользователей в группе Users (не в Power Users), то ваша система защищена от большей части вирусов и троянов, которые пытяются заразить системные файлы или файлы в каталоге Program Files. Кроме того, вы можете использовать групповые политики для дополнительных ограничений, например, ограничить пользователей процессами и приложениями, которые они могут выполнять, запретить запись на диск С сервера и т.п.

Даже с улучшенной безпасностью файловой системы WS2K3 и дополнительными ограничениями, которые могут быть наложены групповыми политиками, полезно установить антивирусное ПО и систему управленяи патчами - авторы вирусов постоянно изобретают новые способы навредить вашей системе.



Все вместе


Как вы видели, есть несколько способов обеспечения безопасности терминальных серверов и защиты их от вирусов. В этом разделе мы рассмотрим два примера того, как реализуются эти способы.



Заказная инсталляция


Некоторые производители ПО учитывают Terminal Services при написании программ и предоставляют инструкции по установке их на терминальном сервере. В качестве примера рассмотрим процесс установки приложения, которое проектировалось с учетом Terminal Services - Microsoft Office 2000. Office 2000 в чистом виде имеет ряд проблем при работе на терминальном сервере.

Install on First Use. Поскольку пользователи не имеют права инсталлировать компоненты на терминальном сервере, опция Install on First Use непригодна. Вместо этого нужно установить все компоненты либо Run from My Computer, либо Not Available.

Имя и инициалы пользователя - Инсталлятор запрашивает у пользователя его имя и инициалы, поэтому эти данные достанутся всем пользователям терминального сервера. Вам необходимо разрешить переключатель NOUSERNAME, чтобы Office запрашивал у пользователя его имя при первом запуске.

Анимация - Частые прорисовки экрана крайне нежелательны в терминальной среде, поэтому анимации следует избегать. Главный преступник здесь - это Помощник, его не следует устанавливать.

Эти проблемы решаются применением трансформы для Office 2000 - файла TermSrvr.mst. Трансформа - это специальный файл, который предписывает Windows Installer настроить Office для Terminal Services и исключить пролематичные возможности Office 2000.

Трансформы для Terminal Services можно найти в Office Resource Kit, который вы можете загрузить по ссылке http://www.microsoft.com/office/ork/2000/appndx/toolbox.htm#orktools. Есть также подробная статья об установке Office на терминальном сервере: http://www.microsoft.com/office/ork/2000/two/30t3_2.htm.

Раздобыв файл MST, вы готовы к установке Office 2000. Откройте в панели управления апплет Add/Remove Programs, выберите Add New Programs. Щелкните CD or Floppy, найлите файлы Office и выберите SETUP.EXE. Теперь вы должны указать инсталлятору использовать трансформу. Для этого добавьте к команде

TRANSFORMS=path\TermSrvr.mst

По завершении установки щелкните Finish для перевода Terminal Services обратно в режим исполнения. Я рекомендую устанавливать последний релиз Office, поскольку в них исправлены некоторые ошибки, затрагивающие пользователей Terminal Services.


Теперь следует добавить кое- какие настройки для ваших пользователей. Вы можете это сделать с помощью Office Profile Wizard или файлов ADM для Office 2000 совместно с редактором локальных или доменных групповых политик. Если вы хотите использовать Office Profile Wizard, следуйте документации, которую предлагает Microsoft. Если вы находитесь в домене AD или используете групповые политики для управления пользовательскими настройками, см. Главу 4. Для использования локальной политики, найдите файлы ADM, входящие в состав Resource Kit, затем запустите редактор политик:

GPEDIT.MSC



Щелкните правой кнопкой на Administrative Templates, выберите Add/Remove Templates. Добавьте файлы ADM для программ, которые вы инсталлировали. В следующей таблице перечислены файлы ADM, ассоциированные с программами Office.

Компонент Office

Файл ADM

Общие настройки Office

OFFICE9.ADM

Word 2000

WORD9.ADM

Excel 2000

EXCEL9.ADM

PowerPoint 2000

PPOINT9.ADM

Outlook 2000

OUTLK.ADM

FrontPage 2000

FRONTPG4.ADM

Access 2000

ACCESS9.ADM

Publisher 2000

PUB9.ADM

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



Вы должны проверить все значения и настроить Office для ваших пользователей. Вам следует запретить любые особенности, использующие звуки и анимацию. Удалите из всех продуктов команду Detect and Repair. Вы можете также запретить проверку правописания и грамматики при вводе (Check Spelling as you Type и Check Grammar as you Type), поскольку эти операции сильно загружают процессор.

Вы должны учитывать, что если вы используете для настройки локальную машинную политику, то настройки будут применены ко всем пользователям, включая администраторов.

С выпуском Windows XP, Microsoft включила необходимые модификации для терминальных серверов внутрь инсталляционного пакета MSI. При инсталляции Office XP на терминальном сервере, Windows Installer обнаруживает наличие терминального сервера и автоматически применяет необходимые изменения. Трансформы больше не нужны.

Даже с этими новыми улучшениями в установке Office XP все равно необходимо сделать пост-инсталляционную настроку, используя файлы ADM для Office XP. Подробнее см. http://www.microsoft.com/office/ork/xp/one/deph02.htm.


Замена рабочего стола


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

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

Большинство устройств тонкого клиента поддерживают автоматическую конфигурацию через DHCP и FTP. Вы добавляете URL к расширению DHCP, и при загрузке клиента он загружает свою конфигурацию с указанного FTP.

Быстрое развертывание и обновление приложений. Если вы работаете в большой компании, то знаете, насколько тяжело распространять программное обеспечение для множества пользователей. Используя Terminal Services и тонкие клиенты, вы просто устанавливаете новое ПО на серверах, и оно становится доступным тысячам пользователей.

Уменьшение энергопотребления. Устройства тонких клиентов не имеют движущихся частей, они потребляют всего 10% мощности обычного ПК Wintel. С учетом постоянного роста цен на электроэнергию, это может дать существенную экономию для вашей компании.

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


На рынке устройств тонкого клиента есть много игроков, включая Wyse Technologies’ Winterm и Neoware EON. Эти устройства могут использовать любую встроенную ОС (Windows CE, embedded Linux и т.п.).

Однако, в модели замены рабочих столов есть и потенциальные недостатки, включая ограниченную приспособляемость одноразовых приложений, ограничения в персонализации пользовательских настроек и повышенная стоимость внедрения:

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

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

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