Помилка "Ремедиація CredSSP шифрування Oracle" під час спроби доступу RDP до віртуальної машини Windows у Azure

Застосовується до: Virtual Machine running Windows

Ознаки


Розгляньмо такий сценарій.

У такому випадку відображається наведене нижче повідомлення про помилку. 

Перевірка встановлення оновлення CredSSP


Перевірте журнал оновлень на наступні оновлення або перевірте версію TSpkg.dll.

Операційна система Версія TSpkg.dll з оновленням CredSSP Оновлення CredSSP
Пакет оновлень 1 для Windows 7 і пакет оновлень 1 для Windows Server 2008 R2 6.1.7601.24117 Щомісячне зведене оновлення KB4103718
Оновлення лише системи безпеки KB4103712
Windows Server 2012; 6.2.9200.22432 KB4103730 (щомісячне зведене оновлення)
KB4103726 (оновлення лише системи безпеки)
Windows 8.1 / Windows Server 2012 R2 6.3.9600.18999 Щомісячне зведене оновлення KB4103725
KB4103715 (оновлення лише для системи безпеки)
RS1 - Windows 10 версія 1607 / Windows Server 2016 10.0.14393.2248 KB4103723
RS2 - Windows 10 версія 1703 10.0.15063.1088 KB4103731
RS3 - Windows 10, версія 1709 10.0.16299.431 KB4103727

Причина


Ця помилка виникає, якщо ви намагаєтеся встановити незахищене підключення до RDP, а незахищені підключення RDP заблоковано параметром політики Захист від атак Oracle, на сервері або клієнті. Цей параметр визначає, як створити сеанс RDP за допомогою CredSSP, і чи небезпечне RDP дозволено.

Зверніться до такої сумісності матриця для сценаріїв, які або вразливі для цього шкідливого коду або спричинили збої в роботі.

    Server
    Оновлено Примусово оновлені клієнти Пом'якшена Вразливі
Клієнт Оновлено Дозволено Заблокований2 Дозволено Дозволено
Примусово оновлені клієнти Заблоковано Дозволено Дозволено Дозволено
Пом'якшена Заблоковано1 Дозволено Дозволено Дозволено
Вразливі Дозволено Дозволено Дозволено Дозволено

Приклади
 

Клієнт має встановлене оновлення CredSSP, а Ремедиація шифрування Oracle встановлена на Пом'якшення ризиків. Цей клієнт не стане RDP на сервері, який не має встановленого оновлення CredSSP.

На сервері встановлено оновлення для CredSSP, а Захист від атак з оракулом встановлено на Примусове оновлення клієнтів. Сервер заблокує будь-які підключення RDP від клієнтів, які не мають інстальованого оновлення з CredSSP.

Спосіб вирішення


Щоб вирішити цю проблему, інсталюйте оновлення CredSSP для клієнта та сервера так, щоб RDP можна було встановити в безпечному режимі. Щоб отримати додаткові відомості див. CVE-2018-0886 | уразливість віддаленого виконання кодуCredSSP.

Як інсталювати це оновлення за допомогою послідовної консолі Azure

  1. Увійдіть на портал Azure, виберіть Віртуальну машинуі виберіть ВМ.
  2. Прокрутіть униз до розділу Підтримка + виправлення неполадок і натисніть кнопку Послідовна консоль (попередній перегляд)Для послідовної консолі потрібно ввімкнути спеціальну адміністративну консоль (SAC) у Windows VM. Якщо ви не бачите SAC > в консолі (як показано на цьому знімку екрана), перейдіть до розділу в цій статті "Як інсталювати оновлення за допомогою віддаленого PowerShell".

    Зображення SAC підключено

  1. Введіть, cmd щоб запустити канал, який має екземпляр CMD.
  2. Введіть, ch-si 1 щоб перейти до каналу, на якому запущено екземпляр cmd. З’явиться така підказка:

    Зображення запуску CMD у SAC
  3. Натисніть клавішу Enter, а потім введіть облікові дані для входу, які мають права адміністратора.
  4. Після введення дійсного адміністратора, екземпляр CMD відкриється, і ви побачите команду, на якій можна запустити виправлення неполадок.

    Зображення розділу CMD у SAC
  5. Щоб запустити приклад PowerShell, введітьPowerShell.
  6. У випадку PowerShell, запустіть  сценарій серійної консолі,, залежно від операційної системи віртуальної машини. Цей сценарій виконує такі дії: 
     
    • Створіть папку, в якій потрібно зберегти файл завантаження.
    • Завантажте оновлення.
    • Інсталюйте це оновлення.
    • Додайте ключ вразливості, щоб дозволити неоновленим клієнтам підключатися до віртуальної машини.
    • Перезапустіть віртуальну машину

Як інсталювати це оновлення за допомогою віддаленого PowerShell 

  1. На будь-якому комп'ютері під керуванням Windows, який має інстальований PowerShell, додайте IP-адресу віртуальної машини до списку "надійні" у файлі хоста, наступним чином:
    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
  2. На порталі Azure налаштуйте на ВМ групи безпеки Nework, щоб дозволити трафік на порт 5986.
  3. На порталі Azure виберіть свою ВМ Віртуальна машина, прокрутіть вниз до розділу ОПЕРАЦІЇ, клацніть Виконати команду та запустіть EnableRemotePS. 
  4. На комп'ютері під керуванням Windows запустіть віддалений сценарій PowerShell для відповідної версії системи віртуальної машини. Цей сценарій виконує такі дії:
    • Підключіться до віддаленого PowerShell на віртуальній машині.
    • Створіть папку, у якій збережіть файл завантаження.
    • Завантажте оновлення Credssp.
    • Інсталюйте це оновлення.
    • У розділі реєстру вразливості встановіть параметр, який дозволяє неоновленим клієнтам підключатися до віртуальної машини.
    • Увімкнути послідовну консоль для подальшого більш простого зниження ризиків.
    • Перезапустіть віртуальну машину.

Спосіб вирішення


Сценарій 1. Оновлені клієнти не можуть спілкуватися з неоновленими серверами

Найбільш поширений сценарій полягає в тому, що клієнт має оновлення для встановленого CredSSP, а параметр принципу Ремедиації шифрування Oracle не дозволяє незахищене RDP підключення до сервера, який не має оновлення для встановленого CredSSP.

Для усунення проблеми виконайте такі дії:

  1. Клієнтський комп'ютер має встановлене оновлення CredSSP,запустіть gpedit.mscі перейдіть до Конфігурація комп'ютера > Адміністративні шаблони > Система > Делегування облікових даних в області переходів. 
  2. Змініть Політику ремедиації шифрування Oracle для Ввімкнення, а потім змініть Рівень захисту на Вразливі.

Якщо ви не можете використовувати gpedit. msc, ви можете зробити ті ж зміни за допомогою реєстру, наступним чином:

  1. Запустіть командний рядок з правами адміністратора.
  2. Виконайте наступну команду, щоб додати значення реєстру:
    REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2


Ситуація 2. Неоновлені клієнти не можуть обмінюватися даними з серверами

Якщо у ВМ Azure Windows це оновлення інстальовано, і він обмежується отриманням не оновлених клієнтів, виконайте наведені нижче дії, щоб змінити параметру принципу Ремедиації шифрування оракул:

  1. На будь-якому комп'ютері з Windows, на якому інстальовано PowerShell, додайте IP-адресу віртуальної машини до списку "надійні" у файлі хоста:
    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
  2. Перейдіть до порталу Azure, знайдіть ВМ та оновіть Групу безпеки мережі, щоб дозволити порти PowerShell 5985 та 5986.
  3. На комп'ютері з Windows підключіться до віртуальної машини за допомогою PowerShell:
    Для HTTP:
    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5985" -Credential (Get-Credential) -SessionOption $Skip

    Для HTTPS:
    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<Public IP>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
  4. Запустіть наведену нижче команду, щоб змінити налаштування політики для Ремедиації шифрування Oracle за допомогою реєстру:
    Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters' -name "AllowEncryptionOracle" 2 -Type DWord

Сценарії послідовної консолі Azure


 

Версія операційної системи

Сценарій

Пакет оновлень 1 для Windows 7 і пакет оновлень 1 для Windows Server 2008 R2

#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, версія 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, версія 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 версії 1709/Windows Server 2016 версія 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 версія 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

Сценарії віддаленого PowerShell


 

Версія операційної системи

Сценарій

Пакет оновлень 1 для Windows 7 і пакет оновлень 1 для Windows Server 2008 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/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, версія 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, версія 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 версії 1709/Windows Server 2016 версія 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 версія 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