Доброго времени суток, уважаемые читатели. Снова с вами российский голос технической поддержки Citrix. Близится конец поддержки XenApp 4.5/5 for Windows 2003 (30.09.2012) и XenApp 5 for Windows 2008 (15.01.2013) и всё больше и больше наших клиентов либо уже перешли XenApp 6.0, либо сейчас переходят\собираются переходить на 6.5 под Windows 2008 R2. Изменений много и не только у нас. Об одном из них от Microsoft, и его последствиях я подробнее расскажу сегодня.

Начиная с Windows Vista, а точнее с появлением IE7 и защищённого режима (Protected Mode), Microsoft отделила IE от оболочки (shell) ОС (при этом интеграция осталась самой тесной), подробнее здесь. Это привело к устареванию нескольких ключей (подробнее здесь), в том числе -e, который позволял IE работать в режиме Проводника и публиковать его с конкретными дисками, папками и ссылками, подробнее здесь.  Если кратко, то это привело к тому что при запуске Explorer.exe из командной строки, исходный процесс Explorer.exe завершается и новый процесс Explorer.exe запускается как DCOM процесс в контексте сервиса DCOM Launcher. Если Explorer.exe запущен без параметров, то запустится десктоп (оболочка) вместо обозревателя файлов. О последствиях можно почитать здесь и здесь.

Мне довелось поучаствовать в расследовании двух проблем:

  1. Проводник не запускается. Сессия стартует, появляется диалоговое окно, но приложение не появляется, при этом сессия видна в консоле при старте приложения в статусе “подключается”, затем как “отключена”, а потом исчезает.  Решение этой проблемы здесь.
  2. Исчезновение опубликованного проводника из консоли. То есть сессия видна, статус её “активна”, но опубликованного приложения в ней посредством консоли не видно (период видимости при старте сессии в несколько секунд). Решения два: публикация через пакетный файл командной строки, содержащий всего две команды Explorer.exe и Pause или использвание треьтестороннего ПО, например explorer++. В первом случае, командная строка запустит исходный процесс Explorer.exe, который закроется сам и запустится новый процесс Explorer.exe под DCOM, как было описано выше. Хитрость в том, что  окно командной строки будет по-прежнему открыто и оно же является опубликованным в консоле экземпляром приложением. Недостаток здесь в том, что окно командной строки будет видно пользователю и будет ожидать завершения любой клавишей.