Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Долгий выход из терминального сеанса.

Автор: BoaSoft
Дата сообщения: 20.01.2006 03:36
Уважаемые коллеги, помогите разобраься с такой проблемой.

К сожалению, общей темы по терминалам, в отличии от AD я не нашел, поэтому пришлось содать новую.

После переустановки сервера (причина - старый вариант являлся полем для эксперементов и накопилось куча неустранимых глюков) начались проблемы с терминалами.

Сервер несет следующие роли: контроллер домена, сервер терминалов, шлюз в интернет. еще, от части, файловый сервер (нагрузка тут никакая - папки с документами и прайсами, музыка и прочая дребедень).

Почему такая каша - второй сервер начальство мне не даст.

Операционная система - Win 2003 server enterprise sp1 rus. В сети примерно 15 машин. Одновремеено в терминалах с 1С работают около 8. В логах серьезных ошибок нет, в основном ошибка mrxsmb - перенаправитель не смог определить тип подключения (рекомендация MS - забить, ибо не имеет важного значения) и редкие ошибки печати (то бумага кончилась, то подобное). Uptime пока еще маленький - с 3 января сего года, когда и была запланированна переустановка.

Предвидядя вопрос, скажу сразу dcdiag и netdiag ничего серьезного не вывили.
Если надо - предоставлю листинги их работы.

Проблема следующая: если я захожу терминалом на сервер и запускаю (или не запускаю) любой софт, то после нажатия кнопки завершения сеанса выход следует практически мгновенно. Если же я прописываю в свойствах клиента RDP любую программу (сначала грешил на проблему с 1С, из-за которой все это и затевалось, но и при прописывании блокнота - та же бяка) после завершения этой программы завершения сеанса не происходит, сеанс очень долго весит. Иногда до 3-5 минут. А то и дольше. На старом глючном сервере (правда, тот был без sp1) такого не происходило.

Что не в правах доступа дело, это точно - и под юзером и под админом одна и та же бяка.

Пользователи стали доставать. Народу надо оперативно открывать и закрывать базы, а это очень мешает.

Опытным путем выяснил, что висит и не завершается процесс userinit.exe. Если его прибить из консоли управления терминальными сеансами, то сеанс завершается практически мгновенно.

Начал эсперементы. Переписал батник запуска 1C.

Код:
@cmdow @ /HID
@echo off
start taskkill /f /im userinit.exe /t
start 1cv7s.exe [some param]
cls
exit
Автор: Alan Mon
Дата сообщения: 20.01.2006 10:33
Вообще-то процесс userinit должен сам завершаться через несколько секунд после логона в терминал. Скорее всего действительно проблема была с перенаправлением звука. Посмотри сейчас, после логона в терминал остаются ли в памяти висеть процессы userinit? Нехорошо их так убивать.
Автор: BoaSoft
Дата сообщения: 20.01.2006 18:02

Цитата:
Вообще-то процесс userinit должен сам завершаться через несколько секунд после логона в терминал


Цитата:
Посмотри сейчас, после логона в терминал остаются ли в памяти висеть процессы userinit?


Только что зашел на сервер терминалом и посмотрел в процессах. В моем сеансе userinit не висит.


Цитата:
Посмотри сейчас, после логона в терминал остаются ли в памяти висеть процессы userinit?


У тех же, у кого средой прописана программа (все равно какая, главное средой!), ситуация очень интересная.

У тех, кто подключился давно - его нет. У подключившихся недавно - висит. Примерно до 5-8 минут. Сейчас специально проверил. К тому же, поговорил с пользователями. Те, кто утром запускал сеанс, а вечером выходил из него, ничего не замечали. Напрягало только тех, кто часто входил-выходил из сеанса. Процесс не успевал отвалится, отсюда и тормоза.

Что не в звуке дело - это точно. Запрешаю перенаправление звука, портов, принтеров - всего. Все равно висит userinit.


Цитата:
Нехорошо их так убивать
Так в этом то и вопрос!
Автор: Ici Chacal
Дата сообщения: 20.01.2006 18:45
BoaSoft
Интересно, правда интересно, как вы с Alan Mon решите этот вопрос, т.к. у меня присутствует подобная проблема, но не на всех серверах и не всегда. Очень жду. От себя привнесу не много. Если на сервере с консоли залогинен админ, то проблема исчезает.
Автор: BoaSoft
Дата сообщения: 21.01.2006 00:21

Цитата:
Если на сервере с консоли залогинен админ, то проблема исчезает


У меня к сожалению, нет. Хотя вчера вечером прегрузил сервер и одна проблема исчезла. В терминалах теперь могу подключить любой отключеный сеанс. Помню, что что-то обновлял, а не перегружался потом. Вот перезагрузка и исправила.

Сегодня посмотрел. Клиент, что идет с сервером, новее XP шного. Точную версию не скажу, но новее. Стоит ли именно его накатить на все машины? На тестовой машине обновление клиента проблему не решило.
Автор: BoaSoft
Дата сообщения: 24.01.2006 01:42
Похоже, вопрос закрыт. Решения не имеет by-desing. Так что, мой скрипт вполне оправдан.
Вот что нашел на Цитриковском форуме:


Цитата:
3. Сеансам опубликованных приложений может потребоваться до 60 секунд для завершения.

Решение: нет. Microsoft изменила код. В SP1 при входе запускаются два экземпляра userinit.exe. Один из экземпляров выполняется более 1 минуты, осуществляя авторегистрацию сертификата (Certification Auto Enrollment). Если вы оставили сеанс ICA подключенным к приложению более 60 секунд, а затем закрыли приложение, сеанс делает logs off немедленно и задержки не происходит - поскольку прошло достаточно времени, чтобы успел запуститься второй экземпляр userinit. Однако, если выход осуществляется слишком рано (до 60 сек.), процедура выхода дожидается запуска второго эксземпляра userinit, что вызывает задержку. (CTX106049)


Именно мой случай. После некотрого простоя или работы логофф мгновенный.

Немного уменьшу время ожидания и включу автоприбитие приложений.
Звук и остальное непричем.

Осталось решить глюк с подключением к отключенному сеансу и все !


Автор: simplix
Дата сообщения: 27.07.2006 12:48
Проблемы аналогичные, с самого начала догадывался что это из-за SP1. У меня уменьшение времени ожидания не дало желаемого результата, сеанс завершался по-прежнему долго. И разве автоприбитие приложений здесь уместно? "процедура выхода дожидается запуска второго эксземпляра userinit". Если же консольным сеансом на серваке прибить клиентское подключение, у него тут же завершается подвисший выход и при следующем запуске терминального подключения всё корректно работает. Какое мне сейчас пришло решение, в правильности не уверен, но всё же - сделать сценарий, чтобы при завершении сеанса клиента, на сервере убивалось его консольное подключение. Думаю это возможно и было бы более правильным решением чем прибитие userinit. Ещё вариант - написать прогу, которая бы запускала userinit только один раз за сеанс, а в ресстре (HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit) заменить запуск userinit при входе в систему на эту нашу прогу. Может быть существуют лучшие решения, ещё не искал
Автор: pasden
Дата сообщения: 26.12.2006 15:24

Цитата:
Ребяты привет! У меня такой вопрос, почему завершение сеанса клиента сервера терминалов длится до 15 мин???
ЗЫ: у меня 2003 Enterprise R2 SP1 RUS, клиенты XP
Все сделал по инструкции :

Цитата:Статья winextreme/winbase: Активация служб терминалов Windows Server 2003
Эта инструкция рассчитана как и на Windows 2000 Server так и на Windows Server 2003
(ц)SergeyCVS


Подскажите в чем проблема!!!!


Вообщем с проблемой разобрался: на одной из клиентских машин стоял принтер LBP1120, который все портил...(а точнее его драйвера), поменял на HP1018 - все заработало!
Автор: simplix
Дата сообщения: 26.12.2006 16:37
Да кстати, мне тоже не повезло с принтерами - все они 1120-е и 810-е, и дело не в самих драйверах этих принтеров, а в их мониторах состояния - никогда не подумаешь что такие проблемы могут быть из-за мониторов: в 98-м они ужасно тормозят систему, так что в 1С невозможно работать; на 2003-м один раз чуть не угробили сервак, теперь обнаружились проблемы с выходом из терминала - такое впечатление, что делали вирус, а вышел монитор состояния.
Автор: pasden
Дата сообщения: 26.12.2006 18:30

simplix, все правильно
Цитата:
дело не в самих драйверах этих принтеров, а в их мониторах состояния
я не правильно выразился, спасибо за камент!
Автор: KazanAlex
Дата сообщения: 17.01.2007 20:53
2 ALL.
Ну я решил проблему вот так по-тупому. Просто в свойствах юзера поставил автозавершение сеанса через одну минуту после логоффа юзера.

PS Проблема с юзерами, которые оставались висеть на серваке была очень редко, но .к. я в конторе не постоянно, то для меня выход вполне подходит.
Автор: SPV_Ed
Дата сообщения: 30.01.2007 15:04
Возможно поможет установка на ТС тулзы UPHClean от MS
http://www.intelliadmin.com/profileclean.msi

Цитата:
WHAT IS UPHCLEAN
================

UPHClean is a service that once and for all gets rid of problems with user
profile not unloading.

You are having profile unload problems if you experience slow logoff (with
Saving Settings for most of the time while logging off), roaming profiles
that do not reconcile, or the registry size limit is reached.

И еще - автозавершение завсиших процессов:

Цитата:
[HKEY_CURRENT_USER\Control Panel\Desktop]
"AutoEndTasks"="1"





Автор: diaminru
Дата сообщения: 09.09.2007 14:17
достаточно в среде прописать следующий батник:
@ECHO OFF
CD "[рабочая папка вашей программы]"
call [исполняемый файл программы] [параметры запуска, если имеются]
shutdown -l

использовать нужно именно оператор "call", тогда по завершению вызванного им процесса выполняется следующая команда, если его не использовать то будет сразу выполнен выход из системы который инициирует строка "shutdown -l".

на примере с 1с:
@ECHO OFF
CD "C:\Program Files\1Cv77\BIN"
call 1cv7s.exe enterprise /D D:\1C_base\ATC\ /N ИмяПользователя /P Пароль
shutdown -l

замеченные проблемы:
на экране фоном висит окно командной строки, если пользователь его закроет, сеанс сам не завершится.
Автор: Spec369
Дата сообщения: 15.03.2008 23:58
вот такое решение:

SYMPTOMS
You try to close a published application shortly after the application is started on a remote computer that is running Terminal Services and Microsoft Windows Server 2003 Service Pack 1 (SP1). However, the remote session does not end immediately. The Remote Desktop Connection window may stay open for up to 70 seconds.

Back to the top
CAUSE
This issue occurs because Windows Server 2003 SP1 moves the user and computer certificate autoenrollment into the Userinit process. The certificate autoenrollment has up to 70 seconds to finish.

Back to the top
RESOLUTION
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

To resolve this issue, create the AEExpress registry subkey in the registry of the Windows Server 2003 SP1-based remote computer that is running Terminal Services. To do this, follow these steps.

Note You have to create this registry key for every user on the Windows Server 2003 SP1-based computer.1. Click Start, click Run, type regedit, and then click OK.
2. In Registry Editor, locate and then click the following registry subkey:
HKEY_CURRENT_USER\Software\Microsoft\Cryptography\AutoEnrollment
3. On the Edit menu, point to New, and then click Key.
4. Type AEExpress, and then press ENTER.
5. On the File menu, click Exit to close Registry Editor.


Note We recommend that you not to use the AEExpress registry subkey in a regular production environment. If you have to use the AEExpress registry subkey, use it on a per-user basis.

Back to the top
WORKAROUND
To work around this issue, follow these steps: 1. Click Start, click Run, type Gpedit.msc, and then click OK.
2. Expand User Configuration, expand Windows Settings, expand Security Settings, and then click Public Key Policies.
3. Double-click Autoenrollment Settings, and then click the Do not enroll certificates automatically option.
Автор: BoaSoft
Дата сообщения: 16.03.2008 22:30
Spec369

спасибо за решение, но уже позновато

Той конторы, где я работал, уже нет. Но может другим пригодится.
Ваше предложение от MS, похоже, как раз и решает эту проблему:


Цитата:
В SP1 при входе запускаются два экземпляра userinit.exe. Один из экземпляров выполняется более 1 минуты, осуществляя авторегистрацию сертификата (Certification Auto Enrollment).


Автор: simplix
Дата сообщения: 16.03.2008 22:55
Только вот SP2 уже давно существует и поэтому вопрос не настолько актуальный как раньше...
Автор: Spec369
Дата сообщения: 20.03.2008 12:51
to simplex:
увы, но этот тормоз присутствует и в SP2(на x64 точно)...

ЗЫ. зачем флеймить
Автор: SPV_Ed
Дата сообщения: 20.03.2008 13:18
Spec369

Цитата:
You try to close a published application shortly after the application is started on a remote computer that is running Terminal Services and Microsoft Windows Server 2003 Service Pack 1 (SP1)

Ключевое слово - "shortly". Не делайте подобных резких движений - и проблемы не будет. И пользователей проинструктируйте по возможности.

Вообще конечно лучше иметь защиту "от дурака", например возможность завершения сеанса или опубликованного приложения только не ранее чем через N минут.
Автор: Nep
Дата сообщения: 15.01.2009 22:41
pasden
Автор: Konakoff
Дата сообщения: 05.02.2009 19:43
Никто не нашел действенного метода против этих зависаний?

Дело в том, что у меня на серверах, где нет домена этот самый Autoenrollment вобще отсутствует, что в реестре, что в GPO
Автор: probvs
Дата сообщения: 15.05.2009 10:43

Цитата:
@cmdow @ /HID
@echo off
start /wait 1cv7s.exe [some param]
start taskkill /f /im userinit.exe /t
cls
exit


это решение помогло с долгим выходом из сессии, но получается что при входе в сессию окно cmd разворачивается на весь экран есть ли возможность запускать его уже свернутым или вообще без видимых окон?
Автор: Tasias
Дата сообщения: 08.11.2009 17:01
Аналогичная проблема - в реестре по указаном пути нету Autoenrollment.
Помогите пожалуйста, кта вылечил ..?
Автор: vinspils
Дата сообщения: 23.01.2010 13:34
Проблема аналогична имею windows server 2003 sp2 кто-нить поборол это ?
Автор: m0tif
Дата сообщения: 12.03.2010 15:27
чё тупить, создайте просто его и всё
Автор: alezander
Дата сообщения: 09.06.2010 14:06
Я сделал так.
В терминале для пользователя запускается лаунчер вместо оболочки винды. Одна из кнопок в нем - "Выход".

По нажатию этой кнопки запускается батник
start taskkill /f /im userinit.exe /t
logoff

Правда под Администратором этот лаунчер не ставлю, так как нужна оболочка и наблюдаю долгий выход. Попробую поставить UPHClean.

Страницы: 1

Предыдущая тема: Удаленные рабочие столы (Windows 2003)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.