Ошибка при попытке восстановления RDP в Windows VM в Azure: исправление оракула шифрования CredSSP

В этой статье предоставляется решение проблемы, в которой невозможно подключиться к виртуальной машине (VM) с помощью RDP с ошибкой: исправление оракула шифрования CredSSP.

Оригинальная версия продукта:   Виртуальная машина под управлением Windows
Исходный номер КБ:   4295591

Симптомы

Рассмотрим следующий сценарий.

  • Обновления протокола службы поддержки безопасности учетных данных (CredSSP) для CVE-2018-0886 применяются к windows VM (удаленному серверу) в Microsoft Azure или на локальном клиенте.
  • Вы пытаетесь сделать удаленное подключение рабочего стола (RDP) к серверу от локального клиента.

В этом сценарии вы получите следующее сообщение об ошибке:

Произошла ошибка проверки подлинности. Запрашиваемая функция не поддерживается. Удаленный компьютер: <computer name or IP> . Это может быть связано с исправлением оракула шифрования CredSSP. Дополнительные сведения https://go.microsoft.com/fwlink/?linkid=866660 см. в .

Проверка установки обновления CredSSP

Проверьте историю обновления для следующих обновлений или проверьте версию TSpkg.dll.

Операционная система TSpkg.dll версии с обновлением CredSSP Обновление CredSSP
Windows 7 Пакет обновления 1 / Windows Server 2008 R2 Пакет обновления 1 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 - - -
- - Обновлено Клиенты force updated Смягчение Уязвимые
Клиент Обновлено Разрешено Заблокировано 2 Разрешено Разрешено
Клиенты force updated Заблокировано Разрешено Разрешено Разрешено
Смягчение Заблокировано 1 Разрешено Разрешено Разрешено
Уязвимые Разрешено Разрешено Разрешено Разрешено

Примеры

1 У клиента установлено обновление CredSSP, а исправление шифрования Oracle настроено на смягчение. Этот клиент не будет RDP на сервер, на который не установлено обновление CredSSP.

2 На сервере установлено обновление CredSSP, а исправление шифрования Oracle настроено на принудительное обновление клиентов. Сервер блокирует любое подключение RDP к клиентам, у них не установлено обновление CredSSP.

Разрешение

Чтобы устранить проблему, установите обновления CredSSP как для клиента, так и для сервера, чтобы обеспечить безопасность RDP. Дополнительные сведения см. в cVE-2018-0886 | Уязвимость credSSP для удаленного выполнения кода.

Установка этого обновления с помощью консоли Azure Serial

  1. Во входе на портал Azureвыберите виртуальную машину, а затем выберите виртуальный компьютер.

  2. Прокрутите вниз в раздел Поддержка и устранение неполадок, а затем нажмите кнопку Serial console (Preview). Для серийной консоли требуется включить специальную административную консоль (SAC) в Windows VM. Если вы не видите>SAC на консоли (как показано на следующем скриншоте), перейдите в раздел "Как установить это обновление с помощью раздела Remote PowerShell"в этой статье.

    Снимок экрана подключенного SAC

  3. cmdВведите, чтобы запустить канал с экземпляром CMD.

  4. ch-si 1Введите, чтобы перейти на канал, в который запущен экземпляр CMD. Вы получите следующий вывод:

    Снимок экрана запуска CMD в SAC

  5. Нажмите кнопку Ввод, а затем введите учетные данные входа с административным разрешением.

  6. После ввода допустимых учетных данных экземпляр CMD откроется, и вы увидите команду, в которой можно начать устранение неполадок.

    Снимок экрана раздела CMD в SAC

  7. Чтобы запустить экземпляр PowerShell, введите PowerShell .

  8. В экземпляре PowerShell запустите сценарий последовательной консоли на основе операционной системы VM. В этом скрипте выполняются следующие действия:

    • Создайте папку, в которой можно сохранить файл загрузки.
    • Скачайте обновление.
    • Установите обновление.
    • Добавьте ключ уязвимости, чтобы разрешить не обновляемой клиентской сети подключаться к VM.
    • Перезапуск VM

Установка этого обновления с помощью удаленной powerShell

  1. На любом компьютере на базе Windows, на который установлен PowerShell, добавьте IP-адрес VM в список "доверенных" в хост-файле следующим образом:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. На портале Azure настройте группы сетевой безопасности на VM, чтобы разрешить трафик в порт 5986.

  3. На портале Azure выберите виртуальную машину > < виртуальной >, прокрутите в раздел OPERATIONS, нажмите команду Run и запустите EnableRemotePS.

  4. На компьютере на базе Windows запустите сценарий Remote PowerShell для соответствующей системной версии вашего VM. В этом скрипте выполняются следующие действия:

    • Подключение к удаленной powerShell в VM.
    • Создайте папку, в которую можно сохранить файл загрузки.
    • Скачайте обновление Credssp.
    • Установите обновление.
    • Задайте ключ реестра уязвимостей, чтобы разрешить клиентам, не обновленным, подключаться к VM.
    • Включить серийную консоль для будущих и более простого смягчения.
    • Перезапустите VM.

Обходной путь

Предупреждение

После изменения следующего параметра допускается незасекреченное подключение, которое будет подвергать удаленный сервер атакам. Точно следуйте всем указаниям из этого раздела. Внесение неправильных изменений в реестр может привести к возникновению серьезных проблем. Прежде чем приступить к изменениям, создайте резервную копию реестра для восстановления на случай возникновения проблем.

Сценарий 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. Не обновленные клиенты не могут общаться с исправленными серверами

Если в Windows VM Azure установлено это обновление и оно ограничено получением не обновленных клиентов, выполните следующие действия, чтобы изменить параметр политики восстановления шифрования Oracle:

  1. На любом компьютере Windows, на который установлен PowerShell, добавьте IP-адрес VM в список "доверенных" в хост-файле:

    Set-item wsman:\localhost\Client\TrustedHosts -value <IP>
    
  2. Перейдите на портал Azure,найдите VM, а затем обнови группу сетевой безопасности, чтобы разрешить портам PowerShell 5985 и 5986.

  3. На компьютере Windows подключайтесь к VM с помощью 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

ВЕРСИЯ ОС Script
Windows 7 Пакет обновления 1 / Windows Server 2008 R2 Пакет обновления 1 #Create загрузки
md c:\temp

##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"

#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2

#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f
Windows Server 2012
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS1 — Windows 10 версии 1607 / Windows Server 2016
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS2 — Windows 10 версии 1703
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS3 — Windows 10 версии 1709 / Windows Server 2016 версии 1709
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS4 — Windows 10 1803 / Windows Server 2016 версии 1803
#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

Сценарии Удаленной PowerShell

ВЕРСИЯ ОС Script
Windows 7 Пакет обновления 1 / Windows Server 2008 R2 Пакет обновления 1
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows6.1-KB4103718-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

Windows Server 2012
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8-RT-KB4103730-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

Windows 8.1 / Windows Server 2012 R2
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows8.1-KB4103725-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS1 — Windows 10 версии 1607 / Windows Server 2016
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103723-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS2 — Windows 10 версии 1703
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103731-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS3 — Windows 10 версии 1709 / Windows Server 2016 версии 1709
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103727-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f

RS4 — Windows 10 1803 / Windows Server 2016 версии 1803
#Set переменной:
$subscriptionID = "<your subscription ID>"
$vmname = "<IP of your machine or FQDN>"
$PSPort = "5986" #change эту переменную, если настроить HTTPS на PowerShell в другой порт


#Log подписку
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionID $subscriptionID
Set-AzureRmContext -SubscriptionID $subscriptionID


#Connect удаленной powerShell
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
Enter-PSSession -ComputerName $vmname -port $PSPort -Credential (Get-Credential) -useSSL -SessionOption $Skip


#Create загрузки
md c:\temp


##Download файл 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 КБ
expand -F:* $destination C:\temp\
dism /ONLINE /add-package /packagepath:"c:\temp\Windows10.0-KB4103721-x64.cab"


#Add ключ уязвимости, чтобы разрешить неоплаченные клиенты
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2


#Set Флаги последовательной консоли 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


#Restart VM для завершения установок и параметров
shutdown /r /t 0 /f