пятница, 5 сентября 2014 г.

Troubleshooting Citrix Seamless Sessions

Доброго времени суток, коллеги.
В данной статье рассмотрим диагностику и устранение ошибок работы бесшовной ICA сессии при запуске приложений на терминальном сервере Windows 2012 c установленным Citrix VDA XenDesktop 7.1.
В начале двадцать первого века, еще до анонса компанией Microsoft операционной системы Windows 2008 c технологией TS RemoteApp, компания Citrix выпустила продукт Citrix MetaFrame позволяющий пользователям получать доступ к удаленным приложениям через службы терминалов в режиме бесшовных сессий. Данная технология (Seamless sessions) позволяет приложениям вести себя так, будто они запущены на компьютере конечного пользователя, т.е. при запуске приложения, не отображается рабочий стол удаленного сервера терминалов, а каждое приложение запускается в своем масштабируемом окне, имеющем собственный значок в панели задач.

Случается, что бесшовная сессия по неизвестным причинам переставала работать, либо не работала изначально. Это приводит к тому, что приложения, запущенные в бесшовном режиме отображаются внутри окна терминального сервера, как показано на скриншоте ниже.
Перед поиском и устранения неисправности, необходимо убедиться, что установлены все последние обновления Windows и актуальные Roll-Up’ы и Hotfix’ы XenDesktop 7.1. Также необходимо обновить Citrix Receiver до последней версии.
Приступим к диагностике.

1. Необходимо переопубликовать приложение, либо поместить публикацию в другую папку. Для этого в консоли Citrix Studio выбираем раздел «Delivery Groups», открываем вкладку «Applications», находим необходимое приложение, в нашем случае «Paint». Щелкаем правой кнопкой мыши по приложению, нажимаем на «Properties»
В окне «Application Settings» нажимаем на «Delivery». В строке «Application category (optional):» вводим название папки, в нашем случае «2012». Нажимаем «Ок».

2. Проверяем работоспособность, запустив приложение используя Native client (Citrix Receiver), далее Web-клиент (Web Interface).

3. Далее необходимо проверить значение параметра «TWIMode» в файле «launch.ica». Для этого авторизуемся на Citrix Web Interface. Заходим в папку «2012».
Щелкаем левой кнопкой мыши по ярлыку «Paint», в появившемся меню нажимаем «Save»
Открываем в программе «Notepad» скачанный файл «launch.ica».
Убеждаемся, что параметр «TWIMode» равен «On»:
TWIMode=On
Этот параметр определяет поведение бесшовной сессии для всех подключений. В нашем случае, включен режим бесшовной сессии на все подключения. 
Подробнее тут.

4. Добавить ключ «SeamlessFlags» с параметром «3EFFB6» по пути «HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Citrix/wfshell/TWI». Данный ключ применяет бесшовную сессию глобально для всех подключений.
Проверка применения данного параметра не требует перезагрузки самого сервера, достаточно перезапустить ica-сессию. Подробнее тут.

На этом стандартная диагностика заканчивается, и если при этом бесшовная сессия все еще не работает, то на лицо проблема со смежными службами, а не с некорректной настройкой бесшовной сессии.
Хочу заметить, что при использовании в качестве целевого устройства Citrix Provisioning Services VDA-агента с операционной системой Windows 2012R2, бесшовная сессия работать не будет без дополнительной настройки самого целевого устройства (target device).
Для этого создадим необходимые символьные ссылки на целевом устройстве с VDA-агентом:
mklink /J C:\PROGRA~1 "C:\Program Files (x86)"
mklink /J C:\PROGRA~2 "C:\Program Files (x86)"
Более подробнее в статье «Case Study: Effects of File SystemOptimization Before Provisioning XenApp».

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