Назад | Перейти на главную страницу

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

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

ЦС для сертификата 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 в разделе «Локальный компьютер»> «Личный», но сообщение об ошибке осталось без изменений.

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

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

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

Попробуйте поместить буквы отпечатка пальца заглавными, а не строчными буквами. В 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.
  • Если вы используете блокнот в качестве буфера при попытке удалить пространство в отпечатке пальца, убедитесь, что у вас есть удалил ASCII символ в начале отпечатка пальца. Как указано в эта статья поддержки от MS.

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

На предыдущий ответ относящийся к этой теме, в одном из комментариев от кого-то утверждалось, что версия команды 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) в поле расширенного использования ключа, иначе вы получите эту ошибку.

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

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

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

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

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