Самый простой способ включить Remote Desktop RD в семействе ОС Windows – это использовать графический интерфейс.
Для этого необходимо открыть элемент панели управления «Система», перейти на вкладку «Удаленные настройки» и включить опцию «Разрешить удаленные подключения к этому компьютеру» в разделе «Удаленный рабочий стол».
Однако для этого требуется локальный доступ к компьютеру, на котором вы хотите включить RDP.
Обычно вы можете запросить у пользователя (требуются права администратора) или местную техническую поддержку.
Однако что делать, если в удаленном офисе нет никого, кто мог бы включить удаленный рабочий стол локально?
По умолчанию удаленный рабочий стол отключен как в настольных версиях Windows, так и в Windows Server.
Если вы хотите удаленно включить удаленный рабочий стол (RDP) на удаленном хосте (сервере или компьютере), но у вас нет доступа к консоли локального устройства, мы покажем вам, как это сделать с помощью PowerShell.
Для этого на удаленном компьютере должна быть включена служба WinRM (удаленное управление Windows).
Служба WinRM включена по умолчанию во всех версиях Windows Server, начиная с Windows Server 2012 (однако WinRM по умолчанию отключена в клиентских операционных системах, таких как Windows 10).
Таким образом, для удаленного включения RD через PowerShell удаленный компьютер должен соответствовать следующим требованиям:
- Служба WinRM должна быть запущена;
- Вы должны иметь права администратора на удаленном устройстве;
- Брандмауэр Windows должен быть отключен или должны быть включены правила, разрешающие удаленный доступ через PowerShell Remoting.
Удаленное включение удаленного рабочего стола с помощью PowerShell
Предположим, вы хотите удаленно включить RDP в Windows Server 2012 R2 / 2016 / 2019.
На вашем компьютере откройте консоль PowerShell и выполните следующую команду для удаленного подключения к вашему серверу:
Enter-PSSession -ComputerName server.domain.local -Credential domain\administrator
Итак, вы установили удаленный сеанс с компьютером и теперь можете выполнять на нем команды PowerShell.
Чтобы включить удаленный рабочий стол, вам просто нужно изменить параметр реестра fDenyTSConnections с 1 на 0 на удаленном компьютере.
Запустите команду:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
Когда RDP включен таким способом (в отличие от метода GUI), правило, разрешающее удаленные RDP-подключения, не включается в правила брандмауэра Windows.
Чтобы разрешить входящие RDP-подключения в брандмауэре Windows, выполните команду:
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Если по какой-либо причине это правило брандмауэра удалено, вы можете создать его вручную:
netsh advfirewall firewall add rule name="allow RemoteDesktop" dir=in protocol=TCP localport=3389 action=allow
Если вам нужно включить безопасную аутентификацию RDP (NLA – аутентификация сетевого уровня), выполните команду:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1
Теперь со своего компьютера вы можете проверить, что порт TCP 3389 на удаленном хосте стал доступен. Запустите команду:
Test-NetConnection 192.168.1.11 -CommonTCPPort rdp
Должен быть такой результат:
ComputerName : 192.168.1.11
RemoteAddress : 192.168.1.11
RemotePort : 3389
InterfaceAlias : Ethernet0
SourceAddress : 192.168.1.90
TcpTestSucceeded : True
Это означает, что RDP на удаленном хосте включен, и вы можете установить подключение к удаленному рабочему столу с помощью клиента mstsc.
Заметка. По умолчанию только члены локальной группы администраторов могут подключаться через RDP удаленно. Чтобы разрешить подключения RDP для обычных пользователей, просто добавьте их в локальную группу «Пользователи удаленного рабочего стола».
Как включить удаленный рабочий стол через WMI?
Если вы хотите включить RDP на удаленном компьютере, на котором отключен WInRM (например, на обычном компьютере с Windows 10), вы можете использовать команду WMI PowerShell.
Чтобы проверить, включен ли доступ RDP на удаленном компьютере 192.168.1.90, выполните команду (см. Значение свойства AllowTSConnections):
Get-WmiObject -Class Win32_TerminalServiceSetting -Namespace root\CIMV2\TerminalServices -Computer 192.168.1.90 -Authentication 6
Чтобы включить RDP и добавить правило исключений брандмауэра Windows, выполните следующую команду:
(Get-WmiObject -Class Win32_TerminalServiceSetting -Namespace root\CIMV2\TerminalServices -Computer 192.168.1.90 -Authentication 6).SetAllowTSConnections(1,1)