Устранение неполадок с подключениями к Удаленному рабочему столу

 Он помогает быстро выявлять и устранять распространенные проблемы с подключением к удаленному рабочему столу

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

Проверка состояния протокола RDP

Проверка состояния протокола RDP на локальном компьютере

Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе How to enable Remote Desktop (Как включить удаленный рабочий стол).

Примечание

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

Проверка состояния протокола RDP на удаленном компьютере

Важно!

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

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

  1. Сначала откройте меню Пуск и выберите Выполнить. В появившемся текстовом поле введите regedt32.
  2. В редакторе реестра нажмите Файл и выберите пункт Подключить сетевой реестр.
  3. В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  4. Перейдите к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server и HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.

    • Если раздел fDenyTSConnections имеет значение 0, значит протокол RDP включен.
    • Если раздел fDenyTSConnections имеет значение 1, значит протокол RDP отключен.
  5. Чтобы включить протокол RDP, для fDenyTSConnections замените значение 1 на 0.

Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере

Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.

Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:

cmd
gpresult /H c:\gpresult.html

Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.

  • Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.

  • Если же для параметра этой политики задано значение Отключено, проверьте результирующий объект групповой политики. Ниже показано, какой объект групповой политики блокирует подключения по протоколу RDP. 

Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере

Чтобы проверить конфигурацию групповой политики на удаленном компьютере, нужно выполнить почти такую же команду, что и для локального компьютера.

cmd
gpresult /S <computer name> /H c:\gpresult-<computer name>.html

В файле (gpresult-<computer name>.html), который создается после выполнения этой команды, используется такой же формат данных, как в версии файла для локального компьютера (gpresult.html).

Изменение блокирующего объекта групповой политики

Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).

Чтобы изменить блокирующую политику, используйте один из следующих методов.

  • В GPE укажите определенный уровень для объекта групповой политики (локальный или доменный) и выберите Конфигурация компьютера>Административные шаблоны>Компоненты Windows>Службы удаленных рабочих столов>Узел сеансов удаленных рабочих столов>Подключения>Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
    1. Задайте для политики значение Включена или Не задана.
    2. На затронутых компьютерах откройте окно командной строки с правами администратора и выполните команду gpupdate /force.
  • В GPM перейдите к подразделению, в котором блокирующая политика применяется к соответствующим компьютерам, и удалите эту политику.

Проверка состояния служб RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) должны быть запущены следующие службы:

  • службы удаленных рабочих столов (TermService);
  • перенаправитель портов пользовательского режима служб удаленного рабочего стола (UmRdpService).

Для локального или удаленного управления службами можно использовать оснастку MMC. Вы также можете использовать PowerShell для управления службами в локальном или удаленном расположении (если удаленный компьютер настроен для приема удаленных командлетов PowerShell).

На любом компьютере запустите одну или обе службы, если они запущены.

Примечание

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

Проверка состояния прослушивателя протокола RDP

Важно!

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

Проверка состояния прослушивателя RDP

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

  1. Чтобы подключиться к удаленному компьютеру, выполните следующий командлет:

    PowerShell

 

  • Enter-PSSession -ComputerName <computer name>
    
  • Введите qwinsta

  • Если в списке содержится rdp-tcp с состоянием Listen, прослушиватель протокола удаленного рабочего стола работает. Перейдите к разделу Проверка порта прослушивателя протокола RDP. В противном случае перейдите к шагу 4.

  • Экспортируйте конфигурацию прослушивателя RDP с рабочего компьютера.

    1. Войдите на компьютер с той же версией операционной системы, что и у затронутого компьютера, и получите доступ к реестру компьютера (например, с помощью редактора реестра).
    2. Перейдите к следующей записи реестра:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    3. Экспортируйте запись в REG-файл. Например, в редакторе реестра щелкните запись правой кнопкой мыши, выберите пункт Экспортировать, а затем введите имя файла для экспортируемых параметров.
    4. Скопируйте экспортированный REG-файл на затронутый компьютер.
  • Чтобы импортировать конфигурацию прослушивателя протокола RDP, откройте окно PowerShell с разрешениями администратора на затронутом компьютере (или откройте окно PowerShell и подключитесь к этому компьютеру из удаленного расположения).

    1. Чтобы создать резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

      PowerShell
  • cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'   
    
  • Чтобы удалить резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

    PowerShell
  • Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force  
    
  • Чтобы импортировать новую запись реестра и перезапустить службу, воспользуйтесь такими командлетами:

    PowerShell

 

    1. cmd /c 'regedit /s c:\<filename>.reg'  
      Restart-Service TermService -Force  
      

      Здесь <filename> — имя экспортированного REG-файла.

  1. Проверьте конфигурацию, попытавшись еще раз подключиться к удаленному рабочему столу. Если подключиться все равно не удается, перезагрузите затронутый компьютер.

  2. Если вы не смогли подключиться, проверьте состояние самозаверяющего сертификата протокола RDP.

Проверка состояния самозаверяющего сертификата протокола RDP

  1. Если подключиться так и не удалось, откройте оснастку MMC "Сертификаты". Когда будет предложено выбрать хранилище сертификатов для управления, выберите Учетная запись компьютера и затронутый компьютер.
  2. В папке Сертификаты в разделе Удаленный рабочий стол удалите самозаверяющий сертификат протокола RDP. 
  3. На затронутом компьютере выполните следующие действия, чтобы перезапустить службу удаленных рабочих столов.
  4. Обновите оснастку диспетчера сертификатов.
  5. Если самозаверяющий сертификат протокола RDP не был создан повторно, проверьте разрешения для папки MachineKeys.

Проверка разрешений для папки MachineKeys

  1. На затронутом компьютере откройте проводник и перейдите к папке C:\ProgramData\Microsoft\Crypto\RSA\.
  2. Щелкните правой кнопкой мыши папку MachineKeys, а затем выберите Свойства, Безопасность и Дополнительно.
  3. Убедитесь, что настроены следующие разрешения:
    • Builtin\Administrators: полный контроль
    • Все: чтение и запись.

Проверка порта прослушивателя протокола RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) прослушиватель протокола RDP должен ожидать передачи данных через порт 3389. Другие приложения не должны использовать этот порт.

Важно!

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

Чтобы проверить или изменить порт протокола RDP, используйте редактор реестра:

  1. Откройте меню Пуск, выберите Выполнить и введите regedt32 в появившемся текстовом поле.
    • Чтобы подключиться к удаленному компьютеру, в редакторе реестра щелкните Файл и выберите пункт Подключить сетевой реестр.
    • В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  2. Откройте реестр и перейдите в подраздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>
  3. Если PortNumber имеет значение, отличное от 3389, укажите значение 3389.

    Важно!

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

  4. Изменив номер порта, перезапустите службу удаленных рабочих столов.

Проверка того, что другое приложение не пытается использовать тот же порт

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

  1. Откройте окно PowerShell. Чтобы подключиться к удаленному компьютеру, введите Enter-PSSession -ComputerName <имя_компьютера> .

  2. Введите следующую команду:

    PowerShell

 

  • cmd /c 'netstat -ano | find "3389"'  
    

  • Найдите запись для TCP-порта 3389 (или назначенного RDP-порта) с состоянием Ожидает вызова.

    Примечание

    Идентификатор процесса службы или процесса, использующих этот порт, отобразится в столбце "Идентификатор процесса".

  • Чтобы определить, какое приложение использует порт 3389 (или назначенный порт протокола RDP), введите следующую команду:

    PowerShell

 

  1. cmd /c 'tasklist /svc | find "<pid listening on 3389>"'  
    

  2. Найдите запись для номера процесса, связанного с портом (в выходных данных netstat). Службы или процессы, связанные с этим идентификатором процесса, отобразятся в столбце справа.

  3. Если порт используется приложением или службой, отличающейся от служб удаленных рабочих столов (TermServ.exe), устранить конфликт можно с помощью одного из следующих методов:

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

Проверка блокировки порта протокола RDP брандмауэром

С помощью средства psping проверьте, доступен ли затронутый компьютер через порт 3389.

  1. Перейдите на другой компьютер, на котором такая проблема не возникает, и скачайте psping отсюда: https://live.sysinternals.com/psping.exe.

  2. Откройте окно командной строки с правами администратора, перейдите в каталог, где установлено средство psping, и введите следующую команду:

     

 

  • psping -accepteula <computer IP>:3389  
    
  • Проверьте выходные данные команды psping на наличие таких результатов:

    • Connecting to <computer IP> (Подключение к <ip-адрес_компьютера>): удаленный компьютер доступен.
    • (0% loss) (0 % потерь): все попытки подключения выполнены успешно.
    • The remote computer refused the network connection (Удаленный компьютер отклонил сетевое подключение): удаленный компьютер недоступен.
    • (100% loss) (100 % потерь): не удалось выполнить подключение.
  • Запустите psping на нескольких компьютерах, чтобы проверить возможность подключения к затронутому компьютеру.

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

  • Рекомендуемые дальнейшие действия:

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

 

источник: https://docs.microsoft.com/ru-ru/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting