Прибить удалённо RDP сессию.

Обсуждение программ nnCron и nnCron LITE

Прибить удалённо RDP сессию.

Postby Halfer » Thu, 07 May 2009, 08:09

На терминальном сервере переодичеки подвисают пользовательские сессии. Если честно, устал их прибивать вручную. Была придумана следующая схема:
На компе, с которого происходит работа через RDP создаём файлик в который помещаем следующий код:
Code: Select all
: main
   QUERY: "Удалить Вас с сервера?"
      IF
         HOST-EXIST: "192.168.0.1" NOT
            IF
               ERR-MSG: "Нет связи с сервером!"
               EXIT
            THEN
         FILE-EXIST: "\\192.168.0.1\All\Flags\%USERNAME%.tms"
            IF
               QUERY: "Отменить удаление"
                  IF
                     FILE-DELETE: "\\192.168.0.11\All\Flags\%USERNAME%.tms"
                     EXIT
                  ELSE
                     MSG: "Ну и ладно!"
                     EXIT
                  THEN           
            THEN
         FILE-CREATE: "\\192.168.0.1\All\Flags\%USERNAME%.tms"
         GetLastError 0 =
            IF
               MSG: "Вы будете удалены с сервера в течении 1 минуты!"
            ELSE
               ERR-MSG: "Произошла неизвестная ошибка!"
            THEN
      ELSE
         MSG: "Ну и ладно!"
      THEN
;

Запускается эта задача так:
Code: Select all
nncron.exe -runfile "имя файла"

На серваке в кронтаб добавляем следующую задачу:
Code: Select all
#( reset_rdp
   AsLoggedUser
   SingleInstance
   Rule: FILE-EXIST: "D:\All\Flags\*.tms"
Action:
   SWHide
   START-APPW: "query.exe session > %temp%\Active.tms"
   FOR-FILES: "D:\All\Flags\*.tms"
      START-APPW: "type %temp%\active.tms | find /I %QUOTE%%FOUND-FILENAME 4 - 0 MAX%%QUOTE% > %temp%\%FOUND-FILENAME%"
      START-APPW: "for /F "tokens=3" %%i in (%temp%\%FOUND-FILENAME%) DO reset session %%i"
      FILE-DELETE: "%temp%\%FOUND-FILENAME%"
      FILE-DELETE: "D:\All\Flags\%FOUND-FILENAME%"
      FILE-APPEND: "d:\logs\ClearRdp\%MM%-%DD%.txt" "%hh%:%mm%:%ss%%crlf%%FOUND-FILENAME 4 - 0 MAX%%crlf%%crlf%"
   ;FOR-FILES
)#

Ну вот типа так можно снять с себя рутинную работу по убиению подвисших пользовательских сессий на терминальном серваке.
З.Ы. Для корректной работы данной схемы, на серваке должна быть установлена серверная ОС и штатный RDP от MS.
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Прибить удалённо RDP сессию.

Postby Rett Pop » Wed, 13 May 2009, 06:48

А не проще в настройках терминальника ограничить время бездействующей сессии? Зачем огород городить?
Rett Pop
 
Posts: 8
Joined: Sat, 17 Jul 2004, 18:59
Location: Ukraine

Re: Прибить удалённо RDP сессию.

Postby Halfer » Wed, 13 May 2009, 07:19

Rett Pop wrote:А не проще в настройках терминальника ограничить время бездействующей сессии? Зачем огород городить?

Если бы всё было так просто! У нас разные пользователи по разному пользуют терминальные сессии. Например, бухгалтерия в течении дня практически не отключает RDP, но сказать что они там активно работают низя, тупо сворачивают окно када не работают и всё. Некоторые работают в торговой программе и могут делать длительные перерывы в работе терминальной сессии, опятже сворачивая окошко. Я считаю своей задачей не тупо ограничить бездействие сессии и создать какие-то рамки в работе пользователей. Я, напротив, стараюсь создать им комфортные условия в работе. Именно поэтому наши женщины меня любят и уважают ;-)
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Прибить удалённо RDP сессию.

Postby Rett Pop » Wed, 13 May 2009, 20:09

Так время действия сессии можно настроить на уровне пользователя...
Rett Pop
 
Posts: 8
Joined: Sat, 17 Jul 2004, 18:59
Location: Ukraine

Re: Прибить удалённо RDP сессию.

Postby Halfer » Fri, 15 May 2009, 05:24

Rett Pop wrote:Так время действия сессии можно настроить на уровне пользователя...

Ну да, можно, но не выход. Есть следующие сложности:

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

Вот поэтому и придумал схему, изложенную в начале топика.
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Прибить удалённо RDP сессию.

Postby alexts » Mon, 01 Feb 2010, 16:20

Полезная штука, спасибо.
А подскажите как :
1. Прибить все сессии
2. Прибить и отключенную сессию , а не только подвисшую. У меня они "светяться" как отключенные.
alexts
 
Posts: 4
Joined: Mon, 01 Feb 2010, 15:16

Re: Прибить удалённо RDP сессию.

Postby Munch » Tue, 04 May 2010, 08:43

alexts wrote:Полезная штука, спасибо.
А подскажите как :
1. Прибить все сессии
2. Прибить и отключенную сессию , а не только подвисшую. У меня они "светяться" как отключенные.


Вставил в планировщик на исполнение в час ночи бат файл следующего содержания :
reset session 2
reset session 3
..................
reset session 24
reset session 25
reset session 1

после этого можно писать задание на бэкап базы
Munch
 
Posts: 1
Joined: Tue, 04 May 2010, 08:22

Re: Прибить удалённо RDP сессию.

Postby lex2002s » Fri, 21 Nov 2014, 22:14

Можете воспользоваться моей программой, которая находит открытые терминальные сессии на сервере из списка и, кроме того, позволяет их принудительно закрыть. http://kovanev.net/downloads/my-soft/21 ... p-sessions
lex2002s
 
Posts: 1
Joined: Fri, 21 Nov 2014, 22:13

Re: Прибить удалённо RDP сессию.

Postby VoidVolker » Sat, 22 Nov 2014, 23:31

А консольный режим есть?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Google [Bot] and 2 guests

cron