Ternyata banyak data konfigurasi untuk RDSH disimpan di Win32_TSGeneralSetting
kelas dalam WMI di root\cimv2\TerminalServices
namespace. Sertifikat yang dikonfigurasi untuk koneksi yang diberikan direferensikan oleh nilai sidik jari dari sertifikat itu pada properti yang dipanggil SSLCertificateSHA1Hash
.
PEMBARUAN: Berikut adalah solusi Powershell umum yang mengambil dan menetapkan cap jempol sertifikat SSL pertama di toko pribadi komputer. Jika sistem Anda memiliki beberapa sertifikat, Anda harus menambahkan -Filter
opsi pada gci
perintah untuk memastikan Anda merujuk sertifikat yang benar. Saya meninggalkan jawaban asli saya di bawah ini untuk referensi.
# 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"}
Untuk mendapatkan nilai cap jempol
- Buka dialog properti untuk sertifikat Anda dan pilih tab Detail
- Gulir ke bawah ke bidang Thumbprint dan salin string hex yang dibatasi ruang menjadi sesuatu seperti Notepad
- Hapus semua spasi dari string. Anda juga harus berhati-hati dan menghapus karakter non-ascii yang terkadang disalin tepat sebelum karakter pertama dalam string. Itu tidak terlihat di Notepad.
- Ini adalah nilai yang Anda perlu atur dalam WMI. Seharusnya terlihat seperti ini: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .
Sekarang Anda memiliki nilai cap jempol, berikut ini adalah satu-liner yang dapat Anda gunakan untuk mengatur nilai menggunakan wmic:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
Atau jika PowerShell adalah pilihan Anda, Anda dapat menggunakan ini sebagai gantinya:
$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
Catatan: sertifikat harus di Toko Sertifikat 'Pribadi' untuk akun Komputer.