Завершение сеанса в windows server 2008

Windows Server 2008 представляет собой операционную систему, разработанную Microsoft для предоставления мощных и надежных решений для различных серверных задач. В различных сценариях работы с серверами может возникнуть необходимость завершить сеанс пользователя.

Завершение сеанса пользователя на Windows Server 2008 может быть полезным при нескольких ситуациях, таких как обслуживание сервера, управление ресурсами или решение возникших проблем. Однако, чтобы избежать потери данных или создания проблем в работе сервера, важно правильно завершать сеансы пользователей.

Один из способов завершения сеанса пользователя на Windows Server 2008 — использование командной строки или средств управления удаленными сеансами. Эти методы позволяют администратору сервера завершить сеанс определенного пользователя или группы пользователей, не прерывая работу сервера в целом.

Важно помнить, что при завершении сеанса пользователя, все несохраненные данные будут потеряны, поэтому рекомендуется предупредить пользователя и убедиться, что все его работы сохранены, перед завершением сеанса.

Завершение сеанса пользователя на Windows Server 2008 — важный шаг для обеспечения безопасности и эффективности работы сервера. Зная различные способы завершения сеансов и правила их использования, администратор сервера сможет эффективно управлять пользователями и ресурсами сервера, предотвращая возможные проблемы и обеспечивая бесперебойную работу серверных приложений.

Содержание

  1. Раздел 1: Почему важно правильно завершать сеанс пользователя на Windows 2008 Server?
  2. Раздел 2: Какие проблемы могут возникнуть при неправильном завершении сеанса?
  3. Раздел 3: Как правильно завершить сеанс пользователя на Windows 2008 Server?

Раздел 1: Почему важно правильно завершать сеанс пользователя на Windows 2008 Server?

Во-первых, правильное завершение сеанса пользователя на Windows 2008 Server помогает освободить ресурсы системы. Когда пользователь выходит из своего аккаунта, сервер освобождает выделенную этому пользователю память, процессорное время и другие ресурсы. Это позволяет системе более эффективно управлять доступными ресурсами и ускоряет обработку запросов от других пользователей.

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

Кроме того, правильное завершение сеанса пользователя на Windows 2008 Server помогает поддерживать целостность данных. Когда пользователь завершает свой сеанс, система производит соответствующую синхронизацию и запись всех несохраненных данных. Это обеспечивает сохранность любых изменений, сделанных во время сеанса пользователя, и предотвращает возможные потери информации.

Итак, правильное завершение сеанса пользователя на Windows 2008 Server является важным аспектом для эффективной и безопасной работы серверной системы. Это позволяет освободить ресурсы системы, улучшить безопасность и сохранить целостность данных. Поэтому необходимо обеспечить, чтобы пользователи всегда завершали свои сеансы правильным образом.

Раздел 2: Какие проблемы могут возникнуть при неправильном завершении сеанса?

Неправильное завершение сеанса пользователя на сервере Windows 2008 может привести к следующим проблемам:

  1. Потеря данных — при неправильном завершении сеанса возможна потеря несохраненных данных, которые были открыты во время работы пользователя на сервере.

  2. Недоступность ресурсов — неправильное завершение сеанса может привести к блокировке или некорректному освобождению ресурсов, которые были выделены пользователю. Это может привести к нестабильной работе сервера и недоступности ресурсов для других пользователей.

  3. Повреждение файловой системы — неправильное завершение сеанса может вызвать несогласованные изменения в файловой системе сервера, что может привести к ее повреждению. Это может привести к потере данных или некорректной работе файлов и приложений на сервере.

  4. Снижение производительности — неправильное завершение сеанса может оставить открытыми некоторые процессы или ресурсы, что может привести к снижению производительности сервера и увеличению нагрузки на систему.

  5. Сбои и ошибки системы — неправильное завершение сеанса может вызвать ошибки и сбои в работе операционной системы сервера Windows 2008, что может потребовать перезагрузки или восстановления сервера.

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

Раздел 3: Как правильно завершить сеанс пользователя на Windows 2008 Server?

Правильное завершение сеанса пользователя на Windows 2008 Server может быть важным, чтобы обеспечить безопасность и сохранить работу пользователя. В данном разделе мы рассмотрим несколько способов, как можно правильно завершить сеанс пользователя.

1. Через командную строку:

Для завершения сеанса пользователя через командную строку на Windows 2008 Server можно использовать команду «logoff». Для этого откройте командную строку, введите команду «logoff» и нажмите клавишу Enter. Это приведет к завершению вашего текущего сеанса пользователя.

2. Через диспетчер задач:

Другой способ правильно завершить сеанс пользователя на Windows 2008 Server — использование диспетчера задач. Для этого нажмите комбинацию клавиш Ctrl + Shift + Esc на клавиатуре, чтобы открыть диспетчер задач. Затем найдите вкладку «Пользователи» в диспетчере задач и выберите пользователя, сеанс которого вы хотите завершить. После этого нажмите кнопку «Завершить сеанс» внизу диспетчера задач, чтобы правильно завершить выбранный сеанс пользователя.

3. Через «Панель управления»:

Также можно использовать «Панель управления» для правильного завершения сеанса пользователя на Windows 2008 Server. Щелкните по кнопке «Пуск» в левом нижнем углу экрана, выберите «Панель управления», а затем найдите иконку «Учетные записи пользователей» или «Пользователи и группы». Щелкните по этой иконке, чтобы открыть соответствующее окно. В этом окне выберите пользователя, сеанс которого вы хотите завершить, и щелкните по кнопке «Завершить сеанс» или «Удалить» (в зависимости от версии Windows 2008 Server). Это позволит правильно завершить сеанс выбранного пользователя.

Правильное завершение сеанса пользователя на Windows 2008 Server — важная процедура, которая помогает сохранить работу пользователей и повысить безопасность системы. Выберите удобный для вас способ из представленных выше, чтобы правильно завершить сеанс пользователя на вашем сервере.

Информация о материале
Категория: Windows

Просмотров: 699

Терминальный сервер Windows Server 2008 R2. В диспетчере задач по вкладке Пользователи при выборе пользователя и нажатии «Выход из системы». Появляется ошибка: Не удалось выполнить выход из системы для пользователя [имя_пользователя] (Код сеанса=[номер_сеанса]). Отказано в доступе.

Это происходит из-за того, что полные права выданные пользователю (Administrator) будут действовать только на вновь создаваемые сеансы пользователей, т.е. если в момент повышения прав пользователя (Administrator) существовал сеанс пользователя (User), то даже имея полные права пользователь (Administrator) не сможет щелкнув правой кнопкой мыши по имени пользователя (User) и сделать ему «Выход из системы». После того как пользователь(User) выполнит завершение сеанса и затем снова подключиться к терминальному серверу, тогда уже Administrator будет иметь право выполнять для данного пользователя (User) «Выход из системы».

Решение: Пуск -> Все программы -> Администрирование -> Службы удаленных рабочих столов -> Диспетчер служб удаленных рабочих столов -> [Имя_сервера] -> Выбрать пользователя, завершить сеанс.

Комментарии ()

Оставьте свой комментарий

Когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессии в терминальном клиенте (mstsc.exe, RDCMan или RDP HTML WEB клиенте) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит из активного режима в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.

Содержание:

  • Автоматическое завершение неактивных RDP сессий в Windows
  • Сообщения о превышении длительности RDP сессий

По-умолчанию RDP сессия пользователя в Windows может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с запущенными программами и открытыми документами.

На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2019 потребляют около 35% памяти сервера.

disconnected сесии не отключаются на rds/rdp сервере

Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks. Кроме наличие старых RDP сессий часто вызывает проблему блокировки учетной записи пользователей в домене после смены пароля (когда RDS сессии продолжает работать под старыми паролем пользователя).

С помощью команды
quser
можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.

quser - длительность rdp сеансов, простоя rdp сессий

Также вы можете вывести информацию о длительности сессий пользователей в RDS фермы с помощью PowerShell скрипта (укажите FQDN вашего сервера RDS Connection Broker):

$connectionBrocker = “MSK-RDSMAN.WINITPRO.RU"
Get-RDUserSession -ConnectionBroker $connectionBrocker |select-object -Property CollectionName, HostServer, DomainName, UserName, ServerIPAddress, CreateTime, DisconnectTime,  SessionState, IdleTime , SessionID , `
@{Name='SessionAge ([days.]hours:minutes)';Expression={ ((get-date ) - $_.CreateTime) } }

Вы можете настроить максимальную длительность активных, отключенных и простаивающих (без активности пользователя) сессии для Remote Desktop Services.

Автоматическое завершение неактивных RDP сессий в Windows

Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).

Если у вас развернута полноценная Remote Desktop Services ферма на Windows Server, вы можете настроить параметры таймаутов сессий пользователей в настройках RDS коллекций на вкладке Session.

Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию длительность RDP сеанса не ограничена – Never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.

настройка таймаутов сесий и параметров переподключения на rd session host

В Windows Server 2012 R2/2016/2019/22 можно настроить таймауты RDP сессий с помощью групповых политик. Можно использовать как редактор доменных GPO gpmc.msc, так и редактор локальных групповых политик (gpedit.msc) на конкретном RDS сервере ( или на десктопной версии Windows, если вы разрешили к ней множественные RDP подключения).

Параметры таймаутов RDP сессий находятся в разделе GPO Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Session Time Limits (Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничение сеансов по времени). Доступны следующие политики таймаутов:

  • Set time limit for disconnected session (Задать ограничение по времени для отключенных сеансов);
  • Set time limit for active but idle Remote Desktop Services sessions (Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов) – политика позволяет завершить простаивающие RDP сессии, в которых отсутствует ввод со стороны пользователя (движение мышкой, ввод символов с клавиатуры);
  • Set time limit for active Remote Desktop Services sessions (Задать ограничение по времени для активных сеансов служб удаленных рабочих столов) – максимальный срок для любой (даже активной) RDP сессии пользователя, после которого она переводится в состояние disconnected;
  • End Session when time limits are reached (Завершать сеанс при достижении ограничения по времени) – через какое время нужно завершать RDS сессию (logoff) вместо перевода ее в disconnected;
  • Set time limit for logoff of RemoteApp sessions (Задать предел для выхода из сеансов RemoteApp).

политики ограничения времени rdp сеансов по времени

По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.

политика Set time limit for disconnected session

Сохраните изменения и обновите настройки групповых политик в Windows (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.

Настройки GPO имеют более высокий приоритет, чем настройки таймаутов в коллекции RDS.

Аналогичные настройки по управлению таймаутами RDP есть в секции GPO с настройками пользователя: User Configuration -> Administrative Templates -> Windows Components. С помощью политики из пользовательской секции вы сможете более гибко настроить группы пользователей с различными лимитами на длительность RDP сессий.

Параметры таймаутов для RDP сессий, которые задаются политиками можно также настроить напрямую через реестр. Указанным выше политикам соответствую следующие DWORD параметры в ветке реестра HKLMACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

Например, чтобы установить максимальную продолжительность для отключенной RDP сессии в 15 минут (90000 мс), нужно изменить параметр реестра с помощью такой команды PowerShell:

Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxDisconnectionTime -Type 'DWord' -Value 900000

Также вы можно можете задать ограничение времени RDP сессии на вкладе sessions в свойствах локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC). Здесь доступны следующие параметры:

  • End a disconnected session
  • Active session limit
  • Idle session limit
  • When a session limit is reached or connection is broken: Disconnect from session или End Session
  • Allow reconnection: From any Client или From originating client only

настройки макс. длительности сессий в свойствах пользователя

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

Если у вас развернут RD Gateway Server для доступа к RDS серверам, вы можете настроить отдельные таймауты для пользователей, подключенных через RDGW (откройте политику авторизации подключений и перейдите на вкладку Timeouts).

rd gateway настройка таймаутов для подключений пользователей

В Windows Server 2008 R2 также можно было задать лимиты RDP сессий на хосте через специальную консоль tsconfig.msc (RD Session Host Configuration). Достаточно было запустить консоль, щелкнуть правой кнопкой по RDP-Tcp -> Properties. Настройки ограничения длительности сессий находятся на вкладке Sessions. Но в следующих версиях Windows Server эта консоль отсутствует (хотя вы можете вручную скопировать файлы tsadmin.msc и tsconfig.msc и использовать эти консоли и более новых версиях Windows Server).

лимиты rdp в консоли tsconfig.msc

Сообщения о превышении длительности RDP сессий

После того, как вы настроили политики с таймаутами RDS, пользователи увидит такое сообщение, перед завершением своей сессии:

Idle timer expired
Session has been idle over its time limit.
It will be disconnected in 2 minutes.
Press any key to continue the session.

сообщение о простаивающей сесии в windows через 2 минуты

При этом в логах хоста появляется Event ID 26.

Подробнее о логах RDP подключений. [/aler]

событие простаивающей rdp сессии

Вы можете отключить это предупреждение, установив в классе WMI Win32_TSSessionSettings значение EnableTimeoutWarning = 0.

Set-WmiInstance -Path "\\localhost\root\CIMV2\TerminalServices:Win32_TSSessionSetting.TerminalName='RDP-Tcp'" -Argument @{EnableTimeoutWarning=0}

Теперь, когда Windows будет автоматически завершать простаивающие RDP сеансы, пользователь получит от RDP клиента такое сообщение:

Your Remote Desktop Services session ended because the remote computer didn’t receive any input from you.

rds сессия завершена из-за неактивности пользователя

В некоторых случаях вы можете столкнуться с такой ошибкой в RDP клиенте:

Your Remote Desktop Services session has ended.
Another user connected to the remote computer, so your connection was lost. Try connecting again, or contact your network administrator.

rds сессий завершена другим пользователем

Это означает, что кто-то другой вошел на компьютер через RDP (когда количество одновременных RDP сессий на компьютере ограничено параметром Limit number of connections, например, в десктопных версиях Windows доступен только один сеанс). Либо вы повторно вошли на удаленных RDP/RDS хост с нового компьютера.

Вы можете разрешить множественные подключения под одним пользователем к RDP хосту с помощью параметра GPO Restrict Remote Desktop Services users to a single Remote Desktop Services session = Disabled (в ветке разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections).

групповая политика - ограничить количесвто сессий для одного пользователя до одной

Для завершения сессии пользователя на терминальном сервере можно использовать следующие методы:

  1. Через Диспетчер задач:
  • Откройте Диспетчер задач, нажав сочетание клавиш Ctrl + Shift + Esc.
  • Перейдите на вкладку “Пользователи”.
  • Выберите пользователя, сессию которого нужно завершить.
  • Нажмите на кнопку “Завершить задачу”.
  1. Через Управление компьютером:
  • Откройте Управление компьютером, щелкнув правой кнопкой мыши на значке “Пуск” и выбрав соответствующий пункт в контекстном меню.
  • Разверните ветку “Службы и приложения” и выберите “Сеансы”.
  • Выберите сеанс пользователя, которого нужно завершить.
  • Нажмите на кнопку “Завершить сеанс”.
  1. Через командную строку:
  • Откройте командную строку от имени администратора.
  • Введите команду “query session”, чтобы получить список активных сеансов на терминальном сервере.
  • Найдите ID сеанса пользователя, которого нужно завершить.
  • Введите команду “reset session <ID>”, где <ID> – это ID сеанса пользователя, которого нужно завершить.

Обратите внимание, что для завершения сессии пользователя на терминальном сервере вам может потребоваться права администратора.

Описание проблемы

В Windows Server 2012 R2 существует ферма RDS из 15 узлов подключения. Для этого нужны серверы и серверы, которые работают постоянно. Если в вашей ферме не настроены тайм-ауты времени безотказной работы, пользователи могут зависать на авторизованных соединениях на недели или месяцы. Логично предположить, что это не очень хорошо и приводит к различным последствиям, одним из которых является полная блокировка сеанса, когда человек не может подключиться к терминальному серверу и видит сообщение «Служба профилей пользователей запущена» или другое «Может не завершить запрошенную операцию », я не говорю о повреждении профиля пользователя. В результате того, что брокеры RDS видят, что пользователь уже вошел в систему, они не позволяют ему повторно подключаться к другому серверу узла сеанса, даже если вы закрываете новые подключения на текущем. Пока вы не выйдете из системы для этого сеанса, он все равно будет мешать. Давайте узнаем, как это сделать.

Методы завершения сессии пользователя не терминале

Есть несколько способов удалить пользователя с сервера.

  • вы можете завершить сеанс пользователя (выйти из системы) из оснастки управления фермой RDS
  • Вы также можете выйти из системы с самого терминального сервера из диспетчера задач
  • Пользователь может выйти из программы командной строки rwinsta
  • Отключите утилиту командной строки
  •  Утилита восстановления сеанса
  • * Командлет Stop-TSSession

Как выкинуть пользователя из оснастки управления RDS

Итак, у меня есть любимый тестовый пользователь Active Directory Барбоскин Геннадий Викторович. Предположим, он подошел к терминальному столу, и из-за блокировки его сеанса нам нужно его вытащить. Первый способ – использовать оснастку управления фермой RDS, я уже говорил вам, как ее создать. Откройте раздел с вашей коллекцией фермы RDS. Введите логин или фамилию нужного сотрудника в поисковый фильтр. В итоге получаем хост, на котором он работает.

выход пользователя

Щелкните по нему правой кнопкой мыши. В контекстном меню появится пункт «Выйти», что соответствует окончанию сеанса (Выход). Также есть пункт «Отключить», если вы его выберете, пользователь будет выгнан с терминального сервера, но его сессия останется на нем, эта операция эквивалентна тому, если пользователь только что нажал на крестик в окне с именем терминального сервера.

как кикнуть пользователя-03

После выбора пункта «Отключить» сеанс пользователя в ферме RDS отключится нормально. Пользователь сам увидит сообщение «Служба профилей пользователей запущена» и окно закроется без ошибок.

Второй метод разлогинить пользователя на терминальном сервере

Второй метод аналогичен первому, за исключением того, что вам нужно войти на требуемый сервер, открыть оснастку диспетчера задач и выйти из системы пользователя. Сказав это, я рассказал вам, как добраться до нужного члена фермы RDS. Затем щелкните правой кнопкой мыши в области запуска и выберите в контекстном меню пункт «Диспетчер задач». Кстати, вы также можете вызвать «Диспетчер задач» с помощью сочетания клавиш CTRL + SHIFT + ESC.

как удалить пользователя-04

Находим нужного нам пользователя и кликаем по нему правой кнопкой, в интересующем нас контекстном меню пункт «Выход». Выбираем его и завершаем сеанс пользователя.

Выход пользователя из системы в диспетчере задач

Так бывает, что первые два метода не помогают в тех случаях, когда сеанс пользователя зависает на сервере терминалов, кажется, что вы делаете выход из графического интерфейса, но это не работает. В этих случаях вам нужно использовать командную строку или утилиты PowerShell

Использование утилиты RWINSTA

Если вы окажетесь в ситуации, когда графические методы не позволяют вывести пользователя из системы, а это необходимо, утилиты командной строки придут вам на помощь. RWINSTA – это встроенная утилита Windows, которая позволяет восстанавливать сеансы на основе идентификатора сеанса и имени сеанса. Прежде всего, вам нужно вычислить либо идентификатор сеанса, либо его имя, как я вам сказал, обо всех известных мне методах, с которыми вы можете ознакомиться. Выберу утилиту qwinsta. Пишем команду:

qwinsta | findstr barboskin.g (местный)

или удаленно qwinsta / server: имя сервера | findstr barboskin.g

В моем примере имя сеанса – rdp-tcp # 172, а его идентификатор – 515. Мы пишем команду:

rwinsta rdp-tcp # 172 / сервер: localhost или rwinsta 515 / сервер: localhost

Использование утилиты RWINSTA

И в первом, и во втором случае пользователь будет отключен от этого сервера. Эту команду можно запускать удаленно с вашего рабочего места, если у вас есть право выйти из системы. Этот метод мне не раз помогал в моей практике, например, случай с заблокированным сеансом на Windows Server 2016, где вместо имени пользователя было имя (4).

Как отключить пользователя через reset session

вы также можете завершить сеанс пользователя с помощью утилиты командной строки Reset Session. В текущем примере у моего Геннадия Викторовича Барбоскина имя сеанса rdp-tcp # 16 с его ID 11. Эту утилиту можно использовать как локально на самом терминальном сервере, так и на вашей рабочей станции, также есть ключ / сервер.

восстановить сеанс rdp-tcp # 16 или восстановить сеанс 11

Как отключить пользователя через сеанс восстановления

Вы можете узнать больше об утилите восстановления сеанса на веб-сайте Microsoft: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session

Как отключить пользователя через logoff

Вы также можете выйти из учетной записи пользователя или даже из заблокированной с помощью утилиты командной строки «LogOff». В этом примере Геннадий Барбоскин имеет имя сеанса rdp-tcp # 43. В командной строке от имени администратора введите:

logoff rdp-tcp # 43 / server: localhost (имя сервера можно изменить) или logoff 54 / server: localhost

Как отключить пользователя через выход

Выход пользователя через командлет Stop-TSSession

Есть замечательный командлет Stop-TSSession. Давайте посмотрим на идентификатор сервера и имя сеанса, для этого в открытом PowerShell введите:

Get-TSSession | FT

В результате я вижу, что пользователь barboskin.g имеет SessionID 3. Итак, введите

Принудительный стоп-TSSession 3 или Stop-TSSession 3-Force

Выход пользователя из системы с помощью командлета Stop-TSSession

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

Модуль импорта PSTerminalServices
Get-TSSession -ComputerName SERVER_NAME -filter {$ _.IDsession -ne 0 -AND $ _.IDsession -ne 1 -AND $ _.IDsession -ne 65536} | Stop-TSSession – Force

Выход пользователя через командлет Stop-TerminalSession

Этот командлет устанавливается отдельно с пакетом Pscx. Прежде всего, мы видим локально или удаленно идентификаторы сеанса пользователя, для которого мы хотим выйти. Выполняем команду:

Get-TerminalSession – имя сервера ComputerName

Get-TerminalSession

Мне нужен идентификатор сеанса 427. Затем мы воспользуемся командлетом Stop-TerminalSession, чтобы выгнать пользователя и завершить его сеанс.

Stop-TerminalSession -ComputerName имя сервера -Id 427 -Force

Stop-TerminalSession

Как видите, сеанс 427 больше не существует, и мы смогли исключить пользователя из сеанса RDS с помощью командлета Stop-TerminalSession.

Сегодня я расскажу как я решал одну интересную задачу. Задача состояла в том чтобы а автоматическом режиме завершать сеансы всех подключенных пользователей к терминальному серверу (он у нас на базе Windows Server 2008 R2), кроме определенного пользователя и в конце запустить bat файл. Т.е. как на скрине ниже, список всех подключенных пользователей к терминальнику и нужно всех культурно выбить кроме например пользователя с ID 10 и выполнить некий скрипт.

Выделение_366

Средством достижения поставленной задачи был выбран путь написание своей небольшой утилиты, которая будет все это делать. Средством разработки утилиты был выбран любимый мной Delphi.

В итоге вот что получилось. Принцип работы утилиты:

  • Определяются все активные на данный момент сеансы пользователей (Консольные и RDP-ные подключения)
  • Подгружается список исключаемых пользователей из файла Exclude_users.ini
  • Идет сравнение активных пользователей и исключаемых, если среди активных пользователей находится исключаемый то он не попадает в список на завершения сеансов пользователей
  • Посылается запрос на принудительное завершение сеанса всем пользователям которые попали в список на отключение
  • Формируется отчет (\Log\(текущая дата)\Report.txt)
  • По желанию можно по окончанию завершения сеансов RDP пользователей, можно запустить скрипт bat.

Рабочее окно программы:

Основные пояснения по интерфейсу:

  • Кнопка Формировать — собственно получается список всех активных и не корректно завершенных сеансов.
  • Кнопка Завершение сеансов — Собственно выполнение завершения сеансов всех пользователей, кроме исключаемых пользователей. По окончании процесса завершения сеансов, в случае если стоит галочка (Запустить скрипт (.bat)) то выполнится указанный скрипт.

Пользователи которых нужно исключить от завершения сеанса заносятся в файл Exclude_users.ini. Указывать нужно их доменные имена и если нужно исключить несколько пользователей, то их имена нужно указывать в столбик.

Пример:

test1
test2

Пример отчета который получаем на выходе:

### Отчет за 19.06.2016 11:46:48 ###
# Активные пользователи #
Пользователь: PoSys
# Исключаемые пользователи #
PoSys
# Отключаемые пользователи #
#*#*# Все сеансы пользователей из списка на отключение завершены #*#*#
Всего завершено сеансов: 0
#*# Запуск выполнения скрипта (.bat)... #*#

Так же есть возможность запуска в тихом режиме. Ключ для запуска в тихом режиме (-silent). Тихий режим нужен если вы планируете запускать ее с помощью планировщика.

Скачать утилиту

Понравилась или оказалась полезной статья, поблагодари автора

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

Загрузка…

  • Забыть пароль к сетевой папке windows 10
  • Завершение работы через командную строку windows 10
  • Забыл пароль от ноута что делать windows 10
  • Забыть все сети wifi windows 10
  • Забыли пин код windows 10