Error al intentar RDP en una máquina virtual de Windows en Azure: corrección de oracle de cifrado credSSP

En este artículo se proporciona una solución a un problema en el que no puede conectarse a una máquina virtual (VM) mediante RDP con error: corrección de oracle de cifrado credSSP.

Versión del producto original:   Máquina virtual que ejecuta Windows
Número KB original:   4295591

Síntomas

Imagine la siguiente situación:

  • Las actualizaciones del protocolo del proveedor de soporte de seguridad de credenciales (CredSSP) para CVE-2018-0886 se aplican a una máquina virtual de Windows (servidor remoto) en Microsoft Azure o en un cliente local.
  • Intenta realizar una conexión de escritorio remoto (RDP) al servidor desde el cliente local.

En este escenario, recibirá el siguiente mensaje de error:

Se ha producido un error de autenticación. No se admite la función solicitada. Equipo remoto: <computer name or IP> . Esto podría deberse a la corrección del oracle de cifrado credSSP. Para obtener más información, vea https://go.microsoft.com/fwlink/?linkid=866660 .

Cómo comprobar que la actualización de CredSSP está instalada

Compruebe el historial de actualizaciones para las siguientes actualizaciones o compruebe la versión de TSpkg.dll.

Sistema operativo TSpkg.dll versión con actualización de CredSSP Actualización de CredSSP
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1 6.1.7601.24117 KB4103718 (paquete acumulativo mensual)
KB4103712 (actualización de solo seguridad)
Windows Server 2012 6.2.9200.22432 KB4103730 (paquete acumulativo mensual)
KB4103726 (actualización de solo seguridad)
Windows 8.1 / Windows Server 2012 R2 6.3.9600.18999 KB4103725 (paquete acumulativo mensual)
KB4103715 (actualización de solo seguridad)
RS1: Windows 10 Versión 1607 / Windows Server 2016 10.0.14393.2248 KB4103723
RS2: Windows 10 Versión 1703 10.0.15063.1088 KB4103731
RS3: Windows 10 1709 10.0.16299.431 KB4103727

Causa

Este error se produce si está intentando establecer una conexión RDP insegura y una configuración de directiva de corrección de Oracle de cifrado bloquea la conexión RDP insegura en el servidor o cliente. Esta configuración define cómo crear una sesión RDP mediante CredSSP y si se permite un RDP no seguro.

Consulte la siguiente matriz de interoperabilidad para ver escenarios vulnerables a esta vulnerabilidad o que causan errores operativos.

- - Servidor - - -
- - Updated Forzar clientes actualizados Mitigado Vulnerable
Cliente Updated Permitido Bloqueado 2 Permitido Permitido
Forzar clientes actualizados Blocked Permitido Permitido Permitido
Mitigado Bloqueado 1 Permitido Permitido Permitido
Vulnerable Permitido Permitido Permitido Permitido

Ejemplos

1 El cliente tiene instalada la actualización credSSP y la corrección de oracle de cifrado se establece en Mitigado. Este cliente no realizará RDP en un servidor que no tenga instalada la actualización de CredSSP.

2 El servidor tiene instalada la actualización credSSP y la corrección de oracle de cifrado se establece en Forzar clientes actualizados. El servidor bloqueará cualquier conexión RDP de clientes que no tengan instalada la actualización de CredSSP.

Resolución

Para resolver el problema, instale las actualizaciones de CredSSP tanto para el cliente como para el servidor de modo que RDP pueda establecerse de forma segura. Para obtener más información, vea CVE-2018-0886 | Vulnerabilidad de ejecución remota de código credSSP.

Cómo instalar esta actualización con la consola serie de Azure

  1. Inicie sesión en Azure Portal, seleccione Máquina virtual y, a continuación, seleccione la máquina virtual.

  2. Desplácese hacia abajo hasta la sección Soporte técnico y solución de problemas y, a continuación, haga clic en Consola serie (versión preliminar). La consola serie requiere que la Consola administrativa especial (SAC) esté habilitada dentro de la máquina virtual de Windows. Si no ve sac> en la consola (como se muestra en la siguiente captura de pantalla), vaya a la sección " Cómo instalar esta actualización mediante PowerShellremoto " en este artículo.

    Captura de pantalla de SAC conectado

  3. Escriba cmd para iniciar un canal que tenga una instancia de CMD.

  4. Escriba ch-si 1 para cambiar al canal que ejecuta la instancia de CMD. Recibirá la siguiente salida:

    Captura de pantalla del inicio de CMD en SAC

  5. Presione Entrar y, a continuación, escriba las credenciales de inicio de sesión que tienen permiso administrativo.

  6. Después de escribir credenciales válidas, se abrirá la instancia cmd y verá el comando en el que puede empezar a solucionar problemas.

    Captura de pantalla de la sección CMD en SAC

  7. Para iniciar una instancia de PowerShell, escriba PowerShell .

  8. En la instancia de PowerShell, ejecute el script de consola serie basado en el sistema operativo vm. Este script realiza los pasos siguientes:

    • Cree una carpeta en la que guardar el archivo de descarga.
    • Descargue la actualización.
    • Instale el paquete.
    • Agregue la clave de vulnerabilidad para permitir que los clientes no actualizados se conecten a la máquina virtual.
    • Reiniciar la máquina virtual

Cómo instalar esta actualización con PowerShell remoto

  1. En cualquier equipo basado en Windows que tenga PowerShell instalado, agregue la dirección IP de la máquina virtual a la lista de "confianza" en el archivo host, de la siguiente manera:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. En Azure Portal, configure grupos de seguridad de red en la máquina virtual para permitir el tráfico al puerto 5986.

  3. En Azure Portal, seleccione Máquina virtual > < la máquina virtual >, desplácese hacia abajo hasta la sección OPERACIONES, haga clic en el comando Ejecutar y, a continuación, ejecute EnableRemotePS.

  4. En el equipo basado en Windows, ejecute el script de PowerShell remoto para la versión del sistema adecuada de la máquina virtual. Este script realiza los pasos siguientes:

    • Conéctese a PowerShell remoto en la máquina virtual.
    • Cree una carpeta en la que guardar el archivo de descarga.
    • Descargue la actualización de Credssp.
    • Instale el paquete.
    • Establezca la clave de registro de vulnerabilidad para permitir que los clientes no actualizados se conecten a la máquina virtual.
    • Habilite serial console para la mitigación futura y más fácil.
    • Reinicie la máquina virtual.

Solución alternativa

Advertencia

Después de cambiar la siguiente configuración, se permite una conexión no segura que expondrá el servidor remoto a ataques. Siga atentamente los pasos de esta sección. La modificación incorrecta del Registro puede producir graves problemas. Antes de modificarlo, realice una copia de seguridad del Registro para efectuar una restauración en caso de que surjan problemas.

Escenario 1: Los clientes actualizados no pueden comunicarse con servidores no actualizados

El escenario más común es que el cliente tiene instalada la actualización credSSP y la configuración de directiva de corrección de Oracle de cifrado no permite una conexión RDP insegura a un servidor que no tiene instalada la actualización credSSP.

Para evitar este problema, siga estos pasos:

  1. En el cliente que tiene instalada la actualización de CredSSP, ejecute gpedit.msc y, a continuación, vaya a Configuración del equipo Plantillas administrativas Delegación de credenciales del sistema en el > > > panel de navegación.

  2. Cambie la directiva de corrección de Oracle de cifrado a Habilitado y, a continuación, cambie El nivel de protección a Vulnerable.

    Si no puede usar gpedit.msc, puede realizar el mismo cambio mediante el Registro, de la siguiente manera:

    1. Abra una ventana del símbolo del sistema como administrador.

    2. Ejecute el siguiente comando para agregar un valor del Registro:

      REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2
      

Escenario 2: Los clientes no actualizados no pueden comunicarse con servidores con revisiones

Si la vm de Azure Windows tiene instalada esta actualización y está restringida a recibir clientes no actualizados, siga estos pasos para cambiar la configuración de directiva de corrección de Oracle de cifrado:

  1. En cualquier equipo windows que tenga PowerShell instalado, agregue la IP de la máquina virtual a la lista de "confianza" en el archivo host:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. Vaya a Azure Portal,busque la máquina virtual y, a continuación, actualice el grupo Seguridad de red para permitir los puertos de PowerShell 5985 y 5986.

  3. En el equipo Windows, conéctese a la máquina virtual mediante PowerShell:

    Para HTTP:

    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5985" -Credential (Get-Credential) -SessionOption $Skip
    

    Para HTTPS:

    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
    
  4. Ejecute el siguiente comando para cambiar la configuración de la directiva de corrección de Oracle de cifrado mediante el Registro:

    Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters' -name "AllowEncryptionOracle" 2 -Type DWord
    

Scripts de Azure Serial Console

Versión del sistema operativo Script
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1 #Create una ubicación de descarga
md c:\temp

##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows6.1-kb4103718-x64_c051268978faef39e21863a95ea2452ecbc0936d.msu"
$destination = "c:\temp\windows6.1-kb4103718-x64_c051268978faef39e21863a95ea2452ecbc0936d.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)

#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"

#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f
Windows Server 2012
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/04/windows8-rt-kb4103730-x64_1f4ed396b8c411df9df1e6755da273525632e210.msu"
$destination = "c:\temp\windows8-rt-kb4103730-x64_1f4ed396b8c411df9df1e6755da273525632e210.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows8.1-kb4103725-x64_cdf9b5a3be2fd4fc69bc23a617402e69004737d9.msu"
$destination = "c:\temp\windows8.1-kb4103725-x64_cdf9b5a3be2fd4fc69bc23a617402e69004737d9.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS1: Windows 10 versión 1607 / Windows Server 2016
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows10.0-kb4103723-x64_2adf2ea2d09b3052d241c40ba55e89741121e07e.msu"
$destination = "c:\temp\windows10.0-kb4103723-x64_2adf2ea2d09b3052d241c40ba55e89741121e07e.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS2: Windows 10 versión 1703
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103731-x64_209b6a1aa4080f1da0773d8515ff63b8eca55159.msu"
$destination = "c:\temp\windows10.0-kb4103731-x64_209b6a1aa4080f1da0773d8515ff63b8eca55159.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS3: Windows 10 versión 1709 / Windows Server 2016 versión 1709
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103727-x64_c217e7d5e2efdf9ff8446871e509e96fdbb8cb99.msu"
$destination = "c:\temp\windows10.0-kb4103727-x64_c217e7d5e2efdf9ff8446871e509e96fdbb8cb99.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS4: Windows 10 1803 / Windows Server 2016 versión 1803
#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103721-x64_fcc746cd817e212ad32a5606b3db5a3333e030f8.msu"
$destination = "c:\temp\windows10.0-kb4103721-x64_fcc746cd817e212ad32a5606b3db5a3333e030f8.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

Scripts remotos de PowerShell

Versión del sistema operativo Script
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows6.1-kb4103718-x64_c051268978faef39e21863a95ea2452ecbc0936d.msu"
$destination = "c:\temp\windows6.1-kb4103718-x64_c051268978faef39e21863a95ea2452ecbc0936d.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

Windows Server 2012
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/04/windows8-rt-kb4103730-x64_1f4ed396b8c411df9df1e6755da273525632e210.msu"
$destination = "c:\temp\windows8-rt-kb4103730-x64_1f4ed396b8c411df9df1e6755da273525632e210.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows8.1-kb4103725-x64_cdf9b5a3be2fd4fc69bc23a617402e69004737d9.msu"
$destination = "c:\temp\windows8.1-kb4103725-x64_cdf9b5a3be2fd4fc69bc23a617402e69004737d9.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS1: Windows 10 versión 1607 / Windows Server 2016
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/d/msdownload/update/software/secu/2018/05/windows10.0-kb4103723-x64_2adf2ea2d09b3052d241c40ba55e89741121e07e.msu"
$destination = "c:\temp\windows10.0-kb4103723-x64_2adf2ea2d09b3052d241c40ba55e89741121e07e.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS2: Windows 10 versión 1703
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103731-x64_209b6a1aa4080f1da0773d8515ff63b8eca55159.msu"
$destination = "c:\temp\windows10.0-kb4103731-x64_209b6a1aa4080f1da0773d8515ff63b8eca55159.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS3: Windows 10 versión 1709 / Windows Server 2016 versión 1709
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103727-x64_c217e7d5e2efdf9ff8446871e509e96fdbb8cb99.msu"
$destination = "c:\temp\windows10.0-kb4103727-x64_c217e7d5e2efdf9ff8446871e509e96fdbb8cb99.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f

RS4: Windows 10 1803 / Windows Server 2016 versión 1803
#Set las variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change esta variable si personaliza HTTPS en PowerShell en otro puerto


#Log a la suscripción
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect a PowerShell remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create una ubicación de descarga
md c:\temp


##Download el archivo KB
$source = "http://download.windowsupdate.com/c/msdownload/update/software/secu/2018/05/windows10.0-kb4103721-x64_fcc746cd817e212ad32a5606b3db5a3333e030f8.msu"
$destination = "c:\temp\windows10.0-kb4103721-x64_fcc746cd817e212ad32a5606b3db5a3333e030f8.msu"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source,$destination)


#Install la KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"


#Add la clave de vulnerabilidad para permitir clientes no apareados
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set de Azure Serial Console
cmd
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 5
bcdedit /set {bootmgr} bootems yes
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200


#Restart la máquina virtual para completar las instalaciones o la configuración
shutdown /r /t 0 /f