web-dev-qa-db-ja.com

wmic:リモートデスクトップの自己署名証明書の設定時のエラー

Windows Server 2012でリモートデスクトップ用に自己署名証明書を割り当てるというwmicアプローチを使用しようとしていますVM説明どおり ここ および ここ

RDP証明書のCAは[ローカルマシン]> [信頼されたルート証明機関]にインストールされ、RDP証明書自体は[ローカルマシン]> [リモートデスクトップ]にインストールされています。

インポートされたRDP証明書を使用するためにwmicコマンドを発行しようとすると、次のエラーが表示されます。

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証明書をインポートしようとしましたが、エラーメッセージは変わりません。

5
nhelder

同じ問題で3時間止まったが、問題の根本を発見した。私の場合、「無効なパラメーター」エラーの理由は、対応する秘密鍵なしで証明書を誤ってインポートしたことです

したがって、[全般]タブで証明書を開くと、最後の行にキーシンボルと "この証明書に対応する秘密キーがあります"というテキストが表示されていることを確認してください。 秘密鍵付きの証明書

証明書とキーをpfxファイルに結合するのは非常に簡単です。こちらをご覧ください https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/

6

サムプリントの文字を小文字ではなく大文字にしてみてください。 Server 2012 R2では、何らかの理由で、wmicコマンドのサムプリントで小文字を使用しません。 d8f87e2cff8fcc5789f53b5539fc12a0b5eecba8はD8F87E2CFF8FCC5789F53B5539FC12A0B5EECBA8である必要があります。

「本来あるべき姿」でサムプリントを取得する最も簡単な方法は、Powershellを開いて次のコマンドでサムプリントを取得することでした。

Get-Childitem Cert:\LocalMachine\My

ローカルマシンの証明書のサムプリントが表示され、スペースや大文字の大文字は含まれません。

とにかく、この記事をチェックしてください、それは本当に良いです: https://ryanmangansitblog.com/2013/03/10/configuring-rds-2012-certificates-and-sso/

5

チェックリストを要約しようとすると、これが発生する可能性がある多くの方法があります。

  • この答え で述べたように、管理者権限の下でpowershell /コマンドプロンプトを実行していることを確認します
  • 証明書秘密キー付きを必ずインポートしてください。チェック Dmitriyからの回答
  • 証明書をインポートしようとしているときに、Machine Account-> Personalにインポートしてください。 このブログ を参照してください。
  • 私はまだこの問題に直面していませんが、誰かが直面している可能性があるため、サムプリントをcapitalに変更します。 Erickからの回答 を確認してください。
  • 他の多くの人と同じ問題が発生している場合 ライアンが言ったように 、Powershellバージョンを実行します。
  • サムプリントのスペースを削除するときに、メモ帳を使用してバッファとして機能する場合は、サムプリントの先頭にASCIIを削除記号があることを確認してください。 MSによるこのサポート記事 から述べたように。

これがあなたの問題を解決できることを願っています:D

2
Ricardo

このトピックに関連する 前の回答 について、誰かからのコメントの1つは、コマンドの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
Ryan Bolger

証明書をコピーするとき、何らかの理由で最初に隠し文字があります。証明書のプロパティに移動するときは、非表示の文字なしで証明書をコピーしてください。コマンドの「無効なパラメーター」応答を見て、入力しようとした証明書を調べると、最初にボックス文字が表示されます。

0
Omar Damaj

使用している証明書のサーバー認証(1.3.6.1.5.5.7.3.1)が拡張キー使用法フィールドに設定されていることを確認してください。そうしないと、そのエラーが発生します。

自己署名ターミナルサービス証明書を作成してインストール

0
Legacoid

私にもこの問題があり、私をここに連れてきました。私の解決策は、拇印(スペースと特殊な先行文字を削除した後)が証明書の拇印を正確に反映していることを再確認することでした。末尾の数字が抜けていました。追加すると、「プロパティの更新が成功しました。頑張ってください。

0
jcarpio

上記のコマンドが期待どおりに機能していなかったことがわかりました。コマンドを手動で入力した後、それはうまくいきました、何が起こったのかわかりませんが、念のためここで私が使ったものです

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