Обновлено: 02.11.2017
Опубликовано: 13.09.2016
Удаленный рабочий стол применяется для дистанционного администрирования системы. Для его настройки нужно сделать, буквально, несколько шагов.
Как включить
Настройка доступа
Ограничения
Доступ из Интернет
Включение
1. Открываем сведения о системе. В Windows Server 2012 R2 / 2016 или 10 кликаем правой кнопкой мыши по Пуск и выбираем Система.
В Windows Server 2012 / 8 и ниже открываем проводник или меню Пуск. Кликаем правой кнопкой по Компьютер и выбираем Свойства.
2. Настраиваем удаленный рабочий стол. В меню слева кликаем по Настройка удаленного доступа.
В открывшемся окне ставим переключатель в положение Разрешить удаленные подключения к этому компьютеру.
* желательно, если будет установлен флажок Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети. Но если компьютер, с которого мы будем заходить с устаревшей операционной системой, это может вызвать проблемы.
Предоставление доступа
Очень важно, чтобы у пользователя был установлен пароль. Без него зайти в систему с использованием RDP будет невозможно — это программное ограничение. Поэтому всем учетным записям ставим пароли.
У пользователей с правами администратора права на использование удаленного стола есть по умолчанию. Чтобы обычная учетная запись могла использоваться для удаленного входа в систему, добавьте ее в группу Пользователи удаленного рабочего стола. Для этого открываем консоль управления компьютером (команда compmgmt.msc) — переходим по разделам Служебные программы — Локальные пользователи и группы — Группы и кликаем дважды по Пользователи удаленного рабочего стола:
В открывшемся окне добавляем необходимых пользователей.
Для проверки правильности настроек, используйте программу Подключение к удаленному рабочему столу (находится в меню Пуск или вызывается командой mstsc) на любом другом компьютере в сети.
Ограничение по количеству пользователей
По умолчанию, в серверных операционных системах Windows разрешено подключение для одновременно двух пользователей. Чтобы несколько пользователей (больше 2-х) могли использовать удаленный стол, необходима установка роли удаленных рабочих столов (терминального сервера) и активации терминальных лицензий — подробнее, читайте в инструкции Установка и настройка терминального сервера на Windows Server.
В пользовательских системах (Windows 10 / 8 / 7) разрешено подключение только одному пользователю. Это лицензионное ограничение. В сети Интернет можно найти патчи для его снятия и предоставления возможности подключаться удаленным рабочим столом для нескольких пользователей. Однако, это нарушение лицензионного соглашения.
Доступ через глобальную сеть (Интернет)
Для возможности подключения по RDP из вне необходим статический внешний IP-адрес. Его можно заказать у Интернет провайдера, стоимость услуги, примерно, 150 рублей в месяц (некоторые поставщики могут предоставлять бесплатно). Для подключения нужно использовать полученный внешний IP.
Если компьютер подключен к Интернету напрямую, никаких дополнительных действий не потребуется. Если мы подключены через NAT (роутер), необходима настройка проброса портов. Пример того, как это можно сделать на Mikrotik.
Была ли полезна вам эта инструкция?
Да Нет
Remote Desktop Protocol (RDP) is a Microsoft-proprietary remote access protocol that is used by Windows systems administrators to manage Windows Server systems remotely. What sets RDP apart from, say, Windows PowerShell or Secure Shell (SSH) remoting is the presence of the full graphical desktop, as shown in Figure 1.
MORE: Best Remote Access Software and Solutions
By default, the RDP server component listens for incoming connections on TCP port 3389 by default, although this can be changed by the administrator for security reasons.
To be sure, Microsoft’s current push is for admins to reduce their reliance upon RDP and instead (a) deploy Windows Servers in Server Core or Nano mode; and (b) employ Windows PowerShell command-line remote administration instead of RDP.
Microsoft’s justification for this advice is two-fold:
- A GUI layer consumes unnecessary system resources
- A GUI layer broadens the attack surface of your servers
Regardless, many admins are accustomed to RDP-based remote administration, and seek to do so even in the newly released Windows Server 2016 operating system. Let’s learn how to enable RDP in Server 2016 (tl;dr: the process is identical to Windows Server 2012 R2).
Server Manager
Open the Server Manager console, navigate to the Local Server node, and click the Remote Desktop hyperlink as shown in Figure 2.
The Remote Desktop hyperlink is simply a shortcut to the System Properties sheet from the System Control Panel item. Select Allow remote connections to this computer, and optionally enable Allow connections only from computers running Remote Destkop with Network Level Authentication (recommended).
Network Level Authentication (NLA) protects Windows Server against denial-of-service (DoS) attacks by requiring authentication to take place before any graphical session is established by the server. NLA also conserves server system resources.
Windows PowerShell
From a lower-level perspective, incoming RDP connections are enabled on a server through two Registry values and a Windows Firewall rule.
Open an elevated Windows PowerShell session and run the following commands. This first one creates the fDenyTSConnections value and sets it to 0 (off). This makes sense, because we don’t want to deny Terminal Services (TS) connections.
New-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal Server’ -Name ‘fDenyTSConnections’ -Value 0 -PropertyType dword -Force
The next command creates and enables the UserAuthentication (Network Layer Authentication) value; NLA is a good idea and you should consider enabling it by default on your servers.
New-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp’ -Name ‘UserAuthentication’ -Value 1 -PropertyType dword -Force
The next command enables the predefined «Remote Desktop» Windows Firewall rule. We can then invoke the Get-NetFirewallRule PowerShell cmdlet to verify as shown in Figure 3.
Enable-NetFirewallRule -DisplayGroup ‘Remote Desktop’
Group Policy
The chances are good that you want to standardize RDP behavior across all your infrastructure servers. Therefore, we turn to Group Policy to accomplish this goal.
Start by creating, linking and scoping a new Group Policy Object (GPO) that targets the servers that should share RDP server settings.
Next, navigate to the following Group Policy path and add a new Restricted Groups entry (shown in Figure 4):
Computer ConfigurationPoliciesWindows SettingsSecurity SettingsRestricted Groups
You can customize the membership in the servers’ built-in Remote Desktop Users group; members of this group can establish RDP sessions to the server. Note that the local Administrators group (and, by extension, the Domain Admins global group) is automatically granted this privilege in Active Directory.
The following three Group Policy settings govern:
- Windows Firewall incoming RDP exceptions
- User right to establish RDP sessions
- Requiring NLA
Computer ConfigurationAdministrative TemplatesNetworkNetwork ConnectionsWindows FirewallDomain ProfileWindows Firewall: Allow Inbound Remote Desktop exceptions
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostConnectionsAllow user to connect remotely by using Remote Desktop Services
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurityRequire user authentication for remote connections by using NLA
Creating the Client Connection
Windows Client and Windows Server both include the Microsoft RDP client, called Remote Desktop Connection. My favorite way to invoke this tool is to:
Press WINDOWS KEY+R
Type mstsc (which stands for «Microsoft Terminal Services Client»)
Press ENTER
I show you the Remote Desktop Connection user interface in Figure 5.
What’s cool about RDP clients is that they are available for just about every desktop or mobile operating system. Here is a representative list:
- Android: Microsoft Remote Desktop
- iOS: Microsoft Remote Desktop
- Linux: rdesktop
- macOS: Microsoft Remote Desktop
- Windows Phone: Microsoft Remote Desktop
Note that Windows Server supports only two simultaneous RDP sessions at once. If you need more than that, then you’ll have to install the Remote Desktop Services (RDS) Session Host server role and purchase additional RDS connection licenses from Microsoft.
Final Thoughts
If you’ve configured RDP on previous Windows Server versions, then you’ll find that Windows Server 2016 behaves the exact same way. Keep in mind, however, that Microsoft’s ever-widening embrace of «assume breach» security posture and the hybrid cloud scenario and its accompanying «manage herds, not pets» philosophy means the emphasis is on command-line automation rather than on-off RDP GUI sessions.
- 10 Best New Features in Windows Server 2016
- Windows 10 for IT Pros: Tutorials, Tips and Tricks
- Top 6 Windows 10 Apps for IT Pros
Get instant access to breaking news, in-depth reviews and helpful tips.
Remote Desktop Protocol (RDP) is a Microsoft-proprietary remote access protocol that is used by Windows systems administrators to manage Windows Server systems remotely. What sets RDP apart from, say, Windows PowerShell or Secure Shell (SSH) remoting is the presence of the full graphical desktop, as shown in Figure 1.
MORE: Best Remote Access Software and Solutions
By default, the RDP server component listens for incoming connections on TCP port 3389 by default, although this can be changed by the administrator for security reasons.
To be sure, Microsoft’s current push is for admins to reduce their reliance upon RDP and instead (a) deploy Windows Servers in Server Core or Nano mode; and (b) employ Windows PowerShell command-line remote administration instead of RDP.
Microsoft’s justification for this advice is two-fold:
- A GUI layer consumes unnecessary system resources
- A GUI layer broadens the attack surface of your servers
Regardless, many admins are accustomed to RDP-based remote administration, and seek to do so even in the newly released Windows Server 2016 operating system. Let’s learn how to enable RDP in Server 2016 (tl;dr: the process is identical to Windows Server 2012 R2).
Server Manager
Open the Server Manager console, navigate to the Local Server node, and click the Remote Desktop hyperlink as shown in Figure 2.
The Remote Desktop hyperlink is simply a shortcut to the System Properties sheet from the System Control Panel item. Select Allow remote connections to this computer, and optionally enable Allow connections only from computers running Remote Destkop with Network Level Authentication (recommended).
Network Level Authentication (NLA) protects Windows Server against denial-of-service (DoS) attacks by requiring authentication to take place before any graphical session is established by the server. NLA also conserves server system resources.
Windows PowerShell
From a lower-level perspective, incoming RDP connections are enabled on a server through two Registry values and a Windows Firewall rule.
Open an elevated Windows PowerShell session and run the following commands. This first one creates the fDenyTSConnections value and sets it to 0 (off). This makes sense, because we don’t want to deny Terminal Services (TS) connections.
New-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal Server’ -Name ‘fDenyTSConnections’ -Value 0 -PropertyType dword -Force
The next command creates and enables the UserAuthentication (Network Layer Authentication) value; NLA is a good idea and you should consider enabling it by default on your servers.
New-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp’ -Name ‘UserAuthentication’ -Value 1 -PropertyType dword -Force
The next command enables the predefined «Remote Desktop» Windows Firewall rule. We can then invoke the Get-NetFirewallRule PowerShell cmdlet to verify as shown in Figure 3.
Enable-NetFirewallRule -DisplayGroup ‘Remote Desktop’
Group Policy
The chances are good that you want to standardize RDP behavior across all your infrastructure servers. Therefore, we turn to Group Policy to accomplish this goal.
Start by creating, linking and scoping a new Group Policy Object (GPO) that targets the servers that should share RDP server settings.
Next, navigate to the following Group Policy path and add a new Restricted Groups entry (shown in Figure 4):
Computer ConfigurationPoliciesWindows SettingsSecurity SettingsRestricted Groups
You can customize the membership in the servers’ built-in Remote Desktop Users group; members of this group can establish RDP sessions to the server. Note that the local Administrators group (and, by extension, the Domain Admins global group) is automatically granted this privilege in Active Directory.
The following three Group Policy settings govern:
- Windows Firewall incoming RDP exceptions
- User right to establish RDP sessions
- Requiring NLA
Computer ConfigurationAdministrative TemplatesNetworkNetwork ConnectionsWindows FirewallDomain ProfileWindows Firewall: Allow Inbound Remote Desktop exceptions
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostConnectionsAllow user to connect remotely by using Remote Desktop Services
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurityRequire user authentication for remote connections by using NLA
Creating the Client Connection
Windows Client and Windows Server both include the Microsoft RDP client, called Remote Desktop Connection. My favorite way to invoke this tool is to:
Press WINDOWS KEY+R
Type mstsc (which stands for «Microsoft Terminal Services Client»)
Press ENTER
I show you the Remote Desktop Connection user interface in Figure 5.
What’s cool about RDP clients is that they are available for just about every desktop or mobile operating system. Here is a representative list:
- Android: Microsoft Remote Desktop
- iOS: Microsoft Remote Desktop
- Linux: rdesktop
- macOS: Microsoft Remote Desktop
- Windows Phone: Microsoft Remote Desktop
Note that Windows Server supports only two simultaneous RDP sessions at once. If you need more than that, then you’ll have to install the Remote Desktop Services (RDS) Session Host server role and purchase additional RDS connection licenses from Microsoft.
Final Thoughts
If you’ve configured RDP on previous Windows Server versions, then you’ll find that Windows Server 2016 behaves the exact same way. Keep in mind, however, that Microsoft’s ever-widening embrace of «assume breach» security posture and the hybrid cloud scenario and its accompanying «manage herds, not pets» philosophy means the emphasis is on command-line automation rather than on-off RDP GUI sessions.
- 10 Best New Features in Windows Server 2016
- Windows 10 for IT Pros: Tutorials, Tips and Tricks
- Top 6 Windows 10 Apps for IT Pros
Get instant access to breaking news, in-depth reviews and helpful tips.
Для настройки терминального сервера к нему распространяются ниже представленные требования исходя из ПО, которое будет запускаться пользователями и количества пользователей:
- Процессор: от 4 ядер
- Оперативная память : 1 ГБ на каждого пользователя + 4 ГБ для работы ОС + 4 ГБ запас
- Дисковая система: для большей отказоустойчивости нужно настроить RAID-массив
Для установки выделить два диска: первый логический диск от 50 ГБ. До 100 ГБ выделить для установки ОС, второй логический диск выделить под пользовательские профили с расчетом минимум 1 ГБ на пользователя - Ширина канала для терминального сервера: 250 Кбит/с на пользователя
У нас вы можете взять терминальный сервер 1С в аренду с бесплатными индивидуальными настройками.
Первоначальные настройки Windows Server 2016:
- Настроить статический IP-адрес сервера
- Проверить правильность настройки времени и часового пояса
- Установить все обновления системы
- Задать понятное имя для сервера и, при необходимости, ввести его в домен
- Включить доступ до сервера по удаленному рабочему столу для удаленного администрирования
- Настроить запись данных профилей пользователей на второй логический диск
- Активировать лицензию Windows Server 2016
Настройка терминального сервера
Начиная с Windows 2012 терминальный сервер должен работать в среде Active Directory.
Если в вашей локальной сети есть контроллер домена, просто присоединяйте к нему сервер терминалов, иначе установите на сервер роль контроллера домена.
Установка роли и компонентов
В панели быстрого запуска открываем Диспетчер серверов:
Нажимаем Управление — Добавить роли и компоненты:
Нажимаем Далее до «Выбор типа установки». Оставляем Установка ролей и компонентов и нажимаем Далее дважды:
В окне «Выбор ролей сервера» выбираем Службы удаленных рабочих столов:
Кликаем Далее, пока не появится окно «Выбор служб ролей» и выбираем следующие:
- Лицензирование удаленных рабочих столов
- Узел сеансов удаленных рабочих столов
Нажимаем Далее, при появлении запроса на установку дополнительных компонентов соглашаемся.
При необходимости, также выставляем остальные галочки:
- Веб-доступ к удаленным рабочим столам — возможность выбора терминальных приложений в браузере.
- Посредник подключений к удаленному рабочему столу — для кластера терминальных серверов посредник контролирует нагрузку каждой ноды и распределяет ее.
- Узел виртуализации удаленных рабочих столов — для виртуализации приложений и запуска их через терминал.
- Шлюз удаленных рабочих столов — центральный сервер для проверки подлинности подключения и шифрования трафика. Позволяет настроить RDP внутри HTTPS.
Нажимаем Далее и в следующем окне Установить. Дожидаемся окончания процесса установки и перезагружаем сервер.
Установка служб удаленных рабочих столов
После перезагрузки открываем Диспетчер серверов и нажимаем Управление — Добавить роли и компоненты:
В окне «Выбор типа установки» выбираем Установка служб удаленных рабочих столов и нажимаем Далее:
В окне «Выбор типа развертывания» выбираем Быстрый запуск и нажимаем Далее:
В «Выбор сценария развертывания» — Развертывание рабочих столов на основе сеансов — Далее:
Еще раз Далее — при необходимости, ставим галочку «Автоматически перезапускать конечный сервер, если это потребуется» и кликаем по Развернуть.
Настройка лицензирования удаленных рабочих столов
Для корректной работы сервера, необходимо настроить службу лицензирования. Для этого открываем диспетчер серверов и кликаем по Средства — Remote Desktop Services — Диспетчер лицензирования удаленных рабочих столов:
В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Активировать сервер:
В открывшемся окне дважды кликаем Далее — заполняем форму — Далее — Далее — Снимаем галочку «Запустить мастер установки лицензий» — Готово.
Снова открываем диспетчер серверов и переходим в «Службы удаленных рабочих столов»:
В «Обзоре развертывания» кликаем по Задачи — Изменить свойства развертывания:
В открывшемся окне переходим в Лицензирование — Выбираем тип лицензий — прописываем имя сервера лицензирования (в данном случае локальный сервер) и нажимаем Добавить:
Применяем настройки, нажав OK.
Добавление лицензий
Открываем диспетчер серверов и кликаем по Средства — Remote Desktop Services — Диспетчер лицензирования удаленных рабочих столов:
В открывшемся окне кликаем правой кнопкой мыши по нашему серверу и выбираем Установить лицензии:
В открывшемся окне нажимаем Далее:
Выбираем программу, по которой куплены лицензии, например, Enterprise Agreement:
Нажимаем Далее — вводим номер соглашения и данные лицензии — выбираем версию продукта, тип лицензии и их количество:
Нажимаем Далее — Готово.
Проверить статус лицензирования можно в диспетчере серверов: Средства — Remote Desktop Services — Средство диагностики лицензирования удаленных рабочих столов.
Мы также готовы оказать помощь в установке и настройке терминального сервера.
Нашим клиентам мы предлагаем реализацию данного проекта и его последующее обслуживание в рамках ИТ-аутсорсинга.
Краткое описание: В данном руководстве рассматривается установка службы удаленных рабочих столов RDP Windows Server 2016.
Поддержи автора статьи, просмотри рекламу ↓↓↓
Нужна консультация или помощь в решении IT вопроса?
Службы удаленных рабочих столов Windows Server является самыми востребовательными по практическому использованию. Типичная связка подключения клиентского ПК к:
- Серверу приложений;
- Виртуальному рабочему столу.
Такой функционал решает задачи не только быстродействия(это все же сервер), но и вопрос с безопасностью коммерческой информации. Стоит отметить, что структурированные данные легче администрируются во всех аспектах этого понятия: предоставление доступа, резервное копирование и репликация, управление кластерными системами.
Установка службы удаленных рабочих столов RDP
Поддержи автора статьи, просмотри рекламу ↓↓↓
Диспетчер сервера, добавление роли
Перед началом работы
Тип установки
Выбор сервера для установки
Поддержи автора статьи, просмотри рекламу ↓↓↓
Выбор роли службы удаленных рабочих столов
Пропуск добавления компонентов
Описание службы удаленных рабочих столов
Добавление ролей для службы удаленных рабочих столов
Поддержи автора статьи, просмотри рекламу ↓↓↓
Подтверждение установки
Процесс установки
Завершение установки, после этого требуется перезагрузить систему
Активация сервера лицензирования RDP
Поддержи автора статьи, просмотри рекламу ↓↓↓
Мастер активации сервера, первый запуск
Сведения об организации
Мастер активация сервера, завершение работы
Поддержи автора статьи, просмотри рекламу ↓↓↓
Мастер установки лицензий, запуск
Выбор метода подключения
Номер соглашения
Версия продукта
Мастер установки лицензий, завершение
Поддержи автора статьи, просмотри рекламу ↓↓↓
Успешное завершение активации сервера лицензирования
Важный этап — указание сервера лицензирования, т.к. начиная с Windows 2012R2 эту опцию перенесли в групповые политики:
Указание типа лицензирования — на пользователя
Проверка работы службы терминалов
Добавление пользователей в группу разрешения для подключения
Во всех версия Windows Server, есть группа, по которой задаются разрешения для подключения к удаленному рабочему столу.
Остается только добавить пользователя
Поддержи автора статьи, просмотри рекламу ↓↓↓
Оглавление
- Добавление ролей и компонентов
- Активация лицензии удалённых рабочих столов
- Изменение стандартного порта подключения
- Возможные проблемы
- Подключение было запрещено
- CredSSP
- Отсутствуют доступные серверы лицензирования удаленных рабочих столов
Добавление ролей и компонентов
Установка самой оси Microsoft Windows Server 2016 в рамках данной статьи рассматриваться не будет, только отдельно сама установка терминального сервера.
На будущем терминальном сервере открываем диспетчер сервера через Панель управления (Win + R Control) — Администрирование — Диспетчер серверов (Server Manager)
или через команду «Выполнить» (Win + R ServerManager). После чего переходим по вкладке Локальный сервер (Local Server)
Открываем мастер добавления ролей и компонентов, жмём далее, в типе установки отмечаем радиокнопкой пункт Установка ролей или компонентов (Role-based or feature-based installation),
выбираем сервер, жмём далее, чекбоксом отмечаем Службы удаленных рабочих столов. В службах ролей отмечаем для установки две службы: Лицензирование удаленных рабочих столов (Remote Desktop Licensing) и Узел сеансов удаленных рабочих столов (Remote Desktop Session Host),
жмём далее и потом установить. Дожидаемся конца установки и перезагружаем сервер, если это не было сделано автоматически по завершению установки.
Активация лицензии удалённых рабочих столов
Средства — Remote Desktop Services — Диспетчер лицензирования удаленных рабочих столов (RD Licensing Manager).
Раскрываем древо, правой кнопкой по нашему серверу вызываем выпадающее меню и выбираем пункт активировать сервер.
В мастер активации сервера вначале заполняем сведения об организации, а после устанавливаем саму лицензию. При выборе программы лицензии указываем Другое соглашение,
и указываем ключи активации купленной лицензии 6565792 (или любой другой. Для тестового сервера нагуглите за 2 минуты:»номер соглашения windows server 2016«. Ключ 6565792 — также является результатом выдачи поисковика google).
Выбираем версию продукта Windows Server 2016и тип лицензии Клиентская лицензия служб удаленных рабочих столов (на пользователя). Готово!
Но Средство диагностики лицензирования удаленных рабочих столов сообщает нам, что сервер лицензирования не включён. Чтож, поправим это дело через политики. Вызываем
командное меню «Выполнить» Win + R gpedit.msc. Переходим: Конфигурация компьютера (Computer Configuration) — Административные шаблоны (Administrative Templates) — Компоненты Windows (Windows Components) — Службы удаленных рабочих столов (Remote Desktop Services) — Узел сеансов удаленных рабочих столов (Remote Desktop Session Host) — Лицензирование (Licensing).
Тут поправим Использовать указанные серверы лицензирования удаленных рабочих столов (Use the specified Remote Desktop license servers) и Задать режим лицензирования удаленных рабочих столов (Set the Remote licensing mode).
Обновляем сведения в оснастке Средство диагностики лицинзирования удаленных рабочих столов (Win + R lsdiag.msc). Теперь всё ок!
Изменение стандартного порта подключения
Стандартный порт для RDP подключения: 3389
Открываем реестр (Win + R regedit), переходим по ветке:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
Находим ключ PortNumber, меняем систему исчисления на Десятичную и задаем необходимый номер порта.
Так же это можно сделать через командную строу:
reg add "HKLMSystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber /t REG_DWORD /d НОВЫЙ_НОМЕР_ПОРТА /f
А чтобы вы потом смогли подключиться по новому порту, то вам в фаервол нужно прописать правило
netsh advfirewall firewall add rule name="RDP PORT НОВЫЙ_НОМЕР_ПОРТА" dir=in action=allow protocol=TCP localport=НОВЫЙ_НОМЕР_ПОРТА
И перезапустить службу
net stop TermService && net start TermService
Возможные проблемы
Подключение было запрещено
Скорее всего вы при попытке подключиться увидите сообщение:»Подключение было запрещено, так как учетная запись пользователя не имеет прав для удаленного входа в систему«,
а всё из-за того, что 1 — терминальный сервер не настроен в домене на разрешение подключения к нему определённых пользователей; 2 — вы не добавили в группу Пользователи удаленного рабочего стола ни одного пользователя.
Возможно вам будет полезна статья о том как из Windows 10 сделать Терминальный сервер.
CredSSP
Ещё можете столкнуться с такой вот ошибкой: An authentication error has occurred. The function is not supported. This could be due to CredSSP encryption oracle remediation.
О ней я писал ранее в статье:»Ошибка RDP подключения: CredSSP encryption oracle remediation. Как исправить?».
А возникновение этой ошибки связано с тем, что на терминальном Windows сервере, на который идёт подключение, не установлены последние обновления безопасности (CredSSP обновления для CVE-2018-0886). После обновления система по умолчанию запрещает подключаться к удалённым серверам по RDP со старой версией протокола CredSSP.
Отсутствуют доступные серверы лицензирования удаленных рабочих столов
После настройки сервера всё шло хорошо, но только 120 дней. Потом случилось следущее:
Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов.
Обратитесь к администратору сервера
А это означает что у вас установлен ключ льготного периода (grace period licensing), который необходимо удалить. Для этого вам нужно залогиниться на сервер локально.
Где удалять ключ льготного периода? В реестре под именем L$RTMTIMEBOMB. Идём по ветке реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerRCMGracePeriod
Но не тут то было! У вас недостаточно прав, но и это нас не остановит. Жмём правой кнопкой мыши и меняем владельца на ветку реестра и даём полные права самому себе, после чего спокойно удаляем эту гадость).
Если не поможет, то советую переустановить роли и компоненты.
Протокол Remote Desktop Protocol (RDP) позволяет удаленно подключиться к рабочему столу компьютера с Windows и работать с ним, как будто это ваш локальный компьютер. По умолчанию RDP доступ в Windows запрещен. В этой статье, мы покажем, как включить и настроить RDP доступ в Windows 10 и Windows Server 2016/2019.
Содержание:
- Включаем удаленный рабочий стол в Windows 10
- Как включить RDP доступ с помощью PowerShell?
- RDP доступ к Windows Server 2016/2019
- Включение RDP с групповых политик в домене Active Direcrtory
- Как удаленно включить RDP на компьютере Windows?
Включаем удаленный рабочий стол в Windows 10
Самый простой способ включить RDP доступ в Windows – воспользоваться графическим интерфейсом.
Откройте свойства системы через панель управления, или выполнив команду SystemPropertiesRemote.
Перейдите на вкладку Remote Settings (Удаленный доступ), включите опцию Allow remote connection to this computer (Разрешить удалённые подключения к этому компьютеру).
В целях безопасности желательно разрешить подключение только с клиентов RDP с поддержкой протокола NLA (Allow connections only from computers running Remote Desktop with Network Level Authentication/ Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети).
Сохраните изменения, нажав ОК.
По умолчанию право на подключение к компьютеру через RDP есть только у членов группы локальных администраторов. Если вам нужно разрешить RDP доступ другим пользователям, нажмите кнопку Select Users.
Все пользователи, которых вы укажете здесь будет добавлены в локальную группу Remote Desktop Users. Вы можете в командной строке вывести список пользователей в этой группе:
net localgroup "Remote Desktop Users"
или
net localgroup “Пользователи удаленного рабочего стола”
Чтобы добавить нового пользователя в группу доступа RDP, выполните:
net localgroup "Remote Desktop Users" /add publicuser
В русской версии Windows измените название группы на “Пользователи удаленного рабочего стола”.
В новых билдах Windows 10 классическая панель для включения RDP доступа теперь спрятана и Microsoft рекомендует пользоваться новой панелью Setting.
- Перейдите в Settings -> System —> Remote Desktop;
- Включите опцию Enable Remote Desktop;
- Подтвердите включение RDP на компьютере.
Обратите внимание, что вы не можете включить RDP доступ к редакции Windows 10 Home. RDP сервер работает только на Windows 10 Pro и Enterprise. Впрочем, есть обходное решение.
Обратите внимание, что по умолчанию при включении Remote Desktop, включаются две опции:
- Keep my PC awake for connection when it is plugged in ;
- Make my PC discoverable on private networks to enable automatic connection from a remote device
На жмите на ссылку “Advanced settings”. Здесь можно включить использование протокола “Network Level Authentication” для RDP подключений (рекомендуется).
Если на компьютере включен Windows Defender Firewall (брандмауэр), то нужно проверить, что в нем разрешены входящие RDP подключения. По умолчанию для RDP подключений используется порт TCP
3389
, а в последних билдах Windows также используется
UDP 3389
( см. статью про кейс с черным экраном вместо рабочего стола при RDP доступе).
Перейдите в панель управления и выберите элемент Windows Defender Firewall. Откройте список стандартных правил брандмауэра Windows, щелкнув в левом столбце по ссылке Allow an app or feature through Windows Firewall.
Проверьте, что правило Remote Desktop включено для профиля Private (домашняя или рабочая сеть) и, если необходимо, для профиля Public (общедоступные сети).
Подробнее про типы сетей и профили брандмауэра Windows здесь.
Если нужно, вы можете дополнительно ограничить длительность RDP сессий с помощью GPO.
Теперь к данному компьютеру можно подключится с помощью RDP клиента. Встроенный RDP клиент Windows –
mstsc.exe
. Он сохраняет всю историю RDP подключений с компьютера. Поддерживается копирование файлов между локальным и удаленным компьютером прямо через буфер обмена RDP.
Также вы можете использовать менеджеры RDP подключений, такие как RDCMan или mRemoteNG, или альтернативные клиенты.
Для удобства пользователей пароль для RDP подключения можно сохранить в Windows Credential Manager.
Как включить RDP доступ с помощью PowerShell?
Вы можете включить RDP доступ в Windows с помощью пары PowerShell команд. Это гораздо быстрее:
- Запустите консоль PowerShell.exe с правами администратора;
- Включите RDP доступ в реестре с помощью командлета Set-ItemProperty:
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal Server' -name "fDenyTSConnections" -value 0
Чтобы закрыть RDP доступ, измените значение fDenyTSConnections на 1.
- Разрешите RDP подключения к компьютеру в Windows Defender Firewall. Для этого включите предустановленное правило :
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
- Если нужно добавить пользователя в группу в локальную группу RDP доступа, выполните:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member 'a.petrov'
Чтобы проверить, что на компьютере открыт RDP порт, воспользуйтесь командлетом Test-NetConnection:
Test-NetConnection -ComputerName deskcomp323 -CommonTCPPort rdp
RDP доступ к Windows Server 2016/2019
В отличии от десктопной редакции Windows 10, в Windows Server по умолчанию поддерживается два одновременных RDP подключения. Эти подключения используются администраторами для управления сервером.
Включается RDP в Windows Server аналогично. Через SystemPropertiesRemote, через Server Manager или командами PowerShell, рассмотренными выше.
Вы можете использовать Windows Server в качестве терминального сервера. В этом случае множество пользователей могут одновременно подключаться к собственному рабочему столу на сервере. Для этого нужно установить и настроить на сервере роль Remote Desktop Session Host. Это требует приобретения специальных RDS лицензии (CAL). Подробнее о RDS лицензировании здесь.
Для дополнительно защиты RDP сессий можно использовать SSL/TLS сертификаты.
Включение RDP с групповых политик в домене Active Direcrtory
Если вам нужно включить RDP доступ сразу на большом количестве компьютеров, можно воспользоваться групповыми политиками (GPO). Мы подразумеваем, что все компьютеры включены в домен Windows.
- Запустите консоль управления доменными GPO
gpmc.msc
; - Создайте новую (или отредактируйте уже существующую) групповую политику и привяжите ее к целевой OU с компьютерами или серверами;
- Переключитесь в режим редактирования политики и перейдите в секцию GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections;
- Найдите и включите политику Allow Users to connect remotely by using Remote Desktop Services, установив ее в Enable;
- Обновите параметры групповых политик на клиентах;
- После применения данной политики вы сможете подключится ко всем компьютерам по RDP (политика применится как к десктопным клиентам с Windows 10, так и к Windows Server). Если нужно, вы можете более тонко нацелить политики на компьютеры с помощью WMI фильтров GPO.
- Если на компьютерах включен Windows Defender Firewall, нужно в этой же GPO разрешить RDP-трафик для доменного профиля. Для этого нужно активировать правило Windows Firewall: Allow inbound Remote Desktop Exceptions (находится в разделе Computer Configuration -> Administrative Templates -> Network -> Network Connections -> Windows Firewall -> Domain Profile).
Подробнее о настройке правил брандмаура Windows через GPO рассказано здесь.
Как удаленно включить RDP на компьютере Windows?
Также вы можете удаленно включить RDP на любом компьютере Windows. Для этого у вас должен быть удаленный доступ к этому компьютеру (через PowerShell или WMI) и ваша учетная запись состоять в группе локальных администраторов на этом компьютере.
Вы можете удаленно включить RDP через реестр. Для этого на удаленном компьютере должна быть включена служба Remote Registry (по умолчанию она отключена). Чтобы запустить службу:
- Запустите консоль управления службами (
services.msc
); - Выберите Connect to another computer и укажите имя удаленного компьютера;
- Найдите в списке службу Remote Registry, измените тип запуска на Manual (ручной) и затем запустите службу – Start.
Тоже самое можно выполнить удаленно из командной строки с помощью встроенной утилиты
sc
(позволяет создавать, управлять или удалять службы Windows):
sc \WKMDK22SQ65 config RemoteRegistry start= demand
sc \WKMDK22SQ65 start RemoteRegistry
Затем на локальном компьютере
- Запустите редактор реестра
regedit.exe
- Выберите в меню Файл пункт Connect Network Registry (Подключить сетевой реестр)
- Укажите имя или IP адрес удаленного компьютера, на котором нужно включить службу RDP;
- Перейдите в раздел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server
; - Найдите параметр fDenyTSConnections (тип REG_DWORD). Если данный ключ отсутствует – создайте его. Измените его значение на 0, чтобы включить RDP.
Для отключения RDP доступа нужно изменить значение fDenyTSConnections на 1.
Сразу после этого без перезагрузки удаленный компьютер должен стать доступным по RDP.
Но гораздо быстрее можно включить RDP в реестре удаленого компьютера через командную строку:
REG ADD "\WKMDK22SQ65HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Если на удаленном компьютере настроен PowerShell remoting, вы можете выполнить на нем удаленную команду через Invoke-Command:
Invoke-Command -Computername WKMDK22SQ65 -ScriptBlock {Set-ItemProperty -Path "HKLM:SystemCurrentControlSetControlTerminal Server" -Name "fDenyTSConnections" –Value 0}
Если в Windows установлен OpenSSH сервер, вы можете подключиться к нему любым ssh клиентом и внести изменения в реестр в локальной ssh сессии.
Также вы можете подключиться к удаленному компьютеру и включить RDP через WMI:
$compname = “WKMDK22SQ65”
(Get-WmiObject -Class Win32_TerminalServiceSetting -Namespace rootCIMV2TerminalServices -Computer $compname -Authentication 6).SetAllowTSConnections(1,1)
Режим Shadow
Режим Shadow (теневой сеанс) – может использоваться администратором для просмотра и управления активной терминальной сессией любого пользователя.
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или непосредственно из консоли Диспетчера серверов.
Для этого необходимо использовать коллекции сеансов, которые доступны после установки службы удалённых рабочих столов.
Для установки службы удалённых рабочих столов необходимо, чтобы Ваш VPS под управлением Windows Server 2012 / 2016 был введен в домен.
В данной инструкции сервер уже состоит в домене NEOCOMMS.RU
Установка служб RDP
(установка служб удаленных рабочих столов)
В «Диспетчере серверов» выберите «Управление» и «Добавить роли и компоненты«:
На первым шаге «Мастера добавления ролей и компонентов» и нажимаем «Далее«:
На втором шаге выбираем «Установка служб удалённых рабочих столов«:
В следующем шаге мастер попросит Вас выбрать тип развертывания. Выберите «Стандартное развертывание» и нажимаем «Далее«:
Выберите сценарий «Развертывание рабочих столов на основе сеансов» и “Далее”:
Нажмите «Далее«:
Здесь нужно выбрать сервер «Посредник подключений к удалённому рабочему столу«, выбираем сервер в «Пуле серверов» и нажимаем «Далее«.
На этом этапе выберите сервер из списка «Пул серверов» и нажмите «Далее«:
Укажите сервер «Узла сеансов удалённых рабочих столов» выбрав сервер из списка “Пул серверов” и нажмите “Далее”:
Поставте галочки напротив пункта “Автоматически перезапускать конечный сервер, если это потребуется” и нажмите «Развернуть«:
Дождитесь установки выбраных ролей, после чего компьютер будет перезагружен.
После перезагрузки автоматически запустится «Мастер добавления ролей и компонентов«, который настроит установленные службы.
Дождитесь окончания настройки и нажмите “Закрыть”:
На этом установка «Службы удалённых рабочих столов» окончена.
Коллекция сеансов
Теперь создадим коллекцию сеансов.
В разделе “Общие сведения”, выберите пункт “Создание коллекций сеансов”:
На первом шаге мастера нажмите «Далее«:
Задайте имя коллекции и нажмите «Далее«:
Укажите сервер “Узлов сеансов удалённых рабочих столов” из списка “Пул серверов” для добавления в коллекцию и нажмите «Далее«:
Здесь можно добавить пользователя или группу пользователей, которым необходим доступ к этой коллекции сеансов.
В данном примере доступ к этой коллекции сеансов имеют все пользователи домена.
После чего нажмите «Далее«:
Если диски профилей пользователей отсутствуют, — снимите галочку с пункта “Включить диски профилей пользователей” и нажмите “Далее”:
На этом шаге нажмите «Создать«:
После успешного создания, нажмите «Закрыть«:
Теперь, когда установлены все необходимые компоненты, есть возможность подключиться к теневому сеансу любого активного пользователя.
Подключение к сеансу
В «Диспетчере серверов» перейдите к созданной коллекции —> «Службы удаленных рабочих столов» —> «Коллекции» и выберите вашу коллекцию.
В данной инструкции её название «Моя коллекция«:
В списке «Подключения» выберите пользователя за которым вы хотите наблюдать или управлять,
кликните на нём правой кнопкой мыши и нажмите «Теневая копия«:
В открывшемся окне выберите нужное Вам действие «Просмотреть» или «Управление«:
Далее увидите следующее сообщение:
В этот момент на экране пользователя vasya всплывет окно запроса на удаленное наблюдение:
У нас появится доступ, как только пользователь vasya примет запрос.
Чтобы подключаться без запроса, необходимо изменить параметры удалённого управления конкретного пользователя, в данном примере это vasya.
Перейдите по ветке: «Диспетчер серверов» —> «Средства» —> «Пользователи и компьютеры Active Directory» —> Ваш домен —> «Users«.
Кликните дважды по имени пользователя и выберите вкладку «Удалённое управление».
В параметре «Запрашивать разрешение пользователя» снимите галочку и выберите желаемый уровень управления сеансом пользователя.
Нажмите «Применить» —→ «Ок»:
Теперь Вы сможете подключаться, управлять или наблюдать за сеансом пользователя без его ведома.
Полный список параметров RDPклиента mstsc.exe, определяющих возможность удаленного теневого подключения к сессии конечного пользователя:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt]]
/shadow:ID – подключится к RDP сессии с указанным ID.
/v:servername – имяRDP/RDS терминального сервера (если не задано, используется текущий).
/control – возможность взаимодействия с сеансом пользователя (если не указано, используется режим просмотра сессии пользователя).
/noConsentPrompt – не запрашивать у пользователя подтверждение на подключение к сессии.
/prompt –используется для подключения под другими учетными данными. Запрашивается имя и пароль пользователя для подключения к удаленному компьютеру.
Использование Remote Desktop Shadow из графического GUI
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или непосредственно из консоли Server Manager. Для этого в консоли Server Manager откройте коллекцию QuickSessionCollection
выберите в контекстном меню Shadow (Теневая копия)
Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии)
Если пользователь подтвердит, подключение, в режиме просмотра администратор увидит его рабочий стол, но не сможет взаимодействовать с ним.
Совет. Для отключения от сессии пользователя и выхода из shadow-режима нужно нажать ALT+* на рабочей станции или Ctrl+* на терминальном сервере (если не заданы альтернативные комбинации).
Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что такое это запрещено групповой политикой:
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 в ветке HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal 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
Также для получения списка всех сессии на сервере можно выполнить команду
quser
Или
qwinsta
На экране отобразится список RDP сессий, их ID и статус: активная сесиия (Active) или отключенная (Disconnected).
Для получения списка сессий на удалённом сервере выполните команду:
query session /server:servername
Для более удобного теневого подключения к сессиям можно использовать следующий скрипт. Скрипт предложит ввести имя удаленного компьютера и выведет список всех сеансов и предложит указать сеанс, к которому нужно подключится:
shadow.bat
@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
query session /server:%rcomp%
set /P rid="Enter RDP user ID: "
start mstsc /shadow:%rid% /v:%rcomp% /control
Можно поместить данный файл в каталог %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:rootCIMV2TerminalServices PATH
Win32_TSPermissionsSetting WHERE (TerminalName=”RDP-Tcp”) CALL
AddAccount “corpAllowRDSShadow”,2
В январе 2018 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи столкнулись, что в Windows Server 2012 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка STATUS_BAD_IMPERSONATION_LEVEL). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Теневое shadow подключение к RDP/RDS сеансам позволяет администраторам подключиться к сессии любого пользователя для просмотра рабочего стола пользователя и взаимодействия с ним. Режим Remote Desktop Shadowing (теневого подключения) работает во всех современных версиях Windows, начиная с Windows 2012 R2 и Windows 8.1 (кроме версии Windows Server 2012, в которой стек rdp перенесен из режима ядра в пользовательский режим). В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2016 и Windows 10
В Windows Server 2016/Windows 10 в стандартном RDP клиенте (mstsc.exe) есть несколько специальных параметров, которые можно использовать для удаленного теневого (RDS Shadow) подключения к RDP сессии любого пользователя:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]
- /shadow:sessionID – подключиться к RDP сессии пользователя по ID;
- /v:servername – можно указать имя удаленного хоста (RDP/RDS терминального сервера). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
- /control – включает возможность взаимодействия с сеансом (рабочим столом) пользователя. Администратор может управлять мышкой пользователя, вводить данные с клавиатуры. Если эта опция не указана, используется режим просмотра сессии пользователя;
- /noConsentPrompt – опция позволяет администратору принудительно подключиться к любой сессии, не запрашивая у пользователя подтверждение на подключение;
- /prompt – позволяет использовать для подключения другую учетную запись, отличную от текущей. Запрашивается имя и пароль пользователя для подключения к сеансу.
Теневые сеансы можно использовать для подключения к сессиям пользователей на компьютерах и серверах как в домене Active Directory, так и в рабочей группе. Кроме того, не обязательно обладать правами администратора на RDS хосте, на котором работает пользователь. Администраторы могут делегировать полномочия RDS Shadowing любым, даже не-административных учетным записям (об этом ниже).
Использование Remote Desktop Shadow из графического GUI
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или графической консоли Server Manager. Для этого в консоли Server Manager на RDS сервере перейдите в раздел Remote Desktop Services -> выберите свою коллекцию, например QuickSessionCollection.
В списке справа будет перечислен список пользователей у которых имеются сессии на данном RDS сервере. Щелкните правой кнопкой по сессии нужно пользователя, выберите в контекстном меню Shadow (Теневая копия).
Вы можете подключиться только к активной сессии пользователя. Если сессия находится в состоянии Disconnected (отключена по таймауту), подключиться к такой сессии нельзя:
Shadow Error - The specified session is not connected.
Появится окно c параметрами теневого подключения. Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).
Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:
Запрос на удаленное наблюдение/ Remote Monitoring Request Winitproadministrator запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос?
Winitproadministrator is requesting to view your session remotely. Do you accept the request?
Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.
Совет. Для отключения от сессии пользователя и выхода из shadow-режима, нужно нажать ALT+* на рабочей станции или Ctrl+* на RDS сервере (если не заданы альтернативные комбинации).
Если пользователь отклонил административное Shadow RDS подключение, появится окно:
Shadow Error: The operator or administrator has refused the request.
Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что это запрещено групповой политикой:
Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.
Если вам нужно вести аудит RDS Shadow подключений к пользователям, используйте в качестве фильтра следующие события из журнала Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational:
- Event ID 20508: Shadow View Permission Granted
- Event ID 20503: Shadow View Session Started
- Event ID 20504: Shadow View Session Stopped
Групповые политики управления теневыми подключениями к RDS сессиям в Windows
Параметры удаленного управлениями 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 в ветке HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services (значения этого параметра, соответствующие параметрам политики указаны в скобках).
Этой политикой можно настроить следующие варианты теневого подключения RD Shadow:
- No remote control 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
).
Вы можете настроить правила удаленного подключения в домене из консоли gpmc.msc
с помощью рассмотренного параметра политики, либо групповой политикой, вносящей изменения напрямую в реестр системы (последний вариант позволяет более тонко нацелить политику на компьютеры с помощью Group Policy Item Level Targeting).
Теневое подключение RDS Shadow из PowerShell
Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.
В первую очередь нужно получить список пользовательских сессий на терминальном RDS сервере (сессии пользователей будут сгруппированы в группы в зависимости от их статуса):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
На данном сервере мы обнаружили три активных RDP сессии пользователей. Чтобы подключиться к сессии пользователя с ID сессии 3, выполните команду:
Mstsc /shadow:3 /control /noConsentPrompt
Также для получения списка всех RDP сессии на сервере (или десктопной редакции Windows 10 к которой разрешены множественные RDP подключения) можно использовать команду:
quser
Или
qwinsta
На экране отобразится список RDP сессий, их ID и статус: активная сессия (Active) или отключенная (Disconnected).
Для получения списка сессий на удалённом сервере выполните команду:
query session /server:servername
Чтобы подключиться к сессии пользователя на удаленном сервере, используйте команду:
Mstsc /v:rdsh2:3389 /shadow:3 /control
Для более удобного теневого подключения к RDP сессиям пользователей можно использовать следующий скрипт. Скрипт предложит ввести имя удаленного компьютера и выведет список всех пользователей с активными RDP сеансами. Вам нужно будет указать ID сеанса, к которому нужно подключится через Shadow сессию:
shadow.bat
@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
query session /server:%rcomp%
set /P rid="Enter RDP user ID: "
start mstsc /shadow:%rid% /v:%rcomp% /control
Можно поместить данный файл в каталог %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
Также для теневого подключения можно использовать следующий PowerShell скрипт с простым графическим интерфейсом (rdp_shadow_connection.ps1):
Add-Type -assembly System.Windows.Forms
$Header = "SESSIONNAME", "USERNAME", "ID", "STATUS"
$dlgForm = New-Object System.Windows.Forms.Form
$dlgForm.Text ='Session Connect'
$dlgForm.Width = 400
$dlgForm.AutoSize = $true
$dlgBttn = New-Object System.Windows.Forms.Button
$dlgBttn.Text = 'Control'
$dlgBttn.Location = New-Object System.Drawing.Point(15,10)
$dlgForm.Controls.Add($dlgBttn)
$dlgList = New-Object System.Windows.Forms.ListView
$dlgList.Location = New-Object System.Drawing.Point(0,50)
$dlgList.Width = $dlgForm.ClientRectangle.Width
$dlgList.Height = $dlgForm.ClientRectangle.Height
$dlgList.Anchor = "Top, Left, Right, Bottom"
$dlgList.MultiSelect = $False
$dlgList.View = 'Details'
$dlgList.FullRowSelect = 1;
$dlgList.GridLines = 1
$dlgList.Scrollable = 1
$dlgForm.Controls.add($dlgList)
# Add columns to the ListView
foreach ($column in $Header){
$dlgList.Columns.Add($column) | Out-Null
}
$(qwinsta.exe | findstr "Active") -replace "^[s>]" , "" -replace "s+" , "," | ConvertFrom-Csv -Header $Header | ForEach-Object {
$dlgListItem = New-Object System.Windows.Forms.ListViewItem($_.SESSIONNAME)
$dlgListItem.Subitems.Add($_.USERNAME) | Out-Null
$dlgListItem.Subitems.Add($_.ID) | Out-Null
$dlgListItem.Subitems.Add($_.STATUS) | Out-Null
$dlgList.Items.Add($dlgListItem) | Out-Null
}
$dlgBttn.Add_Click(
{
$SelectedItem = $dlgList.SelectedItems[0]
if ($SelectedItem -eq $null){
[System.Windows.Forms.MessageBox]::Show("Выберите сессию для подключения")
}else{
$session_id = $SelectedItem.subitems[2].text
$(mstsc /shadow:$session_id /control)
#[System.Windows.Forms.MessageBox]::Show($session_id)
}
}
)
$dlgForm.ShowDialog()
Данный скрипт отобразить графическую форму со списком активных RDP сеансов на локальном сервере. Вам останется только выбрать учетную запись пользователя и нажать Connect.
Вы можете использовать теневое подключение к пользователю не только в Windows Server с ролью Remote Desktop Services, но и для подключения к рабочим столам пользователей на компьютерах с Windows 10 .
Как разрешить обычном пользователям использовать теневое подключение?
В рассмотренных выше примерах для использования теневого подключения к RDP сессиям пользователей необходимы права локального администратора на RDS сервере. Однако вы можете разрешить использовать теневое (shadow) подключение и для непривилегированных пользователей (не предоставляя им прав локального администратора на компьютере/сервере).
К примеру, вы хотите разрешить членам доменной группы AllowRDSShadow использовать теневое подключение к RDP сессиям. Выполните команду в cmd.exe с правами администратора:
wmic /namespace:rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName='RDP-Tcp') CALL AddAccount 'corpAllowRDSShadow',2
В январе 2018 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи столкнулись, что в Windows Server 2012 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка STATUS_BAD_IMPERSONATION_LEVEL
). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Обновлено 15.03.2022
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами разобрали установку Hyper-V в Windows 11. Сегодня я хочу с вами разобрать тему удобной поддержки пользователей встроенными средствами Windows. Речь пойдет, о теневом подключении RDP или Remote Desktop Shadowing. Мы рассмотрим, как она реализована, как предоставляются права и многое другое. Статья получиться большой, но поверьте оно того стоит. Благодаря этому вы сможете сэкономить бюджеты компании, отказавшись от стороннего ПО.
💻 Что такое теневой сеанс Remote Desktop Shadowing?
Все мы прекрасно помним 2020 год, когда массово вводились ограничения и все пользователи переходили на дистанционное положение. Это заставило все компании организовать для сотрудников рабочее окружение, и самое главное это отслеживание и предоставление удаленной помощи, при возникших проблемах. Для удаленной помощи используется много различного программного обеспечения, например teamviewer, VNC, Dameware и многое другое, большая проблема в том, что все они платные для коммерческого использования. Не все компании готовы платить за это деньги, но в Windows есть и встроенная возможность, о которой многие просто не знают.
Режим Shadow (теневой сеанс RDP/RDS) — Это встроенное средство, позволяющее системным администраторам производить подключение в RDP сессию любого пользователя, видя его экран, имея возможность производить любые манипуляции курсором и сеансом, одним словом полное взаимодействие. Remote Desktop Shadowing идет в составе начиная с Windows 8.1, Windows Server 2012 R2 и выше.
Теневое копирование служб удаленных рабочих столов имеет как графический интерфейс, так и утилиту командной строки. Есть две версии функции. Так как устаревшая версия Remote Desktop Services Shadowing несовместима с последней версией утилиты, то я не буду подробно описывать предыдущую версию, а лишь упомяну несколько слов в качестве исторической справки. В более ранних версиях Windows файл shadow.exe позволял пользователю подключаться к удаленному узлу с помощью метода теневого копирования служб удаленных рабочих столов. Короче говоря, это предшественник утилиты mstsc и ее параметра /shadow. Он был представлен в Windows Server 2003 и доступен во многих версиях Windows.
Кроме того, есть два приложения с графическим интерфейсом, и они делают одно и то же: управление службами терминалов (TSAdmin), которое присутствует с Windows Server 2003, и диспетчер служб удаленных рабочих столов (RDSM), который является частью инструментов удаленного администрирования сервера (RSAT) и заменяет TSAdmin в Windows Server 2012.
Ключевое различие между версиями RDS Shadowing заключается в том, что в устаревшей версии вы должны сначала установить соединение RDP, чтобы получить сеанс на удаленном хосте, прежде чем вы сможете затенить чей-либо еще сеанс на этом хосте. В последней версии вы можете затенить сеанс пользователя на удаленном хосте с консоли вашего собственного хоста. В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2022 и Windows 11.
⚙️ Какие порты использует теневое копирование служб удаленных рабочих столов
Функция теневого копирования служб удаленных рабочих столов не использует порт 3389/TCP (RDP), вместо этого он использует порт 445/TCP (SMB) и эфемерные порты, также известные как динамический диапазон портов (RPC). Так же на удаленном компьютере, куда вы будите производить подключения должны быть добавлены правила:
- Первое правило называется «File and Printer Sharing (SMB-In)», которое позволяет подключаться к порту 445/TCP;
- Второй есть «Remote Desktop — Shadow (TCP-In)». Это позволяет %SystemRoot%system32RdpSa.exe двоичному файлу обрабатывать входящие соединения на любом локальном TCP-порту. Динамический диапазон портов в Windows обычно включает TCP-порты с 49152 по 65535.
Какой уровень прав необходим для использования Remote Desktop Services Shadowing
Для того, чтобы вы могли производить теневое подключение к пользователям RDS фермы или отдельным серверам, вам нужны права администратора на конечных серверах, но и это можно обойти, произведя точечное делегирование прав на функцию shadow, не имея при этом административного доступа на конечных серверах. Как это организовать я покажу, немного ниже.
⚒ Настройка групповой политики управления теневыми подключениями к RDS сессиям в Windows
Перед тем, как мы с вами разберем практические методы подключения Remote Desktop Shadow, нам нужно настроить групповую политику, которая будет определять, как оператор, кто будет помогать конечному пользователю, будет с ним взаимодействовать. У системного администратора есть возможность оставить пользователю одобрение подключения или же можно сделать без уведомления, существует пять вариантов политики.
- No remote control allowed — удаленное управление не разрешено (значение параметра реестра 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).
Данный ключ реестра можно найти в разделе HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services под названием «Shadow«
Найти данную политику можно по пути:
Конфигурация Компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Подключения (Policies — Administrative Templates — Windows components — Remote Desktop Services — Remote Session Host — Connections)
Она будет иметь название «Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов (Set rules for remote control of Remote Desktop Services user sessions)«
Чтобы получить текущее значение ключа Shadow, вам необходимо на конечном компьютере открыть командную строку и ввести:
reg query «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow
Его также можно установить вручную с помощью командной строки, введя следующую команду:
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow /t REG_DWORD /d 4
Чтобы удалить тип теневого ключа:
reg delete «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow /f
🌐 Подключение Remote Desktop Shadow из графического интерфейса
Данный метод является наверное самым удобным, так как позволяет визуально все видеть, контролировать. Все, что вам нужно это собранная оснастка по управлению RDS фермой в диспетчере серверов, как это делать смотрите по ссылке слева. В качестве тестового пользователя я буду использовать Барбоскина Геннадия Викторовичу (Barboskin.g). Для начала давайте его найдем, для этого в оснастке выберите нужную коллекцию, в области «Подключения» произведите поиск вашего пользователя. После его нахождения кликните по нему правым кликом, в контекстном меню вы увидите пункт «Теневая копия (Shadow)«.
У вас появится дополнительное окно с параметрами теневой копии:
- Удаленный сеанс — Просмотреть/Управление. Тут либо вы просто наблюдатель, все действия делает сам пользователь или же полный контроль.
- Запрашивать согласие пользователя
У пользователя на удаленном сервере появится окно «Запрос на удаленное наблюдение. Пользователь запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос? (User is requesting to view your session remotely. Do you accept the request?) «, тут он может подтвердить или отказаться.
Хочу напомнить, что вы можете управлять данным окном, будет оно требоваться или нет, через групповые политики.
Если у вас явным образом не задано отсутствие данного окна, то вы получите ошибку, если захотите подключиться без уведомления.
Согласно настройкам групповой политики требуется согласие пользователя. Проверьте настройки групповой политики (The Group Policy setting is configured to require the user’s consent)
Если конечный пользователь подтвердил запрос на удаленное наблюдение, то у вас должно открыться новое RDP окно, где будет отображена сессия удаленного пользователя и с ней можно взаимодействовать.
Если пользователь закроет окно RDP подключения, то он перейдет в статус «Отключен (Disconnected)«, то вас выкинет из сессии теневого копирования. Вы увидите:
Сеанс с теневым доступом был отключен
Подключиться к сеансу в статусе «Отключен (Disconnected)» не получиться, опция «Теневая копия (Shadow)» просто не будет присутствовать в списке
Чтобы завершить сессию пользователя и выйти из shadow-режима, нужно нажать сочетание клавиш ALT+* на рабочей станции или Ctrl+* на RDS сервере (Так же можно переопределить данные комбинации).
Второй вариант, которым я могу пользоваться при теневом копировании к пользователю RDP, это использование бесплатного ПО по работе с RDS. Оно называется Terminal Services Manager, о нем я вам делал подробный обзор. Найдите в списке пользователей нужного вам, кликните по нему правым кликом и выберите пункт «Shadow«.
У вас так же появится окно, где вы должны запросить доступ с нужным уровнем, а далее все как описано выше.
🔍 Логирование сессий теневого копирования
Если у вас появится желание отслеживать данные, о подключениях с использованием теневого копирования, то вам необходимо на сервере куда производилось затемнение сеанса перейти в журнал:
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational
Вот такая будет последовательность.
- Событие ID 20508
Событие ID 20508: Предоставлено разрешение на теневой просмотр. Пользователь barboskin.g (идентификатор сеанса: 440) предоставил разрешение пользователю Сёмину Ивану
- Событие ID 20503
Событие ID 20503: Запущен теневой просмотр сеанса. Просмотр пользователем (Иван Сёмин) на компьютере c-10-.root.pyatilistnik.org сеанса пользователя ROOTbarboskin.g (идентификатор сеанса: 440)
- Событие ID 20504
Событие ID 20504 : Остановлен теневой просмотр сеанса. Просмотр пользователем (Семин Иван) на компьютере c-10.root.pyatilistnik.org сеанса пользователя ROOTbarboskin.g (идентификатор сеанса: 440)
- Событие ID 20513
Событие ID 20513: Сбой теневого доступа к сеансу. Пользователю (Иван Сёмин) не удалось получить теневой доступ к сеансу пользователя Rootbarboskin.g (идентификатор сеанса: 440) из-за настроек групповой политики.
- Событие ID 20510
Событие ID 20510: Предоставлено разрешение на теневое управление. Пользователь ROOTbarboskin.g (идентификатор сеанса: 440) предоставил разрешение пользователю (Иван Сёмин)
Как использовать теневое подключение через PowerShell и командную строку
Напоминаю, что в качестве клиентской ОС у меня установлена Windows 11, а подключаться я буду к сессия пользователя работающего за Windows Server 2022. Для того, чтобы мы могли из PowerShell или командной строки использовать теневое копирование, мы должны вызвать утилиту mstsc.
mstsc — это по сити встроенный RDP клиент в операционной системе Windows. Запустите оболочку PowerShell и введите:
В результате вы получите полную справку по данной утилите со всеми ключами. Тут нас будут интересовать из всего перечня 4 ключа:
- /prompt — По сути это ключ для запуска процедуры от другого пользователя. Например вы локально сидите под обычной учетной записью, а команду хотите запускать из под административной.
- /shadow:sessionID – подключиться к указанной сессии пользователя по ID;
- /control – Дает вам возможность полного управления мышкой и клавиатурой при теневой сессии.
- noConsentPrompt — Разрешает удаленное управления без согласования пользователем
- /v:servername – можно указать имя удаленного хоста (RDP/RDS терминального сервера). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
Перед использованием RDS Shadowing мне нужно выяснить SessionID клиента к которому буду подключаться, как это сделать я уже рассказывал. Я для своего обзора буду использовать камандлет Get-TSSession.
Get-TSSession -ComputerName Имя сервера
Нужный мне SessionID 517.
Теперь подключаемся к сессии пользователя на удаленном сервере, для этого конструкция будет такой:
mstsc /v:term /shadow:517 /control /prompt
Кстати если будет писать, что не правильное имя компьютера, то уберите в команде номер порта
Если вы запускаете с запросом учетных данных другого пользователя, то появится всплывающее окно с вводом логина и пароля.
У удаленного пользователя работающего по RDP появится всплывающее окно, где он должен подтвердить ваш запрос:
Пользователь запрашивает удаленное управление вашим сеансом. Вы принимаете этот запрос?
Удобный Bat файл для использования Remote Desktop Services Shadowing в командной строке
Создайте из текстового файла batник, поменяв расширение. И добавьте вот такое содержимое, теперь при его запуске будет выводиться список сеансов и удобный запрос ID.
@echo off
mode con:cols=100 lines=30
query session
echo
set /p usersession= Enter the session ID:
mstsc /shadow:%usersession% /control /noconsentprompt
Как дать права на теневые сеансы не администраторам
Как я указывал выше, теневое копирование можно использовать по умолчанию, только администраторам конечного сервера, НО если у вас есть, например техническая поддержка, которая помогает пользователям удаленного рабочего стола устранять через теневые сеансы их проблемы, и вы не хотите их делать администраторами на серверах, то вы можете делегировать им права, только на данный функционал.
И так, режим shadow для непривилегированного пользователя в Windows Server организовывается через PowerShell. Вам необходимо имя группы, для которой будут делегированы права и выполнить команду на конечном сервере. Но для начала давайте посмотрим у кого уже есть такие права. Для этого в оболочке PowerShell выполните:
Get-WmiObject Win32_TSAccount -Namespace rootCIMV2TerminalServices -Filter «TerminalName=’RDP-Tcp’»
Для cmd:
Обратите тут на поле _GENUS — это как раз разрешение. Данная команда вам будет полезна, когда вы добавите группу и проверите, появилась ли она тут. Цифра 2 в конце определяет тип доступа:
- 0 = WINSTATION_GUEST_ACCESS
- 1 = WINSTATION_USER_ACCESS
- 2 = WINSTATION_ALL_ACCESS
Далее я дам права для группы ROOTRDP-SHADOW-SESSION, чтобы она могла использовать Remote Desktop Services Shadowing.
wmic /namespace:rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=»RDP-Tcp») CALL AddAccount «ROOTRDP-SHADOW-SESSION«,2
Не забываем, что вам потребуется произвести перезагрузку сервера, чтобы все вступило в силу
Проверим, что они появились
Чтобы удалить права, выполните:
$Group = @(gwmi —Namespace RootCIMv2TerminalServices —query «select * from Win32_TSAccount where TerminalName=»RDP-TCP» AND AccountName=»ROOTRDP-SHADOW-SESSION«)
$Group.Delete()
Массовая настройка теневого подключения для не администраторов
Если у вас, как в моей компании RDS ферма состоит из 50 и более RDSH хостов, то чтобы вам не ходить по каждому из них, нужно воспользоваться вот таким моим скриптом PowerShell.
function Date {Get-Date -Format «yyyy.MM.dd HH:mm:ss»}
# Тут подгружаем файл со списком серверов
$comps_file = «$PSScriptRootservers.txt»
foreach ($server in (Get-Content $comps_file))
{
«$(Date) Trying to process server $server»
# wmic /namespace:rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName =»RDP-Tcp») CALL AddAccount ,2
$status = $null
$rds = Get-WmiObject -Namespace root/cimv2/terminalservices -Class Win32_TSPermissionsSetting -Filter «TerminalName = ‘RDP-Tcp’» -ComputerName $server
$status = $rds.AddAccount(«ROOTRDP-SHADOW-SESSION«,2)
if ($status.ReturnValue -eq 0)
{
«$(Date) All good»
}
else
{
«$(Date) Something went wrong»
}
}
Устранение непредвиденной ошибки
В Windows Server 2012R2-2016 вы можете получить ошибку «Неопознанная ошибка или Произошла внутренняя ошибка» при попытке использования функционала shadow. Тут все дело в том, что у вас не установлены обновления от 2018 года.
в логах вы можете обнаружить события STATUS_BAD_IMPERSONATION_LEVEL
- Windows Server 2016 — KB4057142 (от 17 января 2018)
- Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Previous Story
Mikrotik сохранение.
Next Story
Настройка удаленного доступа MySQL и MariaDB
Latest from Blog
Связка из Postfix и Dovecot плюс стандартный обвес из антивируса, антиспама и прочих утилит. Доменные имена
Keycloak + PostgreSQL Keycloak — продукт с открытым кодом для реализации single sign-on с возможностью управления
перевод статьи: https://cloudinfrastructureservices.co.uk/install-keycloak-sso-on-ubuntu-20-04/ Keycloak – это бесплатное решение для управления идентификацией и доступом с открытым исходным кодом
Вне зависимости от того, как долго и тщательно программное обеспечение проверяется перед запуском, часть проблем проявляется
Что такое сервер freeRADIUS? RADIUS — это протокол AAA (аутентификация, авторизация и учет), который помогает контролировать
Теневое подключение к сеансам RDP / RDS позволяет администраторам подключаться к любому сеансу пользователя для просмотра рабочего стола пользователя и взаимодействия с ним. Режим теневого копирования удаленного рабочего стола работает во всех современных версиях Windows, начиная с Windows 2012 R2 и Windows 8.1 (за исключением Windows Server 2012, в которой стек rdp переместился из режима ядра в режим пользователя). В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к пользовательским сеансам RDP в Windows Server 2016 и Windows 10
В Windows Server 2016 / Windows 10 в стандартном клиенте RDP (mstsc.exe) есть несколько специальных параметров, которые можно использовать для удаленного теневого подключения (RDS Shadow) к сеансу RDP любого пользователя:
Mstsc.exe /shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [[/prompt]]
- / shadow: sessionID – подключиться к RDP-сессии пользователя по ID;
- / v: servername – вы можете указать имя удаленного хоста (терминальный сервер RDP / RDS). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
- / control – включает возможность взаимодействия с сеансом пользователя (рабочий стол). Администратор может управлять мышью пользователя, вводить данные с клавиатуры. Если этот параметр не указан, используется режим просмотра сеанса пользователя;
- / noConsentPrompt – этот параметр позволяет администратору принудительно подключиться к любому сеансу, не запрашивая у пользователя подтверждение подключения;
- / prompt – позволяет использовать для подключения учетную запись, отличную от текущей. Имя пользователя и пароль необходимы для подключения к сеансу.
Теневые сеансы можно использовать для подключения к пользовательским сеансам на компьютерах и серверах как в домене Active Directory, так и в рабочей группе. Кроме того, необязательно иметь права администратора на хосте RDS, на котором работает пользователь. Администраторы могут делегировать полномочия теневого копирования RDS кому угодно, даже не административным учетным записям (подробнее см. Ниже).
Использование Remote Desktop Shadow из графического GUI
вы можете подключиться к пользовательскому сеансу с помощью утилиты mstsc.exe или графической консоли Server Manager. Для этого в консоли Server Manager на сервере RDS перейдите в раздел Remote Desktop Services -> выберите свою коллекцию, например QuickSessionCollection.
Список справа будет содержать список пользователей, у которых есть сеансы на этом сервере RDS. Щелкните правой кнопкой мыши сеанс, который нужен пользователю, выберите «Тень» в контекстном меню).
Вы можете подключиться только к активному пользовательскому сеансу. Если сеанс находится в отключенном состоянии (отключен из-за тайм-аута), вы не можете подключиться к этому сеансу:
Ошибка тени - указанный сеанс не подключен.
Появится окно с параметрами теневого подключения. Вы можете просматривать (Просмотр) и управлять (Управлять) сеансом. В качестве альтернативы вы можете включить опцию Требовать согласия пользователя).
Если выбрана опция «Запросить согласие пользователя», пользователю будет предложено в сеансе:
Запрос удаленного мониторинга Winitpro администратор запрашивает удаленный мониторинг вашей сессии. Вы принимаете этот запрос?
Winitpro администратор требует удаленного просмотра сеанса. Вы принимаете запрос?
Если пользователь подтвердит подключение, администратор увидит свой рабочий стол в режиме просмотра, но не сможет с ним взаимодействовать.
Совет. Чтобы выйти из сеанса пользователя и выйти из теневого режима, необходимо нажать ALT + * на рабочей станции или Ctrl + * на сервере RDS (если не указаны альтернативные комбинации).
Если пользователь отказался от административного подключения Shadow RDS, появится окно:
Теневая ошибка: оператор или администратор отклонил запрос.
В современных версиях Windows графическая оснастка tsadmin.msc из Windows Server 2008 R2 не может использоваться для теневых подключений к сеансам RDP.
Если вы попытаетесь подключиться к сеансу пользователя без запроса подтверждения, появится сообщение об ошибке о том, что это запрещено групповой политикой:
Теневая ошибка: параметр групповой политики настроен на требование согласия пользователя. Проверьте конфигурацию параметров политики.
Если вам нужно проверить подключения пользователей RDS Shadow, используйте следующие события из журнала Microsoft-Windows-TerminalServices-RemoteConnectionManager / Operational в качестве фильтра:
- Событие с кодом 20508: разрешение на просмотр теней предоставлено
- Событие с кодом 20503: сеанс просмотра теней запущен
- Событие с кодом 20504: сеанс теневого просмотра остановлен
Параметры для удаленного управления сеансами RDS пользователя настраиваются с помощью отдельного параметра групповой политики «Установить правила для управления сеансом пользователя служб удаленных рабочих столов». Этот параметр находится в разделе «Политики» -> «Административные шаблоны» -> «Компоненты Windows» -> «Службы удаленных рабочих столов» -> «Узел удаленного сеанса» -> «Подключения» в разделах «Пользователь» и «Компьютер» объекта групповой политики. Эта политика соответствует параметру DWORD теневого реестра в ветке HKLM SOFTWARE Policies Microsoft Windows NT Terminal Services (в скобках указаны значения этого параметра, соответствующие параметрам политики).
С помощью этой политики вы можете настроить следующие параметры подключения к теневому удаленному рабочему столу:
- Дистанционное управление запрещено – дистанционное управление запрещено (значение регистрового параметра
Shadow = 0
);
- Полный контроль с разрешения пользователя – полный контроль над сеансом с разрешения пользователя (
1
);
- Полный контроль без разрешения пользователя – полный контроль без разрешения пользователя (
2
);
- Просмотр сеанса с авторизацией пользователя – сеанс мониторинга с авторизацией пользователя (
3
);
- Просмотр сеанса без авторизации пользователя – мониторинг сеанса без авторизации пользователя (
4
).
После изменения настроек не забудьте обновить настройки групповой политики на хосте RDP / RDS.
вы можете настроить правила для удаленного подключения в домене из консоли
gpmc.msc
, используя рассматриваемый параметр политики, или групповую политику, которая вносит изменения непосредственно в реестр (последний вариант позволяет более точно настроить таргетинг политики на компьютеры с помощью Group Таргетинг на уровень элемента политики).
Теневое подключение RDS Shadow из PowerShell
вы также можете использовать функцию теневого подключения к пользовательскому сеансу через теневое подключение к службам удаленных рабочих столов из Powershell.
Прежде всего, вам необходимо получить список пользовательских сессий на RDS-сервере терминала (пользовательские сессии будут сгруппированы по их статусу):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
На этом сервере мы обнаружили три активных пользовательских сеанса RDP. Чтобы подключиться к пользовательскому сеансу с идентификатором сеанса 3, выполните команду:
Mstsc /shadow:3 /control /noConsentPrompt
Кроме того, чтобы получить список всех сеансов RDP на сервере (или в настольной версии Windows 10, в которой разрешено несколько подключений RDP), вы можете использовать команду:
quser
ИЛИ
qwinsta
На экране отобразится список сеансов RDP, их идентификаторы и статус: сеанс активен (Активен) или отключен (Отключен).
Чтобы получить список сессий на удаленном сервере, выполните команду:
query session /server:servername
Чтобы подключиться к пользовательскому сеансу на удаленном сервере, используйте команду:
Mstsc /v:rdsh2:3389 /shadow:3 /control
Для более удобного теневого подключения к пользовательским сеансам RDP вы можете использовать следующий скрипт. Сценарий попросит вас ввести имя удаленного компьютера и отобразит список всех пользователей с активными сеансами RDP. Вам нужно будет указать идентификатор сеанса, к которому вы хотите подключиться через теневой сеанс:
shadow.bat
@eco выкл
set / P rcomp = "Введите имя или IP-адрес удаленного ПК: "
сеанс запроса / сервер:% rcomp%
set / P rid = "Введите идентификатор пользователя RDP: "
запустить mstsc / shadow:% rid% / v:% rcomp% / control
Вы можете поместить этот файл в каталог% Windir% System32. Поэтому для теневого подключения к пользователю достаточно запустить теневую команду.
Для подключения к сеансу консоли вы можете использовать следующий скрипт:
@eco выкл
set / P rcomp = "Введите имя или IP-адрес удаленного ПК: "
for / f "tokens = 3 delims =" %% G in ('query session console / server:% rcomp%') установить rid = %% G
запустить mstsc / shadow:% rid% / v:% rcomp% / control
Вы также можете использовать следующий сценарий PowerShell с простым графическим интерфейсом (rdp_shadow_connection.ps1) для теневого подключения):
Добавить тип -assembly System.Windows.Forms
$ Header = "SESSIONNAME", "USERNAME", "ID", "STATUS"
$ dlgForm = Новый объект System.Windows.Forms.Form
$ dlgForm.Text = 'Сессионное соединение'
$ dlgForm.Width = 400
$ dlgForm.AutoSize = $ true
$ dlgBttn = Новый объект System.Windows.Forms.Button
$ dlgBttn.Text = 'Контроль'
$ dlgBttn.Location = Новый объект System.Drawing.Point (15,10)
$ dlgForm.Controls.Add ($ dlgBttn)
$ dlgList = Новый объект System.Windows.Forms.ListView
$ dlgList.Location = Новый объект System.Drawing.Point (0.50)
$ dlgList.Width = $ dlgForm.ClientRectangle.Width
$ dlgList.Height = $ dlgForm.ClientRectangle.Height
$ dlgList.Anchor = "Сверху, слева, справа, снизу"
$ dlgList.MultiSelect = $ False
$ dlgList.View = 'Подробности'
$ dlgList.FullRowSelect = 1;
$ dlgList.GridLines = 1
$ dlgList.Scrollable = 1
$ dlgForm.Controls.add ($ dlgList)
# Добавить столбцы в ListView
foreach (столбец $ в заголовке){
$ dlgList.Columns.Add ($ column) | Out-Null
}
$ (qwinsta.exe | findstr "Active") -replace "^ [ s>]", "" -replace " s +", "," | ConvertFrom-Csv -Header $ Header | ForEach-Object {
$ dlgListItem = новый объект System.Windows.Forms.ListViewItem ($ _. SESSIONNAME)
$ dlgListItem.Subitems.Add ($ _. USERNAME) | Out-Null
$ dlgListItem.Subitems.Add ($ _. ID) | Out-Null
$ dlgListItem.Subitems.Add ($ _. STATUS) | Out-Null
$ dlgList.Items.Add ($ dlgListItem) | Out-Null
}
$ dlgBttn.Add_Click(
{
$ SelectedItem = $ dlgList.SelectedItems [0]
if ($ SelectedItem -eq $ null){
[System.Windows.Forms.MessageBox] :: Show («Выберите сеанс для подключения")
} Другие{
$ session_id = $ SelectedItem.subitems [2] .text
$ (mstsc / shadow: $ идентификатор_сеанса / элемент управления)
# [System.Windows.Forms.MessageBox] :: Show ($ session_id)
}
}
)
$ dlgForm.ShowDialog()
Этот сценарий отображает графическую форму со списком активных сеансов RDP на локальном сервере. Все, что вам нужно сделать, это выбрать учетную запись пользователя и нажать «Подключиться.
Чтобы запускать сценарии PowerShell (Ps1) на вашем компьютере, вам необходимо настроить политику выполнения PowerShell.
Вы можете использовать теневое подключение пользователя не только на Windows Server с ролью служб удаленных рабочих столов, но и для подключения к рабочим столам пользователей на компьютерах с Windows 10 .
Как разрешить обычном пользователям использовать теневое подключение?
В предыдущих примерах для использования теневого подключения к пользовательским сеансам RDP требуются права локального администратора на сервере RDS. Однако вы также можете включить теневые подключения для непривилегированных пользователей (без предоставления им прав локального администратора на компьютере / сервере).
Например, вы хотите разрешить членам группы домена AllowRDSShadow использовать теневое подключение к сеансам RDP. Выполните команду в cmd.exe с правами администратора:
@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
query session /server:%rcomp%
set /P rid="Enter RDP user ID: "
start mstsc /shadow:%rid% /v:%rcomp% /control
В январе 2018 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи обнаружили, что теневой доступ перестал работать в Windows Server 2012 R2. При попытке установить теневое соединение с другим сеансом отображается сообщение «Неопознанная ошибка» (в журналах есть ошибка
@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 на базе Windows Server 2016.
Чтобы это исправить, вам необходимо установить отдельные обновления:
- для Windows Server 2016 – KB4057142 (17 января 2018 г)
- для Windows Server 2012 R2 – KB4057401 (17 января 2018 г)
Источник изображения: winitpro.ru