Настройка сервера Linux и Windows
ITShaman - Сайт для АЙТИшников!
"Машины должны работать. Люди должны думать."
(девиз компании IBM)

Неправильно закрываются терминальные сессии после закрытия приложения

Наверное, во всех больших организациях доступ в 1C организовывается с использованием терминального сервера. Такой сервер позволяет в несколько раз повысить быстродействие всей системы и не чувствовать каких-либо “проседаний” при большом количестве единовременных обращений к базе. Операционная система на терминальном сервере обычно 64-битная, так как количество ОЗУ в нем значительно больше чем 4 Гб.

Именно на 64-битной операционной системе Windows Server и наблюдается проблема с зависанием терминальных сессия после их закрытия.

Суть проблемы

Работник бухгалтерии подключается к терминальному серверу через RDP-клиент, открывает в своей сессии 1С-клиент и спокойненько себе работает. В конце рабочего дня он закрывает свой 1С-клиент и выключает компьютер. Придя на работу утром, работник, как обычно, включает свой терминал, а там синий экран. Бодрое, утреннее настроение резко исходит на нет.

В чем же беда?

Решение

Вся проблема кроется в 64-битности вашей операционной системы. Microsoft, чтобы сгладить проблемы совместимости 32- и 64- битных приложений, разрабатывает различные программные прослойки, который помогают правильно выполнять изначально поставленные перед ними задачи. Но, как говорится: “хотели, как лучше, а получилось как всегда.”

Такой проблемной прослойкой является процесс splwow64.exe, который и является корнем всех наших терминальных бед.

splwow64.exe – это программная прослойка, которая позволяет 32-битным приложениям соединиться с 64-битным диспетчером службы очереди печати.

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

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

Чтобы насильно объявить splwow64.exe процессом, который принадлежит к терминальной сессии, нужно отредактировать системный реестр:

  1. открываем реестр на сервере терминалов regedit;
  2. ищем ветку [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs]
  3. создаем параметр splwow64.exe, типа DWORD (битность любая) и присваиваем ему значение 0 (ноль).

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

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

P.S. Не смотря на то, что компания Apple в последнее время не сильно удивляет своих поклонников какими-то новыми инновационными гаджетами, ей удается удерживать лидера рынка мобильных телефонов по всему миру. Apple цены практически не падают и все их устройства, даже начиная с самых первых, ценятся до сих пор. До этого остальным компаниям мобильного рынка пока далеко.

Статья опубликована 29.03.2013 · Автор статьи: Зюзгин Иван
Статья относится к сервер, Microsoft
Случайные 7 статей:
  1. Как установить принтер Canon LBP-2900 в Linux Ubuntu?
  2. Как убрать зеленую кайму у шрифта в Gimp?
  3. Как подключиться к MySQL удаленно?
  4. Как изменить имя интерфейса с eth0 на eth1 в Debian?
  5. Starus Partition Recovery - программа восстановления данных
  6. Планировщик в Linux или как правильно использовать crontab
  7. Русские теги mp3-файлов в Linux
Комментарии
Имя (обязательное поле)
e-mail (обязательное поле) Сайт
Текст комментария:
IT-новости
Популярное
Облако тегов
При цитировании документа активная ссылка на сайт обязательна.
Администрирование и настройка серверов, рабочих станций на базе ОС Linux и Windows. www.itshaman.ru - Настройка Linux и Windows © 2009 - 2017