Erro ao tentar usar RDP em uma VM Windows no Azure: correção oracle de criptografia CredSSP

Este artigo fornece uma solução para um problema no qual você não é capaz de se conectar a uma VM (máquina virtual) usando RDP com erro: correção oracle de criptografia CredSSP.

Versão original do produto: máquina virtual executando Windows
Número original do KB: 4295591

Observação

Esse artigo foi útil? Sua opinião é importante para nós. Use o botão Comentários nesta página para nos informar o quão bem este artigo funcionou para você ou como podemos melhorá-lo.

Sintomas

Considere o seguinte cenário:

Nesse cenário, a seguinte mensagem de erro é exibida:

Ocorreu um erro de autenticação. A função solicitada não tem suporte. Computador remoto: <nome do computador ou IP>. Isso pode ser devido à Remediação de criptografia da Oracle para CredSSP. Para obter mais informações, confira https://go.microsoft.com/fwlink/?linkid=866660.

Como verificar se a atualização CredSSP está instalada

Verifique o histórico de atualizações para as atualizações a seguir ou verifique a versão do TSpkg.dll localizada em %systemroot%\system32.

Sistema operacional Versão do TSpkg.dll com a atualização CredSSP Atualização CredSSP
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1 6.1.7601.24117 KB4103718 (Pacote Cumulativo Mensal)
KB4103712 (Atualização de somente segurança)
Windows Server 2012 6.2.9200.22432 KB4103730 (Pacote Cumulativo Mensal)
KB4103726 (Atualização de somente segurança)
Windows 8.1 / Windows Server 2012 R2 6.3.9600.18999 KB4103725 (Pacote Cumulativo Mensal)
KB4103715 (Atualização de somente segurança)
RS1 - Windows 10 Version 1607 / Windows Server 2016 10.0.14393.2248 KB4103723
RS2 - Windows 10 Versão 1703 10.0.15063.1088 KB4103731
RS3 - Windows 10 1709 10.0.16299.431 KB4103727

Motivo

Esse erro ocorrerá se você estiver tentando estabelecer uma conexão RDP insegura e a conexão RDP insegura for bloqueada por uma configuração de política de Correção de Criptografia Oracle no servidor ou no cliente. Essa configuração define como criar uma sessão RDP usando CredSSP e se um RDP inseguro é permitido.

A tabela a seguir resume o comportamento da conexão RDP com base no status de atualização do CredSSP e na configuração da política CredSSP (valor AllowEncryptionOracle):

Status de atualização do Servidor CredSSP Status de atualização do Cliente CredSSP Forçar clientes atualizados (0) Mitigado (1) Vulnerável (2)
Instalado Não Bloquear Permitir1 Permitir
Não Instalado Bloquear2 Bloquear Permitir
Instalado Instalado Permitir Permitir Permitir

Exemplos

1 O servidor tem a atualização CredSSP instalada, e a Correção de Criptografia Oracle está definida para Mitigada no lado do servidor. O servidor aceitará a conexão RDP de clientes que não tenham a atualização CredSSP instalada.

2 O servidor tem a atualização CredSSP instalada e a Correção de Criptografia Oracle está definida para Forçar clientes atualizados ou Mitigados no lado do cliente. Este cliente não fará a conexão para um servidor que não tenha a atualização CredSSP instalada.

Resolução

Para resolver o problema, instale atualizações CredSSP para cliente e servidor para que o RDP possa ser estabelecido de forma segura. Para obter mais informações, consulte CVE-2018-0886 | Vulnerabilidade de Execução Remota de Código CredSSP.

Como instalar essa atualização usando o console serial do Azure

  1. Entre no portal do Azure, selecione Máquina Virtual e selecione a VM.

  2. Role a tela para baixo até a seção Ajuda e clique em Console serial. O console serial exige que o Console Administrativo Especial (SAC) seja habilitado na VM do Windows. Se você não vir o SAC> no console (conforme mostrado na captura de tela a seguir), vá para a seção " Como instalar essa atualização usando o PowerShell Remoto" deste artigo.

    Captura de tela do SAC conectado.

  3. Digite cmd para iniciar um canal que tenha uma instância CMD.

  4. Digite ch -si 1 para alternar para o canal que está executando a instância CMD. Você recebe a seguinte saída:

    Captura de tela do CMD de lançamento no SAC.

  5. Pressione Enter e insira suas credenciais de logon que tenham permissão administrativa.

  6. Depois de inserir credenciais válidas, a instância do CMD será aberta e você verá o comando no qual você pode começar a solucionar problemas.

    Captura de tela da seção CMD no SAC.

  7. Para iniciar uma instância do PowerShell, digite PowerShell.

  8. Na instância do PowerShell, execute o script de console serial com base no sistema operacional da VM. Este script executa as seguintes etapas:

    • Crie uma pasta para salvar o arquivo de download.
    • Baixe a atualização.
    • Instale a atualização.
    • Adicione a chave de vulnerabilidade para permitir que clientes não atualizados se conectem à VM.
    • Reiniciar a VM

Como instalar essa atualização usando o PowerShell Remoto

  1. Em qualquer computador Windows com o PowerShell instalado, adicione o endereço IP da VM à lista "confiável" no arquivo host, da seguinte forma:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. No portal do Azure, configure os Grupos de Segurança de Rede na VM para permitir o tráfego para a porta 5986.

  3. No portal do Azure, selecione Máquina Virtual><sua VM>, role a tela para baixo até a seção OPERAÇÕES, clique em Executar Comando e execute EnableRemotePS.

  4. No computador Windows, execute o script do PowerShell Remoto para a versão apropriada do sistema da VM. Este script executa as seguintes etapas:

    • Conexão com o PowerShell Remoto na VM.
    • Crie uma pasta para salvar o arquivo de download.
    • Baixe a atualização Credssp.
    • Instale a atualização.
    • Defina a chave de registro de vulnerabilidade para permitir que clientes não atualizados se conectem à VM.
    • Habilitar o Console Serial para mitigação futura e mais fácil.
    • Reinicie a VM.

Solução alternativa

Aviso

Depois de alterar a configuração a seguir, é permitida uma conexão não segura que expõe o servidor remoto a ataques. Siga as etapas nesta seção com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para restauração em caso de problemas.

Cenário 1: clientes atualizados não podem se comunicar com servidores não atualizados

O cenário mais comum é que o cliente tem a atualização CredSSP instalada, e a configuração da política de Correção de Criptografia Oracle não permite uma conexão RDP não segura com um servidor que não tenha a atualização CredSSP instalada.

Como solução alternativa a esse problema, execute as seguintes etapas:

  1. No cliente que tem a atualização CredSSP instalada, execute gpedit.msc e navegue até Configuração do Computador>Modelos Administrativos>Sistema>Delegação de Credenciais no painel de navegação.

  2. Altere a política de Correção de Criptografia Oracle para Habilitado e altere o Nível de Proteção para Vulnerável.

    Se você não puder usar gpedit.msc, será possível fazer a mesma alteração usando o registro, da seguinte maneira:

    1. Abra uma janela do Prompt de Comando como um administrador.

    2. Execute o seguinte comando para adicionar um valor de registro:

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

Cenário 2: clientes não atualizados não podem se comunicar com servidores com patch

Se a VM do Azure Windows tiver essa atualização instalada e ela estiver restrita ao recebimento de clientes não atualizados, siga estas etapas para alterar a configuração da política de Correção de Criptografia Oracle:

  1. Em qualquer computador Windows que tenha o PowerShell instalado, adicione o IP da VM à lista "confiável" no arquivo host:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. Vá para o portal do Azure, localize a VM e atualize o Grupo de Segurança de Rede para permitir as portas 5985 e 5986 do PowerShell.

  3. No computador Windows, conecte-se à VM usando o 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. Execute o seguinte comando para alterar a configuração da política de Correção de Criptografia Oracle usando o registro:

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

Scripts do Console Serial do Azure

Versão do SO Script
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1 #Criar um local de download
md c:\temp

##Download do arquivo 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)

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

#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f
Windows Server 2012
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS1 - Windows 10 versão 1607 / Windows Server 2016
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS2 - Windows 10 versão 1703
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS3 - Windows 10 versão 1709 / Windows Server 2016 versão 1709
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS4 - Windows 10 1803 / Windows Server 2016 versão 1803
#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

Scripts remotos do PowerShell

Versão do SO Script
Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

Windows Server 2012
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS1 - Windows 10 versão 1607 / Windows Server 2016
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS2 - Windows 10 versão 1703
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS3 - Windows 10 versão 1709 / Windows Server 2016 versão 1709
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

RS4 - Windows 10 1803 / Windows Server 2016 versão 1803
#Configurar suas variáveis:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #altere essa variável se você personalizar o HTTPS no PowerShell para outra porta


#Entre em sua assinatura
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Conecte-se ao PowerShell Remoto
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Criar um local de download
md c:\temp


##Download do arquivo 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)


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


#Adicionar a chave de vulnerabilidade para permitir clientes sem patch
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Configure sinalizadores de Console Serial do Azure
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


#Reiniciar a VM para concluir as instalações/configurações
shutdown /r /t 0 /f

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.