Delen via


Er treedt een interne fout op wanneer u via Extern bureaublad probeert te verbinden met een Azure-VM

Van toepassing op: ✔️ Windows-VM's

In dit artikel wordt een fout beschreven die u mogelijk ondervindt wanneer u verbinding probeert te maken met een virtuele machine (VM) in Microsoft Azure.

Notitie

Was dit artikel nuttig? Uw input is belangrijk voor ons. Gebruik de knop Feedback op deze pagina om ons te laten weten hoe goed dit artikel voor u heeft gewerkt of hoe we het kunnen verbeteren.

Symptomen

U kunt geen verbinding maken met een Virtuele Azure-machine met behulp van het Remote Desktop Protocol (RDP). De verbinding blijft hangen in de sectie Externe configuratie of u ontvangt het volgende foutbericht:

  • Interne RDP-fout
  • Er is een interne fout opgetreden
  • Deze computer kan niet worden verbonden met de externe computer. Probeer opnieuw verbinding te maken. Als het probleem zich blijft voordoen, neemt u contact op met de eigenaar van de externe computer of uw netwerkbeheerder.

Oorzaak

Dit probleem kan om de volgende redenen optreden:

  • De virtuele machine is mogelijk aangevallen.
  • De lokale RSA-versleutelingssleutels kunnen niet worden geopend.
  • TLS-protocol is uitgeschakeld.
  • Het certificaat is beschadigd of verlopen.

Oplossing

Voer de stappen in de volgende secties uit om dit probleem op te lossen. Voordat u begint, maakt u een momentopname van de besturingssysteemschijf van de betreffende VM als back-up. Zie Momentopname van een schijf voor meer informatie.

RDP-beveiliging controleren

Controleer eerst of de netwerkbeveiligingsgroep voor RDP-poort 3389 onbeveiligd is (geopend). Als deze niet beveiligd is en * wordt weergegeven als het bron-IP-adres voor inkomend verkeer, beperkt u de RDP-poort tot het IP-adres van een specifieke gebruiker en test u vervolgens RDP-toegang. Als dit mislukt, voert u de stappen in de volgende sectie uit.

Serieel besturingselement gebruiken

Gebruik de seriële console of herstel de virtuele machine offline door de besturingssysteemschijf van de VIRTUELE machine te koppelen aan een herstel-VM.

Maak eerst verbinding met de seriële console en open een PowerShell-exemplaar. Als de seriële console niet is ingeschakeld op uw virtuele machine, gaat u naar de offlinesectie van de VM herstellen.

Stap: 1 Controleer de RDP-poort

  1. Gebruik in een PowerShell-exemplaar netSTAT om te controleren of poort 3389 wordt gebruikt door andere toepassingen:

    Netstat -anob |more
    
  2. Als Termservice.exe 3389-poort gebruikt, gaat u naar stap 2. Als een andere service of toepassing dan Termservice.exe 3389-poort gebruikt, voert u de volgende stappen uit:

    1. Stop de service voor de toepassing die gebruikmaakt van de 3389-service:

      Stop-Service -Name <ServiceName> -Force
      
    2. Start de terminalservice:

      Start-Service -Name Termservice
      
  3. Als de toepassing niet kan worden gestopt of als deze methode niet op u van toepassing is, wijzigt u de poort voor RDP:

    1. Wijzig de poort:

      Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -name PortNumber -value <Hexportnumber>
      
      Stop-Service -Name Termservice -Force
      
      Start-Service -Name Termservice
      
    2. Stel de firewall in voor de nieuwe poort:

      Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" -LocalPort <NEW PORT (decimal)>
      
    3. Werk de netwerkbeveiligingsgroep voor de nieuwe poort in azure Portal RDP-poort bij.

Stap 2: de juiste machtigingen instellen voor het zelfondertekende RDP-certificaat

  1. Voer in een PowerShell-exemplaar de volgende opdrachten één voor één uit om het zelfondertekende RDP-certificaat te vernieuwen:

    Import-Module PKI
    
    Set-Location Cert:\LocalMachine 
    
    $RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint) 
    
    Remove-Item -Path $RdpCertThumbprint
    
    Stop-Service -Name "SessionEnv"
    
    Start-Service -Name "SessionEnv"
    
  2. Als u het certificaat niet kunt vernieuwen met behulp van deze methode, probeert u het zelfondertekende RDP-certificaat op afstand te vernieuwen:

    1. Typ mmc in het vak Uitvoeren om Microsoft Management Console te openen vanaf een werkende VM die verbinding heeft met de VM die problemen ondervindt.

    2. Selecteer in het menu Bestand de optie Module Toevoegen/verwijderen, selecteer Certificaten en selecteer vervolgens Toevoegen.

    3. Selecteer Computeraccounts, selecteer Een andere computer en voeg vervolgens het IP-adres van de probleem-VM toe.

    4. Ga naar de map Extern bureaublad\Certificaten , klik met de rechtermuisknop op het certificaat en selecteer Vervolgens Verwijderen.

    5. Start in een PowerShell-exemplaar vanuit de seriële console de extern bureaublad-configuratieservice opnieuw op:

      Stop-Service -Name "SessionEnv"
      
      Start-Service -Name "SessionEnv"
      
  3. Stel de machtiging voor de map MachineKeys opnieuw in.

    remove-module psreadline 
    
    md c:\temp
    
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt 
    
    takeown /f "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r
    
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)"
    
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)"
    
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)"
    
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt 
    
    Restart-Service TermService -Force
    
  4. Start de VIRTUELE machine opnieuw op en start vervolgens een verbinding met extern bureaublad met de VIRTUELE machine. Als de fout zich nog steeds voordoet, gaat u naar de volgende stap.

Stap 3: alle ondersteunde TLS-versies inschakelen

De RDP-client gebruikt TLS 1.0 als het standaardprotocol. Dit kan echter worden gewijzigd in TLS 1.1, wat de nieuwe standaard is geworden. Als TLS 1.1 is uitgeschakeld op de virtuele machine, mislukt de verbinding.

  1. Schakel in een CMD-exemplaar het TLS-protocol in:

    reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
    
  2. Als u wilt voorkomen dat het AD-beleid de wijzigingen overschrijft, stopt u de update van het groepsbeleid tijdelijk:

    REG add "HKLM\SYSTEM\CurrentControlSet\Services\gpsvc" /v Start /t REG_DWORD /d 4 /f
    
  3. Start de VIRTUELE machine opnieuw op zodat de wijzigingen van kracht worden. Als het probleem is opgelost, voert u de volgende opdracht uit om het groepsbeleid opnieuw in te schakelen:

    sc config gpsvc start= auto sc start gpsvc
    
    gpupdate /force
    

    Als de wijziging wordt teruggedraaid, betekent dit dat er een Active Directory-beleid in uw bedrijfsdomein is. U moet dat beleid wijzigen om te voorkomen dat dit probleem zich opnieuw voordoet.

De virtuele machine offline herstellen

De besturingssysteemschijf koppelen aan een herstel-VM

  1. Koppel de besturingssysteemschijf aan een herstel-VM.
  2. Nadat de besturingssysteemschijf is gekoppeld aan de herstel-VM, controleert u of de schijf is gemarkeerd als Online in de console Schijfbeheer. Noteer de stationsletter die is toegewezen aan de gekoppelde besturingssysteemschijf.
  3. Start een verbinding met extern bureaublad met de herstel-VM.

Dumplogboek en seriële console inschakelen

Voer het volgende script uit om het dumplogboek en de seriële console in te schakelen.

  1. Open een opdrachtpromptsessie met verhoogde bevoegdheid (Als administrator uitvoeren).

  2. Voer het volgende script uit:

    In dit script wordt ervan uitgegaan dat de stationsletter die is toegewezen aan de gekoppelde besturingssysteemschijf F is. Vervang deze stationsletter door de juiste waarde voor uw VIRTUELE machine.

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REM Enable Serial Console
    bcdedit /store F:\boot\bcd /set {bootmgr} displaybootmenu yes
    bcdedit /store F:\boot\bcd /set {bootmgr} timeout 5
    bcdedit /store F:\boot\bcd /set {bootmgr} bootems yes
    bcdedit /store F:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON
    bcdedit /store F:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
    REM Suggested configuration to enable OS Dump
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    
    reg unload HKLM\BROKENSYSTEM
    

De machtiging voor de map MachineKeys opnieuw instellen

  1. Open een opdrachtpromptsessie met verhoogde bevoegdheid (Als administrator uitvoeren).

  2. Voer het volgende script uit. In dit script wordt ervan uitgegaan dat de stationsletter die is toegewezen aan de gekoppelde besturingssysteemschijf F is. Vervang deze stationsletter door de juiste waarde voor uw VIRTUELE machine.

    Md F:\temp
    
    icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt
    
    takeown /f "F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r
    
    icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)"
    
    icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)"
    
    icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)"
    
    icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt
    

Alle ondersteunde TLS-versies inschakelen

  1. Open een opdrachtpromptsessie met verhoogde bevoegdheid (Als administrator uitvoeren) en voer de volgende opdrachten uit. In het volgende script wordt ervan uitgegaan dat de stuurprogrammaletter is toegewezen aan de gekoppelde besturingssysteemschijf F. Vervang deze stationsletter door de juiste waarde voor uw VIRTUELE machine.

  2. Controleren welke TLS is ingeschakeld:

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
    
  3. Als de sleutel niet bestaat of de waarde 0 is, schakelt u het protocol in door de volgende scripts uit te voeren:

    REM Enable TLS 1.0, TLS 1.1 and TLS 1.2
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
    
  4. NLA inschakelen:

    REM Enable NLA
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
    
    reg unload HKLM\BROKENSYSTEM
    
  5. Koppel de besturingssysteemschijf los en maak de VIRTUELE machine opnieuw en controleer vervolgens of het probleem is opgelost.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.