Управление сеансами ICA
Мы обсудили, как предоставить пользователю клиента ICA и как его подключить к серверу MetaFrame. Я хотел бы завершить это главу обсуждением основной информации об управлении сеансами ICA.. Большая часть инструментов управления сенасами ICA находятся в Citrix Management Console. Вы можете контролировать опубликованные приложения и рабочие столы (но не содержание), дважды щелкая их значки в разделе Applications, контролировать все сеансы на индивидуальных серверах, щелкая значки Servers и выбирая вкладку Users. Выберите индивидуальный сервер и вы получите информацию о лицензиях, процессах, принтерах, управлении нагрузкой, сеансах, пользователях. Вообще говоря, вы будете использовать эти инструменты чтобы получить три категории информации:
- Информация о пользователях - идентификатор сеанса пользователя, выполняемое приложение и используемый сервер.
- Информация о сеансах - идентификатор сеанса, его состояние, продолжительность, а также информация о компьютере клиента (адрес IP, версия RDP и т.п.)
- Информация о процессах - идентификатор процесса и исполняемые файлы (образы), с которыми ассоциированы эти процессы
Win2K and NT имеют дело не с приложениями, а с процессами, наборами серверных ресурсов с минимум одним исполняемым компонентом. Процессы ассоциируются с образом, или именем приложения. Для нашей цели процессы, образы и приложения в значительной степени эквивалентны. Citrix и Microsoft используют понятие процесс вместо приложение потому, что часто необходимо ссылаться на идентификатор процесса, а не на приложение.
В следующем примере я покажу, как использовать Citrix Management Console для поиска приложений, выполняющихся в ферме, как устанавливать теневые сеансы, как закрывать приложения пользователей без завершения их сеансов ICA.
Получение информации о пользователях и процессах
В интересах поддержания морального духа коллектива (и потому что начальник любит игры), вы оставили пасьянс FreeCell на сервере MetaFrame. Однако, пользователям не разрешается играть в рабочее время, а только в обеденный перерыв. Чтобы определить, кто раскладывает псьянс в рабочие часы, вам нужно найти тех, кто зарегистрирован на серверах MetaFrame в ферме и какие процессы выполняются в их сеансах. Для этого вы можете использовать Citrix Management Console и командную строку. Использование этих инструментов зависит от того, что вы хотите найти - специфического пользователя, запустившего пасьянс, или определить, запущен ли вообще пасьянс где-то в ферме.
Чтобы определить конкретного играющего пользователя, щелкните значок Servers в Citrix Management Console и выберите вкладку Users.
Вы можете легко определить, какие компьютеры выполняют опубликованные приложения - имя приложения отображается в колонке Application. Однако, вряд ли вы опубликовали FreeCell и поэтому не можете сказать, какие приложения работают на рабочих столах. Для получения полного списка из GUI, выберите значок сервера, к которому подключены компьютеры (в колонке Server) и выберите значок сервера в разделе Servers. Вкладка Processes покажет все выполняющиеся в данный момент процессы, отсортированные по имени пользователя, имени образа и идентификатору сеанса. Щелкните на заголовке колонки для смены сортировки.
Вооружившись полученной здесь информацией, вы можете видеть, какие приложения выполняются на сервере, найти идентификатор сеанса, в котором выполняется эти приложения и определить индивидуальные идентификаторы процессов для каждого экземпляра приложения. Такую же информацию можно получить из командной строки. Для получения списка всех процессов, выполняемых некоторым пользователем на текущем сервере, введите query process username
Вы получите приблизительно такой результат: USERNAME SESSIONNAME ID PID IMAGE christaa 3 2812 explorer.exe christaa 3 2880 winpppoverether christaa 3 2888 icabar.exe christaa id 5 5 1036 explorer.exe christaa id 5 5 3076 winpppoverether christaa id 5 5 2060 icabar.exe christaa ica-tcp#18 6 1884 notepad.exe christaa id 5 5 2040 mspaint.exe
Чтобы сделать запрос другого сервера, отличного от текущего, укахите его имя, как в следующем примере
query process /server:termserv ChristaA
Вы не можете сделать всей фермы серверов, только индивидуальные серверы. Однако, этим способом вы можете увидеть несколько сеансов.
Если я хочу узнать, кто запустил специфический процесс , то запускаю команду query process немного иначе. Вместо того, чтобы указать в качестве параметра имя пользователя, я указываю имя образа, ассоциированного с процессом. Например: query process freecell.exe
Я получу полный список пользователей на запрашиваемом сервере, которые выполняют приложение, идентификатор процесса, связанный с каждым экземпляром процесса, а также идентификатор сеанса: USERNAME SESSIONNAME ID PID IMAGE administrator console 0 1268 freecell.exe administrator 3 2356 freecell.exe scott 4 2504 freecell.exe