Azure'da Windows VM'ye RDP yapmaya çalıştığınızda "CredSSP şifreleme oracle düzeltmesi" hatası

Şunlar için geçerlidir: Azure

Belirtiler


Aşağıdaki senaryoyu inceleyin:

Bu senaryoda, aşağıdaki hata iletisini alırsınız: 

Güvenlik güncelleştirmesinin yüklü olup olmadığı nasıl doğrulanır


Aşağıdaki güncelleştirmelerin güncelleştirme geçmişini denetleyin veya TSpkg.dll sürümünü kontrol edin.

İşletim sistemi CredSSP güncelleştirmeli TSpkg.dll sürümü CredSSP güncelleştirmesi
Windows 7 Service Pack 1 veya Windows Server 2008 R2 Service Pack 1 6.1.7601.24117 KB4103718 (Aylık Toplama)
KB4103712 (Sadece güvenlik güncelleştirmesi)
Windows Server 2012 6.2.9200.22432 KB4103730 (Aylık Toplama)
KB4103726 (Yalnızca güvenlik güncellemesi)
Windows 8.1 / Windows Server 2012 R2 6.3.9600.18999 KB4103725 (Aylık Toplama)
KB4103715 (Yalnızca güvenlik güncellemesi)
RS1 - Windows 10 Sürüm 1607 / Windows Server 2016 10.0.14393.2248 KB4103723
RS2 - Windows 10 Sürüm 1703 10.0.15063.1088 KB4103731
RS3 - Windows 10 1709 10.0.16299.431 KB4103727

Neden


Bu hata, güvenli olmayan bir RDP bağlantısı kurmaya çalışıyorsanız ve güvenli olmayan RDP bağlantısı, sunucuda veya istemcide Şifreleme Oracle Düzeltme politika ayarları tarafından engellendiği zaman oluşur. Bu ayar, CredSSP'yi kullanarak bir RDP oturumu oluşturmak ve güvenli olmayan RDP'ye izin vermek veya engellemek için kullanılır.

Bu güvenlik açığına karşı savunmasız olan veya işletimsel arızalara neden olabilecek senaryolar için aşağıdaki birlikte çalışabilirlik matrisine bakın.

    Server
    Güncelleştirildi Güncellenen istemcileri zorla Hafifletilmiş Güvenlik Açığından Etkilenebilir
İstemci Güncelleştirildi İzin Verilir Engelli2 İzin Verilir İzin Verilir
Güncellenen istemcileri zorla Engellenir İzin Verilir İzin Verilir İzin Verilir
Hafifletilmiş Engelli1 İzin Verilir İzin Verilir İzin Verilir
Güvenlik Açığından Etkilenir İzin Verilir İzin Verilir İzin Verilir İzin Verilir

Örnekler
 

1 İstemci CredSSP güncelleştirmesi yüklü ve Şifreleme Oracle İyileştirme Hafifletilmiş olarak ayarlanmış. Bu istemci, CredSSP güncelleştirmesinin yüklü olmadığı bir sunucuya RDP yapmaz.

2 Sunucuya CredSSP güncelleştirmesi yüklenmiş ve Şifreleme Oracle Düzeltme, Güncelleştirilmiş istemcileri zorla olarak ayarlanmıştır. Sunucu, CredSSP güncelleştirmesinin yüklü olmadığı istemcilerden gelen tüm RDP bağlantılarını engeller.

Çözüm


Bu sorunu gidermek için, CredSSP güncelleştirmelerini hem istemci hem de sunucu için yükleyin; böylece RDP güvenli bir biçimde kurulabilir. Daha fazla bilgi için bkz. CVE-2018-0886 | CredSSP Uzaktan Kod Yürütme Güvenlik Açığı.

Azure Seri konsolunu kullanarak bu güncelleştirme nasıl yüklenir

  1. Azure portalında oturum açın, Sanal Makine'yi seçin ve ardından VM'yi seçin.
  2. Destek + Sorun Giderme bölümüne gidin ve sonra Seri Konsol (Önizleme) seçeneğine tıklayın. Seri konsolu, Windows VM'de etkinleştirilmek için Özel Yönetim Konsolu (SAC) gerektirir. Konsolda SAC> öğesini görmüyorsanız (aşağıdaki ekran görüntüsünde gösterildiği gibi), bu makalede yer alan "Uzaktan PowerShell kullanarak güncelleştirme nasıl yüklenir"bölümüne gidin.

    SAC hakkında resmi bağlı

  1. Tür cmd CMD örnekli bir kanal başlatmak için .
  2. Tür ch-si 1 CMD örneğini çalıştıran kanala geçiş yapmak. Aşağıdaki sonucu alıyorsunuz:

    Görüntüyü SAC CMD başlatma hakkında
  3. Enter tuşuna basın ve yönetici iznine sahip olan oturum açma bilgilerinizi girin.
  4. Geçerli kimlik bilgilerini girdikten sonra, CMD örneği açılır ve sorun giderme işleminin başlatma komutunu görürsünüz.

    SAC CMD bölümünde hakkında resim
  5. Bir PowerShell örneği başlatmak için, şunu yazınPowerShell.
  6. PowerShell örneğinde, Seri konsol komut dosyasını VM işletim sistemine göre çalıştırın. Komut dosyası şunları yapar: 
     
    • Karşıdan yüklenen dosyayı kaydetmek için bir klasör oluşturur.
    • Güncelleştirmeyi karşıdan yükleyin.
    • Güncelleştirmeyi kurun.
    • Güncel olmayan istemcilerin VM'ye bağlanmasına izin vermek için güvenlik açığı anahtarını ekleyin.
    • VM'yi yeniden başlatın

Bu güncelleştirmeyi Uzaktan PowerShell kullanarak yükleme 

  1. PowerShell yüklü olan Windows tabanlı bilgisayarlarda, VM'nin IP adresini ana bilgisayar dosyasındaki "güvenilenler" listesine ekleyin:
    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
  2. Azure portalında, 5986 numaralı bağlantı noktasından işlem yapılmasına izin vermek için VM'deki Ağ Güvenlik Gruplarını yapılandırın.
  3. Azure portalında, select Sanal Makineyi >seçin, <sizin VM>, OPERASYONLAR bölümüne gidin, Komutu çalıştır seçeneğine tıklayın ve ardından EnableRemotePS komutunu çalıştırın. 
  4. Windows tabanlı bilgisayarda, VM'nizin uygun sistem sürümü için Uzaktan PowerShellkomut dosyasını çalıştırın . Komut dosyası şunları yapar:
    • VM'de Uzaktan PowerShell'e bağlanın.
    • Karşıdan yüklenen dosyasının kaydedileceği klasörü oluşturun.
    • Credssp güncelleştirmesini karşıdan yükleyin.
    • Güncelleştirmeyi kurun.
    • Güvenlik açığı kayıt defteri anahtarını, güncel olmayan istemcilerin VM'ye bağlanmasına izin verecek şekilde ayarlayın.
    • Gelecekte ve daha kolay hafifletme için Seri Konsolu etkinleştirin.
    • VM'yi yeniden başlatın.

Geçici Çözüm


Senaryo 1: Güncelleştirilmiş istemciler güncel olmayan sunucularla iletişim kuramaz

En yaygın senaryo, istemcide CredSSP güncelleştirmesinin yüklü olması ve Şifreleme Oracle İyileştirme ilkesi ayarının CredSSP güncelleştirmesinin yüklü olmadığı bir sunucuya güvensiz bir RDP bağlantısına izin vermemesidir.

Bu soruna geçici bir çözüm bulmak için aşağıdaki adımları uygulayın:

  1. CredSSP güncelleştirmesinin yüklü olduğu istemcide gpedit.msc dosyasını çalıştırın ve sonra Bilgisayar Yapılandırması > Yönetim Şablonları > Sistem >Kimlik Bilgileri Temsilcisi'ne göz atın.  
  2. Şifreleme Oracle İyileştirme ilkesini Etkinolarak değiştirin ve ardından Koruma Düzeyi'ni Saldırıya Açıkolarak değiştirin.

gpedit.msc kullanamıyorsanız, aşağıdaki gibi kayıt defterini kullanarak aynı değişikliği yapabilirsiniz:

  1. Yönetici olarak bir Komut İstemi penceresi açın.
  2. Bir kayıt defteri değeri eklemek için aşağıdaki komutu çalıştırın:
    REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2


Senaryo 2: Güncel olmayan istemciler yama sunucularıyla iletişim kuramıyor

Azure Windows VM'de bu güncelleştirme yüklüyse ve güncel olmayan istemcileri eklemekte sorun yaşıyorsanız, Oracle Şifreleme İyileştirme ilkesini değiştirmek için aşağıdaki adımları izleyin:

  1. PowerShell yüklü olan herhangi bir Windows bilgisayarda, VM'nin IP adresini ana dosyadaki "güvenilenler" listesine ekleyin:
    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
  2. Azure portalınagidin, VM'yi bulun, ardından 5985 ve 5986 numaralı PowerShell bağlantı noktalarına izin vermek için Ağ Güvenliği grubunu güncelleştirin.
  3. Windows bilgisayarda PowerShell kullanarak VM'ye bağlanın:
    HTTP için:
    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5985" -Credential (Get-Credential) -SessionOption $Skip

    HTTPS için:
    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
  4. Oracle Şifreleme İyileştirme  ilkesi ayarlarını değiştirmek için kayıt defterini kullanarak şu komutu çalıştırın:
    Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters' -name "AllowEncryptionOracle" 2 -Type DWord

Azure Seri Konsolu komut dosyaları


 

OS Sürümü

Komut dosyası

Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

Windows Server 2012

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

RS1 - Windows 10 Sürüm 1607 / Windows Server 2016

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

RS2 - Windows 10 sürüm 1703

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

RS3 - Windows 10 sürüm 1709 / Windows Server 2016 sürüm 1709

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

RS4 - Windows 10 1803 / Windows Server 2016 sürüm 1803

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart the VM to complete the installations/settings
shutdown /r /t 0 /f

Uzaktan PowerShell komut dosyaları


 

OS Sürümü

Komut dosyası

Windows 7 Service Pack 1 / Windows Server 2008 R2 Service Pack 1

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

Windows Server 2012

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

RS1 - Windows 10 sürüm 1607 / Windows Server 2016

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

RS2 - Windows 10 sürüm 1703

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

RS3 - Windows 10 sürüm 1709 / Windows Server 2016 sürüm 1709

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f

RS4 - Windows 10 1803 / Windows Server 2016 sürüm 1803

#Set up your variables:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change this variable if you customize HTTPS on powershell to another port

#​​​​Log in to your subscription
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID

#Connect to Remote Powerwhell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip

#Create a download location
md c:\temp

##Download the KB file
$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 the KB
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"

#Add the vulnerability key to allow unpatched clients
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Set up Azure Serial Console flags
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 the VM to complete the installations/settings
shutdown /r /t 0 /f