wmic: ошибка при настройке самозаверяющего сертификата удаленного рабочего стола

Я пытаюсь использовать wmic-подход для назначения самозаверяющего сертификата для использования удаленного рабочего стола на виртуальной машине Windows Server 2012, как описано здесь и здесь.

CA для сертификата RDP был установлен в Локальный компьютер> Доверенные корневые центры сертификации, а сам сертификат RDP был установлен в Локальный компьютер> Удаленный рабочий стол.

Когда я пытаюсь выполнить команду wmic для использования импортированного сертификата RDP, я получаю следующую ошибку:

C:\Windows\system32> wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="3c7a7a78af9699b69182dff15329834113a518b3"
Updating property(s) of '\\SERVER\root\CIMV2\TerminalServices:Win32_TSGeneralSetting.TerminalName="RDP-Tcp"'
ERROR:
Description = Invalid parameter

... Я также попытался импортировать сертификат RDP в Локальный компьютер> Личный, но сообщение об ошибке остается без изменений.

8 ответов

Застрял с той же проблемой на 3 часа, но нашел корень проблемы. В моем случае причиной ошибки "Неверный параметр" было то, что я по ошибке импортировал сертификат без соответствующего закрытого ключа.

Поэтому убедитесь, что при открытии сертификата на вкладке "Общие" в последней строке вы видите символ ключа и текст "У вас есть закрытый ключ, соответствующий этому сертификату". Сертификат с закрытым ключом

Достаточно легко объединить сертификат и ключ в файл pfx. Посмотрите здесь https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/

Попробуйте поместить буквы thumprint заглавными буквами вместо строчных. В Server 2012 R2 по некоторым причинам он не принимает символы нижнего регистра в отпечатке для команды wmic, поэтому, например, d8f87e2cff8fcc5789f53b5539fc12a0b5eecba8 должно быть D8F87E2CFF8FCC5789F53B5539FC12A0B5EECBA8.

Самым простым способом получить отпечаток "как и должно быть" было открыть powershell и получить отпечаток с помощью следующей команды:

Get-Childitem Cert:\LocalMachine\My

Он отобразит отпечатки для сертификатов локального компьютера без пробелов и букв в заглавных буквах.

В любом случае, ознакомьтесь с этой статьей, это действительно хорошо: https://ryanmangansitblog.com/2013/03/10/configuring-rds-2012-certificates-and-sso/

Попытка суммировать контрольный список, потому что есть много способов, которыми это может произойти.

  • Убедитесь, что вы используете вашу PowerShell / командную строку в разделе " Административные привилегии", как указано в этом ответе.
  • Убедитесь, что вы импортируете сертификат с закрытым ключом. Проверьте ответ от Дмитрия
  • Убедитесь, что при попытке импортировать сертификат, импортируйте в учетную запись компьютера-> Личная. Пожалуйста, обратитесь к этому блогу.
  • Я еще не сталкивался с этой проблемой, но кто-то может поменять отпечаток на столицу. Проверьте ответ от Эрика.
  • Если у вас возникла та же проблема, что и у других людей, как сказал Райан, запустите ее версию Powershell.
  • Если вы используете блокнот в качестве буфера при попытке удалить место в отпечатке большого пальца, убедитесь, что вы удалили символ ASCII в начале отпечатка большого пальца. Как указано в этой статье поддержки MS.

Надеюсь, что это может решить вашу проблему:D

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

$TSGS = Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace "root\cimv2\terminalservices"
Set-WmiInstance -Path $TSGS -Arguments @{SSLCertificateSHA1Hash="4adcffbcf35ba044d93108ae2e2c51fa3c3fc983"}

В предыдущем ответе, связанном с этой темой, в одном из комментариев кто-то утверждал, что wmic-версия команды не работает для них на компьютере 2012 R2, но эквивалентная версия Powershell сработала. Вы можете попробовать это. Вот эквивалентная команда Powershell.

$path = (gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
swmi -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}

У меня тоже была эта проблема, которая привела меня сюда. Моим решением было перепроверить, что ваш отпечаток (после удаления пробелов и специального начального символа) точно соответствует отпечатку сертификата. Мне не хватало последней цифры; После добавления я получил "Свойство (я) обновление успешно. Удачи.

При копировании сертификата по какой-то причине в начале появляется скрытый символ. Обязательно скопируйте сертификат без скрытого символа при входе в свойства сертификата. Если вы посмотрите на ответ команды "неверный параметр" и посмотрите на сертификат, который вы пытались вставить, вы увидите символ коробки в начале.

Убедитесь, что для используемого вами сертификата в поле расширенного использования ключа установлено Аутентификация сервера (1.3.6.1.5.5.7.3.1), в противном случае вы получите эту ошибку.

Создайте самоподписанный сертификат служб терминалов и установите его

Другие вопросы по тегам