Службы терминалов и множественные сеансы работы
Службы терминалов (Terminal Services)1 относятся к поддержке в Windows нескольких интерактивных сеансов работы пользователей на одной и той же системе. С помощью этих служб удаленный пользователь может установить сеанс работы на другой машине, войти в систему и запустить приложения на сервере.
Сервер передает клиенту графический интерфейс пользователя (а также другие настраиваемые ресурсы, такие как управление звуковой подсистемой и буфером обмена), а клиент передает обратно на сервер пользовательский ввод. (Как и X Window System, Windows разрешает запуск отдельных приложений с удаленным отображением на стороне клиента, вместо удаленного взаимодействия со всем рабочим столом.)
Первый сеанс считается сеансом служб, или сеансом нуль (session zero), и содержит процессы, в которых реализуются системные службы. Первый сеанс входа в систему на физической консоли машины является сеансом номер один, а дополнительные сеансы могут создаваться с помощью программы подключения к удаленному рабочему столу (Mstsc.exe) или с использованием быстрого переключения пользователей.
Клиентские версии Windows допускают подключение к машине одного удаленного пользователя, но если кто-нибудь зарегистрируется в консоли, рабочая станция блокируется (то есть системой можно пользоваться либо в локальном, либо в удаленном режиме, но одновременно в обоих режимах ею пользоваться нельзя).
Версии Windows, включающие Windows Media Center, допускают проведение одного интерактивного сеанса и до четырех сеансов Windows Media Center Extender.
Серверные системы Windows поддерживают два одновременных удаленных подключения (для содействия удаленному управлению, например, для использования средств управления, требующих регистрации на управляемой машине) и более двух удаленных сеансов, если серверные системы соответствующим образом лицензированы и настроены в качестве терминального сервера.
Все клиентские версии поддерживают несколько созданных локально сеансов, которые могут использоваться поочередно с помощью функции, называемой быстрым переключением пользователей. Когда пользователь выбирает вместо выхода из сеанса отключение своего сеанса (например, щелчком на кнопке "Пуск" (Start) с последующим выбором пункта "Сменить пользователя" (Switch User) из подменю "Завершение работы" (Shutdown) или удержанием в нажатом состоянии клавиши Windows с последующим нажатием клавиши "L" и щелчком на кнопке "Сменить пользователя" (Switch User button)), текущий сеанс (процесс, запущенный в этом сеансе, и все, относящиеся к этому процессу структуры данных, дающих описание сеанса) остаются активными в системе, и система возвращается к основному экрану входа в систему. Если в системе регистрируется новый пользователь, создается новый сеанс.
Для приложений, которым нужно знать об их запуске в сеансе терминального сервера, есть набор интерфейсных функций Windows API для определения этого факта программным путем, а также для управления различными аспектами служб терминалов. (Подробности можно найти в документации по Windows SDK и по RemoteDesktopServicesAPI.)