После завершения удалённого приложения, на сервере остаётся активный сеанс, что в дальнейшем вызывает и другие проблемы.
Когда пользователь закрывает все запущенные удалённые приложения (у кого-то оно одно, у кого-то больше), то сеанс его остаётся запущенным (Дисконектед), и даже настройка вышибать разорванный сеанс через 5 минут не работает.
Я знаю, что решение задачи этой есть, встречал обсуждения, но как-то с решением тишина. Вопрошавший исчезает не объявив решил ли он её и как или оставляет ссылку на решение которое ему помогло, но ссылка такая оказывается уже не работающей.
Из-за этой проблемы потом вылезает следующая (не всегда, но достаточно часто, чтоб раздражать). Когда пользователь снова входит в УП, то загрузка "Застревает" и показывает чёрный экран (в подробностях). Вышибание сеанса (логофф) помогает сразу. Причём в любом случае, хоть вышибание при уже застрявшем, хоть перед такой повторной попыткой входа.
Чтоб сеанс самозавершился, помогает так же вышибание процессов этого пользователя rdpshell.exe и rdpinit.exe.
добрый день! Можно по подробнее?
Какая операционная система используется? Программа для терминального доступа?
Используете стандарнтые терминалы MS Windows или сторонние терминалы.
Так на вскидку можно предположить то проблема в настройках самого терминального сервера, но это всего лишь мое предположение.
(2) SaschaL, Вин 2008 Р2 Стандарт. Клиенты разные Вин 7,8,8.1.
RDP Клиент виндовый.
Настройки сервера стандартные. Сервер стоит в датацентре, винда устанавливалась как и всем.
ищите по splwow64.exe. Он не дает нормально закрыть сеанс
У меня такого процесса не зависает, да и нет его в активных.
(7) dascon,
можно поставить настройках пользователя "Завершение отключенного сеанса - 1мин." и "При превышении ограничений или разрыве соединения - Завершить сеанс".
Стоит 5 минут. Думаю одна или пять не играет роли.
(8) SaschaL,
можно выставить принудительное завершение приложений при отключении сеансов.
Была у нас подобная проблема, пользователи сваливали домой а программы оставались рабочими, у нас это была 1С.
ПРишлось выставить принудительное завершение приложений при отключении сеансов
Имеете ввиду в Планировщике задач? В принципе там есть тригер такой. Ток придётся для каждого пользователя описывать. Потому как это не нужно для админа. Под ним запускаются всякие задачи, которые долго работают. И я в 1Ске бывает всякие задачи запускаю и разрываю, чтоб не ждать... Кароче, хорошо бы решить задачу штатными средствами, а не плясками там, где вроде как должно работать. Попадалось про прописывание процессов как системных (в реестре), вот хорошо бы, чтоб попался тот, кто в курсе, чтоб я там не натворил делов.
А с 1Ской я поступил иначе. В полночь запускается 1Ска под именем "стопсистема" рассылает всем активным 1Скам сообщение (и себе тоже) и они завершаются без аварийного выхода. Это для архивирования базы и прочего сервиса.
(4) AlexO, можно выставить принудительное завершение приложений при отключении сеансов.
Была у нас подобная проблема, пользователи сваливали домой а программы оставались рабочими, у нас это была 1С.
ПРишлось выставить принудительное завершение приложений при отключении сеансов
(8) SaschaL, Блин. Это на 12 пользователей для одного сервера и 16 для другого нужно создавать по задаче с тригером... Чтоб при обрыве пользователя вышибались два процесса именно этого пользователя (а не всех подряд)
(10) l_men, Ну типа того. Вопрос лишь в том, можно ли с этими программами (rdpshell.exe и rdpinit.exe) так поступать. Всё таки сервер стоит не под рукой, а в другой стране, и если чего-то вклинит, то устранение косяка станет несколько проблемным...
(14) ne_en, Да делает он самое простое: выводит список процессов и фильтрует их 1)запущеные от данного пользователя, 2) ищет приложение tasklist.exe. А дальше просто берет колонку с сессией в которой запущен данный процесс и передает logoff параметром. В итоге не нужны привелегии администратора, чтобы завершить сеанс.
(15) DonTisto, Ага. Вроде интересно. Но тут нюанс. Пользователи могут использовать несколько разных удалённых приложений. Вход во второе не разлогинит ли в данном случае первое?
Ну или скажем, куда прикрутить этот скрипт, чтоб он срабатывал когда сеанс пользователя разорван?
(16) ne_en, Данный скрипт отработает так, как если бы человек зашел на удаленный рабочий стол и выполнил завершить сеанс.
Соответственно если они запускают с данного сервера несколько приложений, то они будут закрыты. Если с разных серверов, то нет.
По сути МОЖНО сделать скрипт который будет искать отключенные сеансы и завершать их, но данному скрипту нужны будут права администратора для завершения чужих сеансов.
По сути МОЖНО сделать скрипт который будет искать отключенные сеансы и завершать их, но данному скрипту нужны будут права администратора для завершения чужих сеансов.
Вот такой вариант устроит. Могу повесить на шедулер (с интервалом 5 минут). Но сам я написать скриптик не смогу. Прошу помощи в этом ;)
А ещё хорошо, если будут вышибаться все отключенные, кроме админа.
Не проверял, так что надо проверить.
Диск - для русской версии
Disk - для английской
username - имя пользователя, которого не надо грохать.
Запускать с привилегиями администратора.
@echo off
SetLocal EnableExtensions
for /f "tokens=2 delims= " %%G in ('qwinsta.exe ^|findstr /c:"Диск " ^|findstr /V /c:"USERNAME" ^|findstr /V /c:"services"') do logoff %%G
(21) sikuravv, Да. Почитал. Но у меня печать осуществляется не средствами винды, поэтому этот процесс не застревает.
Но застревают другие.
"Можно добавить указанный процесс в список программ которые операционная система может завершить автоматически." Вот тут вот я и терзаюсь в сомнениях. Безопасно ли такое деяние в отношении rdpshell.exe и rdpinit.exe. А то ведь сервер стоит в абсолютной недосягаемости в случае прекращения функционирования RDP. (США.штат Калифорния :) )
(22) ewqewqewq, Автоотключение стоит, но не автоотключает. Если в списке процессов у оторванного сеанса остановить процессы rdpshell.exe и rdpinit.exe, то дальше сеанс завершается.