Condividi tramite


Servizi Desktop remoto non si avvia in una macchina virtuale di Azure

Si applica a: ✔️ macchine virtuali di Windows

Questo articolo descrive come risolvere i problemi quando ci si connette a una macchina virtuale (VM) di Azure e Servizi Desktop remoto, o TermService, non si avvia o non riesce ad avviarsi.

Sintomi

Quando si tenta di connettersi a una macchina virtuale, si verificano i seguenti scenari:

  • Lo screenshot della VM mostra che il sistema operativo è completamente caricato e in attesa delle credenziali.

    Lo screenshot mostra che il sistema operativo è completamente caricato e in attesa delle credenziali.

  • Puoi visualizzare in remoto i registri eventi nella macchina virtuale usando il Visualizzatore eventi. Si nota che Servizi Desktop remoto, TermService, non si avvia o non riesce ad avviarsi. Il seguente registro è un esempio:

    Nome registro: sistema
    Fonte: Gestione controllo servizi
    Data: 16/12/2017 11:19:36 AM
    ID evento: 7022
    Categoria attività: nessuna
    Livello: errore
    Parole chiave: classico
    Utente: N/D
    Computer: vm.contoso.com
    Descrizione: il servizio Servizi Desktop remoto si è bloccato all'avvio

    Puoi anche utilizzare la funzionalità della console di accesso seriale per cercare questi errori eseguendo la seguente query:

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

Causa

Questo problema si verifica perché Servizi Desktop remoto non è in esecuzione nella macchina virtuale. La causa può dipendere dai seguenti scenari:

  • Il servizio TermService è impostato su Disabilitato.
  • Il servizio TermService si arresta in modo anomalo o non risponde.
  • Il TermService non si avvia a causa di una configurazione errata.

Soluzione

Per risolvere questo problema, utilizzare la console seriale. Oppure ripara la VM offline collegando il disco del sistema operativo della VM a una VM di ripristino.

Usa la console seriale

  1. Accedere a Console seriale selezionando Supporto e risoluzione dei problemi>Console seriale. Se la funzionalità è abilitata sulla macchina virtuale, è possibile connettere correttamente la macchina virtuale.

  2. Crea un nuovo canale per un'istanza CMD. Immettere CMD per avviare il canale e ottenere il nome del canale.

  3. Passa al canale che esegue l'istanza CMD. In questo caso, dovrebbe essere il canale 1:

    ch -si 1
    
  4. Seleziona di nuovo Invio e inserisci un nome utente e una password validi, un ID locale o di dominio, per la VM.

  5. Interroga lo stato del servizio TermService:

    sc query TermService
    
  6. Se lo stato del servizio mostra Interrotto, provare ad avviare il servizio:

    sc start TermService
    
  7. Interroga nuovamente il servizio per assicurarti che il servizio sia stato avviato correttamente:

    sc query TermService
    
  8. Se il servizio non si avvia, segui la soluzione in base all'errore che hai ricevuto:

    Errore Suggerimento
    5- ACCESSO NEGATO Vedere Il servizio TermService è stato interrotto a causa di un errore di accesso negato.
    1053 - ERROR_SERVICE_REQUEST_TIMEOUT Vedere Il servizio TermService è disabilitato.
    1058 - ERROR_SERVICE_DISABLED Vedere Il servizio TerService si arresta in modo anomalo o si blocca.
    1059 - ERROR_CIRCULAR_DEPENDENCY Contattare l'assistenza per risolvere rapidamente il problema.
    1067 - ERROR_PROCESS_ABORTED Vedere Il servizio TerService si arresta in modo anomalo o si blocca.
    1068 - ERROR_SERVICE_DEPENDENCY_FAIL Contattare l'assistenza per risolvere rapidamente il problema.
    1069 - ERROR_SERVICE_LOGON_FAILED Vedere Il servizio TermService non riesce a causa di un errore di accesso
    1070 - ERROR_SERVICE_START_HANG Vedere Il servizio TerService si arresta in modo anomalo o si blocca.
    1077 - ERROR_SERVICE_NEVER_STARTED Vedere Il servizio TermService è disabilitato.
    1079 - ERROR_DIFERENCE_SERVICE_ACCOUNT Contattare l'assistenza per risolvere rapidamente il problema.
    1753 Contattare l'assistenza per risolvere rapidamente il problema.

Il servizio TermService è stato interrotto a causa di un problema di accesso negato

  1. Connettiti alla Console seriale e apri un'istanza di PowerShell.

  2. Scarica lo strumento Process Monitor eseguendo il seguente script:

    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. Ora avvia una traccia procmon:

    procmon /Quiet /Minimized /BackingFile c:\temp\ProcMonTrace.PML 
    
  4. Riproduci il problema avviando il servizio che fornisce Accesso negato:

    sc start TermService 
    

    Se non riesce, terminare la traccia Monitoraggio processi:

    procmon /Terminate 
    
  5. Raccogli il file c:\temp\ProcMonTrace.PML:

    1. Collegare un disco dati alla macchina virtuale.
    2. Usa la console seriale per copiare il file nella nuova unità. Ad esempio: copy C:\temp\ProcMonTrace.PML F:\. In questo comando, F è la lettera del driver del disco dati collegato.
    3. Scollegare l'unità dati e collegarla a una VM funzionante in cui è installato Process Monitor ubstakke.
  6. Apri ProcMonTrace.PML utilizzando Process Monitor della macchina virtuale funzionante. Quindi filtrare per Il risultato è ACCESSO NEGATO, come mostrato nello screenshot seguente:

    Screenshot del filtraggio in base al risultato nella finestra Process Monitor Filter.

  7. Correggere le chiavi di registro, le cartelle o i file presenti nell'output. In genere, questo problema si verifica quando l'account di accesso utilizzato nel servizio non dispone dell'autorizzazione ACL per accedere a questi oggetti. Per conoscere l'autorizzazione ACL corretta per l'account di accesso, puoi controllare una macchina virtuale integra.

Il servizio TermService è disabilitato

  1. Ripristina il servizio al suo valore di avvio predefinito:

    sc config TermService start= demand 
    
  2. Avvia il servizio:

    sc start TermService
    
  3. Interroga nuovamente il suo stato per assicurarti che il servizio sia in esecuzione:

    sc query TermService 
    
  4. Prova a connetterti alla VM utilizzando Desktop remoto.

Il servizio TermService non riesce a causa di un errore di accesso

  1. Questo problema si verifica se l'account di avvio di questo servizio è stato modificato. Ripristinato il suo valore predefinito:

    sc config TermService obj= 'NT Authority\NetworkService'
    
  2. Avvia il servizio:

    sc start TermService
    
  3. Prova a connetterti alla VM utilizzando Desktop remoto.

Il servizio TermService si arresta in modo anomalo o si blocca

  1. Se lo stato del servizio è bloccato su Avvio o Arresto, prova ad arrestare il servizio:

    sc stop TermService
    
  2. Isolare il servizio sul proprio contenitore "svchost":

    sc config TermService type= own
    
  3. Avvia il servizio:

    sc start TermService
    
  4. Se il servizio continua a non avviarsi, Contatta l'assistenza.

Ripara la VM offline

Collegare il disco del sistema operativo a una macchina virtuale di ripristino

  1. Collegare il disco del sistema operativo a una macchina virtuale di ripristino.

  2. Avviare una connessione Desktop remoto alla VM di ripristino. Assicurati che il disco collegato sia contrassegnato come Online nella console Gestione disco. Prendere nota della lettera di unità assegnata al disco del sistema operativo collegato.

  3. Aprire un'istanza del prompt dei comandi con privilegi elevati (Esegui come amministratore). Quindi eseguire il seguente script. Si presuppone che la lettera di unità assegnata al disco del sistema operativo collegato sia F. Sostituiscilo con il valore appropriato nella tua VM.

    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. Scollegare il disco del sistema operativo e ricreare la macchina virtuale. Quindi controlla se il problema è stato risolto.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.