Как временное решение помогло удаление обновления KB5094128 и полное удаление КриптоПро.
После этого была установлена последняя версия КриптоПро, и по новой установлены обновления.
Если проблема вернулась пробуем пересоздание сертификата RDP.
В PowerShell, запущенном от имени администратора, последовательно выполняем следующие команды:
Stop-Service termservice -Force
Rename-Item "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" "MachineKeys_bak"
Remove-Item "HKLM:\SOFTWARE\Microsoft\SystemCertificates\Remote Desktop" -Recurse -Force
Remove-Item "Cert:\LocalMachine\Remote Desktop" -Recurse -Force -ErrorAction SilentlyContinue
$cert = New-SelfSignedCertificate `
-DnsName $env:COMPUTERNAME `
-CertStoreLocation "Cert:\LocalMachine\My" `
-KeyUsage DigitalSignature,KeyEncipherment `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-HashAlgorithm SHA256 `
-NotAfter (Get-Date).AddYears(2)
$thumbprint = $cert.Thumbprint
Write-Host "Thumbprint: $thumbprint"
$path = (Get-WmiObject `
-Class Win32_TSGeneralSetting `
-Namespace root\cimv2\TerminalServices `
-Filter "TerminalName='RDP-tcp'").__PATH
Set-WmiInstance -Path $path -Argument @{ SSLCertificateSHA1Hash = $thumbprint }
Start-Service termservice
# Восстановление сертификата RDP без переустановки роли RDS
Если RDP перестал принимать подключения, появляются ошибки аутентификации или проблемы с SSL, можно попробовать пересоздать сертификат удалённого рабочего стола. Данная процедура не затрагивает лицензии RDS и обычно выполняется безопаснее, чем пересоздание базы лицензирования.
## 1. Остановить службу удалённых рабочих столов
Запустите PowerShell от имени администратора и выполните:
```powershell
Stop-Service termservice -Force
```
## 2. Сбросить хранилище RSA-ключей
Переименуйте каталог с ключами:
```powershell
Rename-Item "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" "MachineKeys_bak"
```
Это позволит при необходимости вернуть всё обратно.
## 3. Удалить старый сертификат RDP
```powershell
Remove-Item "HKLM:\SOFTWARE\Microsoft\SystemCertificates\Remote Desktop" -Recurse -Force
Remove-Item "Cert:\LocalMachine\Remote Desktop" -Recurse -Force -ErrorAction SilentlyContinue
```
## 4. Запустить службу RDP
```powershell
Start-Service termservice
```
После запуска Windows обычно автоматически создаёт новый сертификат.
Проверить состояние службы можно командой:
```powershell
Get-Service termservice
```
## 5. Если сертификат не создался автоматически
Создайте новый самоподписанный сертификат:
```powershell
$cert = New-SelfSignedCertificate `
-DnsName $env:COMPUTERNAME `
-CertStoreLocation "Cert:\LocalMachine\My" `
-KeyUsage DigitalSignature,KeyEncipherment `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-HashAlgorithm SHA256 `
-NotAfter (Get-Date).AddYears(2)
$thumbprint = $cert.Thumbprint
```
Назначьте его службе RDP:
```powershell
$path = (Get-WmiObject `
-Class Win32_TSGeneralSetting `
-Namespace root\cimv2\TerminalServices `
-Filter "TerminalName='RDP-tcp'").__PATH
Set-WmiInstance -Path $path -Argument @{ SSLCertificateSHA1Hash = $thumbprint }
```
После этого перезапустите службу:
```powershell
Restart-Service termservice
```
## Важные замечания
* Все команды необходимо выполнять от имени администратора.
* После пересоздания сертификата клиент может показать предупреждение о новом сертификате — это нормальное поведение.
* Если сервер входит в домен, сертификат можно распространить через групповые политики.
* Лицензии RDS и база лицензирования при данной процедуре не затрагиваются.
* Если проблема возникла после установки КриптоПро или очередных обновлений Windows, рекомендуется временно удалить КриптоПро и проверить работу RDP до выполнения более сложных процедур.
#kb5094128 #ошибка0x4 #0x4 rdp