Завершение сеансов пользователей, как работает, чем осуществляется. Удаленное управление пользовательским сеансом Windows - используем стандартные средства

В Windows 2012 R2 и Windows 8.1 Microsoft вернула функционал Remote Desktop Shadowing (теневого подключения). Напомним, что режим Shadow (теневой сеанс) – может использовать администратором для просмотра и управления существующей RDP сессией любого пользователя. Этот режим работы поддерживается практически с первых версий терминального сервера Microsoft и неожиданно был убран в Windows Server 2012 (связано с переносом стека rdp из режима ядра в пользовательский режим). Функционал RDS Shadow работает и в следующих версиях ОС: Windows Server 2016 / Windows 10.

Кроме того, у режима теневого подключения RDS Shadow и RDP клиента появился ряд новых интересных возможностей. Полный список параметров RDPклиента mstsc.exe, определяющих возможность удаленного теневого подключения к сессии конечного пользователя:

Mstsc.exe ]

/shadow:ID – подключится к RDP сессии с указанным ID.

/v:servername – имяRDP/RDS терминального сервера (если не задано, используется текущий).

/control – возможность взаимодействия с сеансом пользователя (если не указано, используется режим просмотра сессии пользователя).

/noConsentPrompt – не запрашивать у пользователя подтверждение на подключение к сессии.

/prompt – используется для подключения под другими учетными данными. Запрашивается имя и пароль пользователя для подключения к удаленному компьютеру.

Ограничения теневых сеансов RDS в Windows 2012 R2

  • Подключаться к чужим сессиям может только администратор сервера. Делегировать эти права обычным пользователем нельзя
  • RDS Shadow не будет работать в сетях на базе рабочих групп

Использование Remote Desktop Shadow из графического GUI

Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или непосредственно из консоли Server Manager. Для этого в консоли Server Manager откройте коллекцию QuickSessionCollection

Щелкнув по сессии интересующего пользователя, выберите в контекстном меню Shadow (Теневая копия).

Появится окно параметров теневого подключения. Возможен просмотр (View ) и управление (Control ) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).

Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:

Запрос на удаленное наблюдение

Winitpro\administrator запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос.

Winitpro\administrator is requesting to view your session remotely. Do you accept the request?

Если пользователь подтвердит, подключение, в режиме просмотра администратор увидит его рабочий стол, но не сможет взаимодействовать с ним.

Совет . Для отключения от сессии пользователя и выхода из shadow-режима нужно нажать ALT +* на рабочей станции или Ctrl +* на терминальном сервере (если не заданы альтернативные комбинации).

Если же пользователь отклонит подключение, появится окно:

Shadow Error:


Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что такое это запрещено групповой политикой:

Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.

Параметры удаленного управлениями RDS сессиями пользователя настраиваются политикой Set rules for remote control of Remote Desktop Services user sessions (Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов) , которая находится в разделе Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections (Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Подключения) в пользовательской и «компьютерной» секциях GPO. Данной политике соответствует dword параметр реестра Shadow в ветке HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services .

Этой политикой можно настроить следующие варианты теневого подключения через теневое подключение RD Shadow::

  • No remote contol allowed - удаленное управление не разрешено (значение ключа реестра Shadow = 0);
  • Full Control with users’s permission - полный контроль с разрешения пользователя (1);
  • Full Control without users’s permission - полный контроль без разрешения пользователя (2);
  • View Session with users’s permission – наблюдение за сеансом с разрешением пользователя (3);
  • View Session without users’s permission – наблюдение за сеансом без разрешения пользователя (4).

Теневое подключение RDS Shadow из PowerShell

Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.

В первую очередь покажем, как получить список сессий на терминальном сервере (сессии пользователей будут сгруппированы в группы в зависимости от их статуса):

Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate

На данном сервере мы обнаружили три активных терминальных сессии. Подключимся к сессии пользователя с ID сессии 3:
Mstsc /shadow:3 /control
Также для получения списка всех сессии на сервере можно выполнить команду

На экране отобразится список RDP сессий, их ID и статус: активная сесиия (Active) или отключенная (Disconnected).

Для получения списка сессий на удалённом сервере выполните команду:

query session /server:servername

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

shadow.bat

@echo off

query session /server:%rcomp%
set /P rid="Enter RDP user ID: "

Можно поместить данный файл в каталог %Windir%\System32, в результате для теневого подключения достаточно выполнить команду shadow .

Для подключения к консольной сессии можно использовать такой скрипт:

@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
for /f "tokens=3 delims= " %%G in ("query session console /server:%rcomp%") do set rid=%%G
start mstsc /shadow:%rid% /v:%rcomp% /control

Как разрешить обычном пользователям использовать теневое подключение

В рассмотренных выше примерах для использования теневого подключения к терминальным сессиям необходимы права локального администратора на RDS сервере. Однако можно разрешить использовать теневое (shadow) подключение для подключения к сессиям пользователей и простым пользователям (не давая им прав локального администратора на сервере).

К примеру, вы хотите разрешить членам группы AllowRDSShadow использовать теневое подключение к сессиям пользователей, выполните команду:

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName="RDP-Tcp") CALL AddAccount "corp\AllowRDSShadow",2

В январе 2018 года после установки обновления KB4056898 () пользователи столкнулись, что в Windows Server 2012 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка STATUS_BAD_IMPERSONATION_LEVEL). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.

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

  • для Windows Server 2016 - KB4057142 (от 17 января 2018)
  • для Windows Server 2012 R2 - KB 4057401 (от 17 января 2018)

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

  • Обновление информационной базы;
  • Добавление нового объекта метаданных в конфигурацию;
  • Проведение профилактических и ремонтных работ на сервере;
  • Зависший сеанс пользователя, препятствующий повторному запуску приложения.

В этой статье мы постараемся рассказать, как завершить сеанс пользователя, какие инструменты для выполнения этой задачи есть в арсенале администратора, какие варианты завершения предусматривает файловый, а какие клиент-серверный вариант работы 1С.

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

Закрытие сеансов из конфигуратора

Когда в структуру базы данных вносятся изменения, обновление конфигурации в динамическом режиме становится недоступно. И на экране появляется информационное окно (Рис.1).

Последовательность действий в этом случае очевидна:

  1. Необходимо нажать кнопку «Завершить сеансы и повторить»;
  2. Дождаться окна рестуктуризации базы;
  3. Нажать «ОК».

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

Завершение сеансов непосредственно из программы

Большинство стандартных продуктов фирмы 1С восьмой версии имеют в своем наборе механизм, позволяющий без особого труда удаленно завершить работу пользователя, и обеспечить администратору монопольный доступ к базе. Это обработка «Блокировка соединений с информационной базой».

Найти ее можно по одному из двух адресов:

  1. В одном из подменю раздела «Сервис»;
  2. Зайдя в раздел Операции->Обработки.

Рис.2

Внешний вид обработки представлен на Рис.2.

Особенности данной обработки:

  1. Установка и снятие флажка, и нажатие кнопки «Записать» включает и выключает блокировку пользователей, удаляя сеансы и препятствуя созданию новых подключений;
  2. Время окончания блокировки не может быть пустым или меньше времени её начала;
  3. В случае, когда задан параметр «Код разрешения», его можно прописать в строку запуска, для игнорирования блокировки, перед кодом указав «/UC»;
  4. Если «Код разрешения» не указать, то до истечения срока блокировки попасть в базу будет проблематично (в файловом варианте работы можно попробовать из папки базы удалить файл 1CVcdn);
  5. Если вместо параметра «/UС» и пароля через пробел указать «/CРазрешитьРаботуПользователей», где С – латинская, можно полностью отключить блокировку для всех пользователей;
  6. Нажатие кнопки «Активные пользователи, вызывает окно с полным списком пользователей (рис.3), откуда можно открыть «Журнал регистрации» или завершить сеанс каждого конкретного пользователя.

Рис.3

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

Удаление пользователей из rdp

Важно помнить, что отключение сеансов пользователей с серверов возможно только при наличии определенных прав на это действие.

При работе с удаленного рабочего стола, завершить сеансы пользователей можно воспользовавшись стандартным диспетчером задач. Простое прерывание сеансов — немного неправильный, но достаточно действенный способ.

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

Удаление пользователей через консоль сервера

Обладая правами Администратора для кластера серверов 1С, необходимо:


Очень часто при работе в серверном режиме зависшие сеансы пользователей не видны средствами платформы, их возможно удалить только через консоль.

Самый радикальный способ прерывания сеансов

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

Безусловно, пользователи, не успевшие закончить работу и сохранить данные, будут крайне возмущены таким беспардонным отношением, однако это быстро и это крайне эффективно.

Команды cmd:
Query Session - список сессий
Mstsc.exe /shadow:sessionID /control /noConsentPrompt

http://winitpro.ru/index.php/2014/02/12/rds-shadow-v-windows-2012-r2/

Кроме того, у режима RD Shadow и rdp клиента появился ряд новых интересных возможностей. Полный список опций rdp клиента mstsc.exe, определяющих возможность удаленного подключения к сессии конечного пользователя:

Mstsc.exe ]

/shadow:ID - подключится к терминальной сессии с указанным ID

/v:servername - имя терминального сервера (если не задано, используется текущий)

/control - возможность взаимодействия с сеансом пользователя (если не указано, используется режим просмотра сессии пользователя).

/noConsentPrompt - не запрашивать у пользователя подтверждение на подключение к сессии

Ограничения теневых сеансов RDS в Windows 2012 R2


  • Подключаться к чужим сессиям может только администратор сервера. Делегировать эти права обычным пользователем нельзя

  • RDS Shadow не будет работать в сетях на базе рабочих групп

Remote Desktop Shadow - работа в GUI

Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или непосредственно из консоли Server Manager. Для этого в консоли Server Manager откройте коллекцию QuickSessionCollection.

Щелкнув по сессии интересующего пользователя, выберите в контекстном меню Shadow.

Появится окно параметров теневого подключения. Возможен просмотр (View ) и управление (Control ) сессией. Кроме того можно включить опцию Prompt for user consent (запросить согласие на подключение у пользователя).

Если выбрана опция «Запросить подтверждение», в сессии у пользователя появится запрос:

Winitpro\administrator is requesting to view your session remotely. Do you accept the request?

Если пользователь подтвердит, подключение, администратор увидит его рабочий стол и сможет взаимодействовать с ним.

Совет . Для отключения от сессии пользователя и выхода из shadow-режима нужно нажать ALT+* на рабочей станции или Ctrl+* на терминальном сервере (если не заданы альтернативные комбинации).

Если же пользователь отклонит подключение, появится окно:

Shadow Error:

Если же попытаться подключится к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая что такое поведение настроено групповой политикой:

Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.

Параметры удаленного управлениями терминальными сессиями пользователя настраиваются политиками Set rules for remote control of Remote Desktop Services user sessions , которые находится в разделе Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections в пользовательской и «компьютерной» секциях GPO.

Этой политикой можно настроить следующие варианты подключения по RD Shadow:


  • No remote contol allowed - удаленное управление запрещено

  • Full Control with users’s permission - полный контроль с разрешения пользователя

  • Full Control without users’s permission - полный контроль без разрешения пользователя

  • View Session with users’s permission - наблюдение за сеансом с подтверждением

  • View Session without users’s permission - наблюдение за сеансом без подтверждения

Если у вас инфраструктура ориентирована на рабочие станции, то вы знаете, как трудно удаленно диагностировать и устранять проблемы ваших пользователей. Вероятно, вы используете такие средства, как Microsoft Systems Management Server (SMS) и Windows XP Remote Support для работы на пользовательском ПК и вы знаете, как удаленно подключиться к сетевому реестру для изменения настроек ваших пользователей.

В среде Terminal Services эти задачи упрощаются. Вместо того, чтобы разыскивать некоторую рабочую станцию на удаленном узле вашей сети, вы и ваши пользователи оба зарегистрированы на одном и том же компьютере. А поскольку вы оба используете RDP для передачи данных KVM, вы легко можете вмешаться. Чтобы показать разную технику поддержки, сначала познакомимся с утилитами поддержки.

Terminal Services Manager

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

Если вы знакомы с Win2K Terminal Services Manager, то заметите несколько улучшений в версии, включенной в состав WS2K3. Во-первых, новая версия содержит узел This computer , дающий быстрый доступ к сеансам сервера, на котором вы зарегистрированы. Во-вторых, есть узел Favorite Servers , который позволяет получить доступ к некоторым терминальным серверам, которые вы чаще всего администрируете. Наконец, узел All Listed Servers изначально не раскрыт, поэтому вам не нужно долго ждать поиска всех терминальных серверов перед началом использования этой утилиты.

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

  • Active (активный) - Пользователь в настоящий момент посылает на сервер информацию от клавиатуры или мыши
  • Idle (холостой) - Пользователь не перемещал мышь и не нажимал клавиш в течении определенного промежутка времени
  • Disconnected (разъединенный) - Пользователь отключился от сервера, но оставил сеанс работать для дальнейшего подключения.

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

Вкладка Information в правой панели сообщает имя устройства клиента и адрес IP, а также версию клиента RDP, разрешение экрана и уровень шифрования. Эта информация поможет в устранении проблем. Если вы щелкните правой кнопкой на пользовательском сеансе, появится контекстное меню:

  • Connect - Позволяет подключиться к другому сеансу, который вы установили на сервере
  • Disconnect - Отключает пользователя от сеанса, но оставляет сеанс работать на сервере
  • Remote Control - Позволяет просмотреть или взаимодействовать с сеансом пользователя, не отключая пользователя. Пользователь видит любые выполняемые вами действия, а вы в свою очередь можете наблюдать за действиями пользователя.
  • Reset - Убить сеанс
  • Status - Выводит окно состояния, показывающее сетевую активность между сервером и клиентом.
  • Log Off- Принудительное завершение сеанса

Опция Log Off аккуратно завершает сеанс и выгружает профиль пользователя в центральный каталог профиля. Однако она не оставляет пользователю возможности сохранить свою работу.

Удаленное управление

При выборе опции Remote Control вы временно отключаетесь от своего сеанса и подключаетесь к пользовательскому сеансу. Теперь RDP посылает всю видеоинформацию как на вашу машину, так и на клиентское устройство пользователя, и получает нажатия клавиш и перемещения мыши от вас обоих (если вы настроили интерактивное удаленное управление).

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

Редактирование реестра

Иногда необходимо отредактировать реестр пользователя. В случае с рабочими станциями, вам необходимо было подключаться к удаленному реестру пользовательского компьютера. На терминальном сервере вы совместно с вашими пользователями используете один и тот же реестр. Есть только один ключ HKEY_LOCAL_MACHINE для всех пользователей, а ключ HKEY_CURRENT_USER для каждого сеанса может быть найден в HKEY_USERS.

Каждый реестр пользователя имеет свой SID. Самый быстрый способ найти нужного пользователя, если вы не знаете его SID, заключается в просмотре подключа Volatile Environment для каждого пользователя. Этот подключ содержит переменную APPDATA, в которой содержится имя пользователя. Любые сделанные изменения становятся немедленно видимыми для пользователя.

Случается так, что системному администратору необходимо управлять одним из пользовательских компьютеров в удаленном режиме, взаимодействуя при этом с пользователем, имея в распоряжении достаточно слабое железо. В данном случае использование такого ПО, как Team Viewer, считается нецелесообразным ввиду их большого аппетита к процессорным ресурсам, что провоцирует возрастание нагрузки на процессор до 98%. Применение стандартного RDP чаще всего приводит к «выбиванию» текущего пользователя, что предполагало ввод пароля для входа в учетную запись локально. В этом случае прекрасным решением становится команда shadow. Собственно о том, как ее использовать в данной ситуации мы и поговорим сегодня.

Для наблюдения за другими сеансами служб удаленного рабочего стола потребуются следующие параметры:

SHАDОW {<имя ceaнса> | }

< имя ceaнса > Имя ceaнсa.

< ID ceaнса > Идeнтификатор ceaнсa.

/SЕRVER: Сервер терминалов (текущий по умoлчaнию).

/V Отображать информацию о выполненных действиях.

Так, например, для того, чтобы управлять консольными сеансам и, то есть текущими пользователями, которые сидят непосредственно за рабочей машиной, в рамках терминального сервера, нужно выполнить - shadow0. На обычных компьютерах для выхода используется alt*, а на терминальном сервере ctrl*.

Здесь есть свои малоприятные нюансы. К одному из таковых можно отнести то, что данная команда может работать исключительно в рамках RDP-сессий.

В случае с машинами под управлением Windows ХР может потребоваться расширение его возможностей, превратив его в терминальный сервер. При этом задача существенно упрощается – можно подключиться из под любого пользовательского аккаунта с правами администратора по RDP и, запустив команду, выполнить – shadow0. Таким образом, мы попадаем в консольный сеанс, что и требовалось доказать. Для того чтобы сократить аппаратные нагрузки можно, создавая RDP-подключение, выбрать пункт запуска следующей программы при подключении, а уже там ввести shadow0. При этом мы получим всего два запущенных процесса.

Для того чтобы схема заработала нужно подключить RemoteRPC, что можно сделать через реестр:

“AllоwRemotеRPС”=dwоrd:00000001

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

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

«Shаdow»=dwоrd:0000000x

В данном случае «x» может принимать следующие значения:

1 – возможность полного контроля с разрешения клиента;

2 – абсолютный контроль без запроса на его разрешение клиентом;

3 – наблюдать за сеансом (с разрешением);

4 – наблюдать за сеансом (без разрешения клиента)

Изначально этой строки в реестре нет, и создавать ее необходимо с нуля.

Через локальные политики можно включать доменные или локальные. В случае с локальным подключением необходимо запустить gpedit.msc, после чего выбрать административные шаблоны, далее перейти к пункту «Добавление и удаление шаблонов» и из папки WINDOWS\inf добавить System.adm. После этого можно настроить конфигурацию локальной машины перейдя в административные шаблоны, далее в «Компоненты Windows» - «Терминальные службы», и установить правила управления в удаленном режиме. (Windows XP)

Для Windows 7 «Административные шаблоны» - «Компоненты службы удаленных рабочих столов» - далее «Узел сеансов с удаленными рабочими столами» - «Подключения» 0 устанавливаем правила для удаленного управления пользовательскими сеансами служб удаленных рабочих столов.

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



 

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