Поделиться через


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

Область применения: ✔️ Виртуальные машины Windows

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

Симптомы

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

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

    Снимок экрана: операционная система полностью загружена и ожидает учетных данных.

  • Вы удаленно просматриваете журналы событий в виртуальной машине c помощью средства "Просмотр событий". Вы увидите, что службы удаленных рабочих столов (TermService) не запускаются или происходит сбой запуска. Ниже приведен пример журнала:

    Имя журнала: System
    Source: Service Control Manager
    Date: 12/16/2017 11:19:36 AM
    Event ID: 70222
    Task Category
    : None Level: None
    Level
    : Classic User: Classic
    User
    : N/A
    Computer
    : vm.contoso.com
    Description: Служба служб удаленных рабочих
    столов висела при запуске.

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

    wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Service Control Manager'] and EventID=7022 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
    

Причина

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

  • Служба TermService отключена.
  • Служба TermService завершает работу или не отвечает.
  • TermService не запускается из-за неправильной конфигурации.

Решение

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

Использование последовательной консоли

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

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

  3. Переключитесь на канал, который запускает экземпляр CMD. В нашем случае это должен быть канал 1:

    ch -si 1
    
  4. Еще раз нажмите клавишу ВВОД и введите допустимое имя пользователя и пароль, локальный или доменный идентификатор для виртуальной машины.

  5. Запросите состояние службы TermService:

    sc query TermService
    
  6. Если отображается состояние службы Остановлена, попытайтесь запустить службу:

    sc start TermService
    
  7. Запросите службу еще раз, чтобы убедиться, что она успешно запущена:

    sc query TermService
    
  8. Если служба не запускается, выполните поиск решения на основе полученного сообщения об ошибке:

    Ошибка Предложение
    5 — ACCESS DENIED Ознакомьтесь с разделом Служба TermService остановлена из-за ошибки отказа в доступе.
    1053 — ERROR_SERVICE_REQUEST_TIMEOUT Ознакомьтесь с разделом Служба TermService отключена.
    1058 — ERROR_SERVICE_DISABLED Ознакомьтесь с разделом Происходит сбой службы TermService сбоя или она зависает.
    1059 — ERROR_CIRCULAR_DEPENDENCY Свяжитесь со службой поддержки, чтобы быстро решить проблему.
    1067 — ERROR_PROCESS_ABORTED Ознакомьтесь с разделом Происходит сбой службы TermService сбоя или она зависает.
    1068 — ERROR_SERVICE_DEPENDENCY_FAIL Свяжитесь со службой поддержки, чтобы быстро решить проблему.
    1069 — ERROR_SERVICE_LOGON_FAILED Ознакомьтесь с разделом Происходит сбой службы TermService из-за ошибки входа в систему.
    1070 — ERROR_SERVICE_START_HANG Ознакомьтесь с разделом Происходит сбой службы TermService сбоя или она зависает.
    1077 — ERROR_SERVICE_NEVER_STARTED Ознакомьтесь с разделом Служба TermService отключена.
    1079 — ERROR_DIFERENCE_SERVICE_ACCOUNT Свяжитесь со службой поддержки, чтобы быстро решить проблему.
    1753 Свяжитесь со службой поддержки, чтобы быстро решить проблему.

Служба TermService остановлена из-за отказа в доступе

  1. Подключитесь к последовательной консоли и откройте экземпляр PowerShell.

  2. Скачайте средство мониторинга процессов, выполнив следующий сценарий:

    remove-module psreadline  
    $source = "https://download.sysinternals.com/files/ProcessMonitor.zip" 
    $destination = "c:\temp\ProcessMonitor.zip" 
    $wc = New-Object System.Net.WebClient 
    $wc.DownloadFile($source,$destination) 
    
  3. Далее запустите трассировку procmon:

    procmon /Quiet /Minimized /BackingFile c:\temp\ProcMonTrace.PML 
    
  4. Воспроизведите проблему, запустив службу, которая выдает ошибку отказа в доступе:

    sc start TermService 
    

    Когда запуск завершится ошибкой, остановите трассировку Process Monitor:

    procmon /Terminate 
    
  5. Соберите файл c:\temp\ProcMonTrace.PML:

    1. Подключение диска данных к виртуальной машине.
    2. С помощью последовательной консоли можно скопировать файл на новый диск. Например, copy C:\temp\ProcMonTrace.PML F:\. В этой команде F является буквой подключенного диска данных.
    3. Отключите диск данных и подключите его на работающей виртуальной машине, на которой установлено средство ubstakke Process Monitor.
  6. Откройте ProcMonTrace.PML с помощью Process Monitor рабочей виртуальной машины. Затем фильтр по результату — ACCESS DENIED, как показано на следующем снимке экрана:

    Снимок экрана: фильтрация по результату в окне фильтра монитора процессов.

  7. Исправьте разделы реестра, папки или файлы, которые включены в выходные данные. Обычно эта проблема возникает, если у учетной записи, использованной для входа в систему, нет разрешения ACL на доступ к этим объектам. Чтобы узнать правильное разрешение в ACL для учетной записи, используемой для входа в систему, просмотрите данные на исправной виртуальной машине.

Служба TermService отключена

  1. Восстановите параметр запуска службы по умолчанию:

    sc config TermService start= demand 
    
  2. Запустите службу:

    sc start TermService
    
  3. Выполните запрос состояния еще раз, чтобы убедиться, что служба запущена:

    sc query TermService 
    
  4. Попробуйте подключиться к виртуальной машине с помощью удаленного рабочего стола.

Сбой службы TermService из-за ошибки входа в систему

  1. Эта проблема возникает, если запускаемая учетная запись этой службы была изменена. Изменить ее на учетную запись по умолчанию:

    sc config TermService obj= 'NT Authority\NetworkService'
    
  2. Запустите службу:

    sc start TermService
    
  3. Попробуйте подключиться к виртуальной машине с помощью удаленного рабочего стола.

Происходит сбой службы TermService сбоя или она зависает

  1. Если служба зависла в состоянии Запуск илиОстановка, попробуйте остановить службу:

    sc stop TermService
    
  2. Изолируйте службу в собственном контейнере svchost.

    sc config TermService type= own
    
  3. Запустите службу:

    sc start TermService
    
  4. Если службу по-прежнему не удается запустить, обратитесь в службу поддержки.

Автономное восстановление виртуальной машины

Подключите диск ОС к виртуальной машине восстановления.

  1. Устранение неполадок с виртуальной машиной Windows при подключении диска операционной системы к виртуальной машине восстановления с помощью портала Azure.

  2. Установите подключение с помощью удаленного рабочего стола к виртуальной машине, используемой для восстановления. Убедитесь, что в консоли "Управление дисками" для подключенного диска отображается состояние Подключен. Запишите или запомните букву диска, которая присвоена подключенному диску ОС.

  3. Откройте командную строку с повышенными привилегиями (Запуск от имени администратора). Затем выполните следующий сценарий. Предположим, что буква диска, назначенная подключенному диску ОС, — F. Замените его соответствующим значением в виртуальной машине.

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REM Set default values back on the broken service 
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v start /t REG_DWORD /d 3 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v ObjectName /t REG_SZ /d "NT Authority\NetworkService“ /f
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v type /t REG_DWORD /d 16 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v start /t REG_DWORD /d 3 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v ObjectName /t REG_SZ /d "NT Authority\NetworkService" /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v type /t REG_DWORD /d 16 /f
    
  4. Отключение диска операционной системы и повторное создание виртуальной машины. Затем проверьте, устранена ли проблема.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.