Автовыход пользователя на сервере windows server 2016
Автовыход пользователя на сервере windows server 2016
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Вчера я вас научил определять номер и ID сеанса пользователя на RDS ферме или терминальном сервере. Там я вам рассказывал, что это нужно в случаях, когда вам необходимо завершить сессию пользователя, по ряду причин, одна из таких, это просто ее зависание. После чего человек и подключиться не может заново и не может выйти из своего сеанса. Вы как администратор, должны уметь решать проблему с зависшими RDP сессиями, ниже я покажу свои методы и алгоритмы.
Описание проблемы
Есть RDS ферма из 15 хостов подключений на Windows Server 2012 R2. Сервера на то они и сервера, что работают постоянно. Если у вас на ферме не настроены тайм ауты времени беспрерывной работы, то пользователи могут неделями или месяцами висеть в авторизованных подключениях. Логично предположить, что это не очень хорошо и ведет к различным последствиям, одно из которых, это полное зависание сеанса, при котором человек не может подключиться к терминальному серверу и видит сообщение «Работает служба профилей пользователей» или еще вариант «Не удается завершить требуемую операцию», я уже не говорю про повреждение пользовательского профиля. В результате того, что RDS брокеры видят. что пользователь уже залогинен, они не дают ему переподключиться к другому Session Host серверу, даже если вы закроете на текущем новые подключения. Пока вы не сделаете выход пользователя из системы для этой сессии, она так и будет мешать. Давайте разбираться, как это делать.
Методы завершения сессии пользователя не терминале
Существует несколько методов позволяющие выкинуть пользователя с сервера.
Как выкинуть пользователя из оснастки управления RDS
И так, у меня есть мой любимый, тестовый пользователь в Active Directory, по имени Барбоскин Геннадий Викторович. Предположим, что он зашел на терминальный стол и нам по причине зависания его сессии, нужно сделать ему выход. Первый метод, это использование оснастки по управлению RDS фермой, я вам рассказывал, как ее собирать. Открываем раздел с вашей коллекцией RDS фермы. В поисковом фильтре указываем логин или фамилию нужного сотрудника. В результате получаем хост, где он работает.
Щелкаем по нему правым кликом. В контекстном меню будет пункт «Выйти», это и соответствует завершению сессии (Log off). Так же есть пункт «Отключиться», если выберите его, то пользователь будет выброшен с терминального сервера, но его сессия останется на нем, данная операция равносильна тому, если пользователь просто нажал в окне с названием терминального сервера крестик.
После того, как вы выбрали пункт «Выйти», начнется корректное завершение сессии пользователя на RDS ферме. Сам пользователь увидит сообщение «Работает служба профилей пользователей» и у него закроется окно без ошибки.
Второй метод разлогинить пользователя на терминальном сервере
Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку «Диспетчер задач» и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт «Диспетчер задач». Кстати, вызвать «Диспетчер задач» можно и через сочетание клавиш CTRL+SHIFT+ESC.
Находим нужного нам пользователя и щелкаем по нему правым кликом, в контекстном меню. нас будет интересовать пункт «Выйти». Выбираем его и завершаем сессию пользователя.
Использование утилиты RWINSTA
или удаленно qwinsta /server:имя сервера | findstr barboskin.g
В моем примере имя сеанса rdp-tcp#172 и ее ID 515. Пишем команду:
И в первом и во втором случае, пользователь будет разлогинен с данного сервера. Данную команду можно запускать удаленно, со своего рабочего места, главное, чтобы были права на log off. Данный метод меня ни раз выручал в моей практике, например случай с зависшей сессией на Windows Server 2016, где вместо логина пользователя было имя (4).
Как отключить пользователя через reset session
Завершить сессию пользователя можно и с помощью утилиты командной строки Reset Session. В текущем примере у моего Барбоскина Геннадия Викторовича имя сеанса rdp-tcp#16 с его ID 11. Данную утилиту можно применять как локально на самом терминальном сервере, так и на своей рабочей станции, тут так же есть ключ /server.
Как отключить пользователя через logoff
Разлогинить пользовательскую учетную запись и даже зависшую, можно и через утилиту командной строки «LogOff». В данном примере у Геннадия Барбоскина имя сессии rdp-tcp#43. В командной строке от имени администратора введите:
Выход пользователя через командлет Stop-TSSession
Есть такой замечательный командлет Stop-TSSession. Посмотрим на сервере ID и имя сеанса, для этого в открытой оболочке PowerShell введите:
В итоге я вижу, что у пользователя barboskin.g SessionID 3. Далее пишем
Соглашаемся с тем, что будет производиться log off для данного пользователя. Проверяем, что сессия завершена. Можно вот таким простеньким скриптом из планировщика задач, разлогинивать сессии:
Выход пользователя через командлет Stop-TerminalSession
Данный командлет устанавливается отдельно, совместно с пакетом Pscx. Первым делом посмотрим локально или удаленно идентификаторы сессии пользователя, для которого мы хотим сделать log off. Выполняем команду:
Нужный мне ID сеанса 427. Далее воспользуемся командлетом Stop-TerminalSession, чтобы выкинуть пользователя и завершить его сессию.
Настройка лимитов (таймаутов) для RDP/RDS сессий в Windows
По-умолчанию, когда пользователь со своего компьютера закрывает окно своей RDP/RDS сессией в терминальном клиенте (mstsc, rdcman или rdp html web клиент) простым нажатием по крестику в окне, без выполнения выхода (logoff), его сессия переходит в режим disconnected (разъединённый сеанс). В этом режиме все запущенные пользователем программы, открытые документы и окна продолжают работать на удаленном сервере и потреблять ресурсы.
По-умолчанию в Windows RDP сессия пользователя может находится в состоянии disconnected до перезагрузки компьютера или явного ее завершения пользователем или администратором. Это довольно удобно, т.к. пользователь может в любой момент подключиться к своей старой сессии и продолжить работу с открытыми программами и документами.
На следующем скриншоте видно, что отключенные сессии пользователей на RDS сервере с Windows Server 2016 используют около 35% памяти сервера. Кроме того незавершенные сессии могут блокировать открытые файлы на файловых серверах, вызывать проблемы с корректным сохранением данных в приложениях, профилях или User Profile Disks.
С помощью команды quser можно узнать, когда начата RDP сессия пользователя, длительность простоя и статус сессии.
Для автоматического завершения отключенных RDP/RDS сессий через определенный промежуток времени, вам нужно правильно настроить лимиты (таймауты).
При использовании RDS сервера, вы можете настроить параметры таймаутов сессий в настройках RDS коллекций на вкладке Session.
Укажите время, через которое нужно завершить отключенный сеанс в параметре End a disconnected session (по умолчанию срок сеанса неограничен – never). Также вы можете выставить максимальную длительность активной RDP сессии (Active session limit) и отключение бездействующего сеанса (Idle session limit). Это жесткие таймауты применяются для всех сессий в RDS коллекции.
Также можно настроить ограничение времени RDP сессии в свойства локального (консоль lusrmgr.msc) или доменного пользователя (консоль dsa.msc — ADUC).
В Windows Server 2012 R2/2016/2019 можно настроить таймауты RDP сессий с помощью групповых политик. Можно использовать как редактор доменных GPO gpmc.msc, так и редактор локальных групповых политик (gpedit.msc) на конкретном RDS сервере или клиенте (если вы используете десктопную Windows в качестве терминального сервера)
Параметры таймаутов RDP сессий находятся в разделе GPO
По умолчанию эти параметры не настроены. Чтобы автоматически завершать отключенные RDP сеансы пользователей через 8 часов, включите политику “Set time limit for disconnected session” = Enabled, и в выпадающем списке выберите 8 часов.
Сохраните изменения и обновите политики сервера (gpupdate /force). Новые настройки таймаутов будут применяться только к новым RDP сеансам, текущие сеансы придется завершить вручную.
Как настроить AutoLogon на Server 2016
Сегодня речь пойдет о том, как я начал открывать для себя возможности серверной операционной системы, такой как Windows Server 2016 Standard. Ведь со временем в мир IT-технологий вносится что-то новое. И это новое обязательно будет востребовано, а мне как системному администратору это нужно. Мое правило, я чувствую себя намного увереннее если уже все опробовал самолично, хоть даже в тестовом/виртуальном окружении и меня уже не застать врасплох. Я надеюсь только на себя. Так вот как я заметил вышла новая серверная платформа (уже давно кстати) от Windows, а я еще в повседневности использую Server 2008 R2 и Server 2012 R2, а к новому еще не приобщился. И некоторыми полезными заметками я хочу наполнить свой блог. Это заметки которые я вижу в практическом использовании по отношению с текущим тем с чем сейчас работаю я.
Задача: Разобрать в практических шагах, как настроить Autologon на серверной системе Windows Server 2016, как без домена и с доменом.
Я авторизовался в установленной системе под локальной учетной запись с логином «Администратор». Далее я создам учетную запись которая будет отвечать за AutoLogon в системе и впредь я буду под ней работать.
На заметку: по правилам безопасности вообще учетную запись «Администратор» следует переименовать и задать ей сложный пароль. Использовать только в самых экстренных случаях, а работать под личной.
Нажимаю на клавиатуре сочетание клавиш Win + X → и щелкаю по «Командная строка (администратор)», затем идут следующие команды:
C:\Windows\system32>net user ekzorchik 712mbddr@ /active /add
C:\Windows\system32>net localgroup Администраторы ekzorchik /add
Теперь команды настройки AutoLogon:
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v AutoAdminLogon /t REG_SZ /d 1 /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v DefaultUserName /t REG_SZ /d ekzorchik /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v DefaultPassword /t REG_SZ /d 712mbddr@ /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v ForceAutoLogon /t REG_SZ /d 1 /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v DefaultDomainName /t REG_SZ /d WORKGROUP /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v IgnoreShiftOvveride /t REG_SZ /d 1 /f
C:\Windows\system32>reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon» /v AutoLogonCount /t REG_DWORD /d 1 /f
Затем нужно обязательно проверить, что настроенный командами выше режим AutoLogon работает и нет никаких ошибок. Важно все проверять самим, а не надеяться на авось. Но как проверить что AutoLogon работать? — Да все просто, нужно все также находясь в консоль командной строки запущенной с правами локального администратора отправить систему в перезагрузку:
C:\Windows\system32>shutdown /r /t 3
После системе перезагрузилась и загрузилась под учетной записью нового администратора, т. е. Login = ekzorchik, вызываю командную строку и проверяю под какой учетной записью я в системе:
Нажимаю на клавиатуре сочетание клавиш Win + X → и щелкаю по «Командная строка (администратор)», затем идут следующие команды:
C:\Windows\system32>echo %username%
Отлично и просто в тоже время, я рад тому факту что компания Microsoft не поменяла уже привычные настройки которые я проделывал, как на Windows XP,7,8,10,Server 2003,Server 2008/R2,Server 2012/R2.
Так а если данная система будет в домене и потребуется настроить AutoLogon in Domain, то нужно всего лишь изменить строку где я указывал имя рабочей группы, т. е. WORKGROUP на имя домена, к примеру polygon. Но не забыть проверить/создать учетную запись чтобы она было доменной.
Итак, цель заметки была чтобы настроить AutoLogon на Server 2016 и я это сделал, теперь я на один шаг стал ближе чем до этой заметки к освоению/практическому использованию данной системы. Пусть на этом я завершу свое повествованию, ведь одна практическая заметка лучше всего написанного в одной. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.
Настройка терминального сервера Windows Server 2016
Для настройки терминального сервера к нему распространяются ниже представленные требования исходя из ПО, которое будет запускаться пользователями и количества пользователей:
У нас вы можете взять терминальный сервер 1С в аренду с бесплатными индивидуальными настройками.
Первоначальные настройки Windows Server 2016:
Настройка терминального сервера
Начиная с Windows 2012 терминальный сервер должен работать в среде Active Directory.
Если в вашей локальной сети есть контроллер домена, просто присоединяйте к нему сервер терминалов, иначе установите на сервер роль контроллера домена.
Установка роли и компонентов
В панели быстрого запуска открываем Диспетчер серверов:
Нажимаем Далее до «Выбор типа установки». Оставляем Установка ролей и компонентов и нажимаем Далее дважды:
В окне «Выбор ролей сервера» выбираем Службы удаленных рабочих столов:
Кликаем Далее, пока не появится окно «Выбор служб ролей» и выбираем следующие:
Нажимаем Далее, при появлении запроса на установку дополнительных компонентов соглашаемся.
При необходимости, также выставляем остальные галочки:
Нажимаем Далее и в следующем окне Установить. Дожидаемся окончания процесса установки и перезагружаем сервер.
Установка служб удаленных рабочих столов
В окне «Выбор типа установки» выбираем Установка служб удаленных рабочих столов и нажимаем Далее:
В окне «Выбор типа развертывания» выбираем Быстрый запуск и нажимаем Далее:
В «Выбор сценария развертывания» — Развертывание рабочих столов на основе сеансов — Далее:
Еще раз Далее — при необходимости, ставим галочку «Автоматически перезапускать конечный сервер, если это потребуется» и кликаем по Развернуть.
Настройка лицензирования удаленных рабочих столов
В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Активировать сервер:
Снова открываем диспетчер серверов и переходим в «Службы удаленных рабочих столов»:
Применяем настройки, нажав OK.
Добавление лицензий
В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Установить лицензии:
В открывшемся окне нажимаем Далее:
Выбираем программу, по которой куплены лицензии, например, Enterprise Agreement:
Мы также готовы оказать помощь в установке и настройке терминального сервера.
Нашим клиентам мы предлагаем реализацию данного проекта и его последующее обслуживание в рамках ИТ-аутсорсинга.
Автовыход пользователя на сервере Windows. Использование его для оптимизации работы вашего VDS / VPS сервера
Анализируя поступающие заявки наших клиентов в службу технической поддержки и обращения к консультантам, мы заметили, что множество наших клиентов сталкиваются с такой проблемой как «автовыход», не понимая, что это и как с ней бороться.
Любой сервер в том числе и виртуальный сервер должен работать в постоянном режиме 24 х 7 х 365. И соответственно пользователь, который запускает программы на выполнение на сервере, рассчитывает, что они будут работать в таком же режиме. Именно на это и рассчитывают наши клиенты. Однако устанавливая на VPS сервер различного рода десктопное программное обеспечение, которое разрабатывалось «умельцами» без мысли, что существуют компьютеры, не имеющие мониторов, отключившись от сервера через какое-то время замечают, что его программа перестала работать должным образом, при том что сервер активен и доступен. Замечают это как правило при следующем подключении к серверу для анализа данных с как подразумевалось работавшего ПО. Проблема, очевидно в том, что данное ПО что-то пытается брать со свойств экрана (разрешение, позиция курсора и т.д.) при том, что ни экрана, ни курсора при отключенном сеансе нет.
Данная проблема является частным случаем ограничения работы сеансов по времени, за которую отвечает узел групповой политики «Службы удаленных рабочих столов» с одноименным названием «Ограничение сеансов по времени». Он позволяет гибким образом настраивать время работы запущенных сеансов или Ваших сотрудников на сервере при организации рабочих мест, что позволяет Вам более оптимально использовать ресурсы арендуемого сервера Windows VDS.
Запустим на сервере редактор «Локальной групповой политики» нажав сочетание клавиш Win+R и Набрав команду GPEDIT.MSC
Далее необходимо перейти по следующему пути в ветке «Конфигурация пользователя», если Вы хотите произвести настройки для текущего пользователя или в ветке «Конфигурация компьютера», если Вы хотите настроить для всех пользователей сервера.
1.«Задать ограничение по времени для отключенных сеансов»
При помощи этого параметра Вы можете указать промежуток времени в минутах, часах или днях, на протяжении которого открытые программы будут продолжать работать после отключения от сервера.
Если Вы хотите, чтобы Ваша программа работала на сервере в постоянном режиме и не происходило «автовыхода» при отключении, то данный параметр следует указать как Включен и выбрать Никогда. Что является решение выше описанной ситуации.
Данный параметр можно так же использовать в моменты, когда рабочий день сотрудника закончен, но на выполнение некоторых автономных процессов, которые не требуют вмешательства пользователя, нужно еще дополнительное время, в таком случае можно указать Включено и указать необходимо количество времени.
2.«Задать ограничение по времени для активных, но бездействующих сеансов служб удалённых рабочих столов»
Бездействующим сеансом считается тот сеанс, когда удаленный рабочий стол начинает простаивать без каких-либо операций ввода, со стороны пользователя. Сотрудник может подключиться к удаленному рабочему столу сервера, а затем по завершении рабочего дня попросту забыть отключиться от сервера и уйти домой. В таком случае сеанс активен, но простаивает и ресурсы выделяемые сервером и зарезервированные для этого пользователя, простаивают и соответственно расходуются не эффективно. В таком случае можно указать Включено и указать необходимо количество времени, после которого при простое, сеанс будет завершен.
3.«Задать ограничение по времени для активных сеансов служб удалённых рабочих столов»
Данный параметр отвечает за завершение даже активного сеанса, скажем если политикой Вашей компании является достаточно строгий контроль рабочего времени и не допускаются переработки. То Вы можете установить это параметр на Включено и указать максимальный период рабочего времени. Соответственно по завершению рабочего дня, сеанс даже активного пользователя будет завершен, но за две минуты до отключения, пользователю будет предоставлено предупреждающее сообщение, чтобы он смог сохранить все выполненные за время подключения изменения и открытые рабочие документы.
Во втором и третьем случае обязательно включение параметра «Завершать сеанс при достижении ограничения по времени». Включение данного параметра указывает, чтобы производилось именно завершение сеанса пользователя, в противном случае будет производится только отключение сеанса, но не его завершение.
4.«Задать предел времени для выхода из сеансов RemoteApp»
Данный параметр позволяет Вам, завершать сеанс в момент, когда Вы не производили подключение к удаленному рабочему столу сервера, но подключение к серверу было установлено при помощи сторонних программ. При закрытии программы, если параметр «Не задан», то сеанс отключается, но не завершается. Для завершения сеанса необходимо указать Включено и установить время, так же доступен параметр «Немедленно».