RDSHの構成データの多くはWin32_TSGeneralSetting
、root\cimv2\TerminalServices
名前空間のWMI のクラスに格納されていることがわかります。特定の接続に構成された証明書は、というプロパティのその証明書のThumb印値によって参照されSSLCertificateSHA1Hash
ます。
UPDATE:ここでは一般PowerShellのソリューションは、コンピュータの個人ストアに最初のSSL証明書のグラブとセット拇印ということです。システムに複数の証明書がある-Filter
場合は、gci
コマンドにオプションを追加して、正しい証明書を参照するようにしてください。参考のために、この下に元の回答をそのまま残しました。
# get a reference to the config instance
$tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"
# grab the thumbprint of the first SSL cert in the computer store
$thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint
# set the new thumbprint value
swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}
thumb印値を取得するには
- 証明書のプロパティダイアログを開き、[詳細]タブを選択します
- print印フィールドまでスクロールし、スペースで区切られた16進文字列をメモ帳などにコピーします。
- 文字列からすべてのスペースを削除します。また、文字列の最初の文字の直前にコピーされることがある非ASCII文字を注意して削除する必要があります。メモ帳には表示されません。
- これは、WMIで設定する必要がある値です。1ea1fd5b25b8c327be2c4e4852263efdb4d16af4のようになります。
thumb印の値を取得したので、次の1行で、wmicを使用して値を設定できます。
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
または、PowerShellがあなたのものであれば、代わりにこれを使用できます:
$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
注:証明書は、コンピューターアカウントの「個人用」証明書ストアに存在する必要があります。