Nó chỉ ra rằng phần lớn dữ liệu cấu hình cho RDSH được lưu trữ trong Win32_TSGeneralSetting
lớp trong WMI trong root\cimv2\TerminalServices
không gian tên. Chứng chỉ được cấu hình cho một kết nối nhất định được tham chiếu bởi giá trị Thumbprint của chứng chỉ đó trên một thuộc tính được gọi SSLCertificateSHA1Hash
.
CẬP NHẬT: Đây là một giải pháp Powershell tổng quát, lấy và đặt dấu vân tay của chứng chỉ SSL đầu tiên trong cửa hàng cá nhân của máy tính. Nếu hệ thống của bạn có nhiều certs, bạn nên thêm một -Filter
tùy chọn cho gci
lệnh để đảm bảo bạn tham chiếu chứng chỉ chính xác. Tôi đã để lại câu trả lời ban đầu của tôi nguyên vẹn bên dưới này để tham khảo.
# 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"}
Để có được giá trị vân tay
- Mở hộp thoại thuộc tính cho chứng chỉ của bạn và chọn tab Chi tiết
- Cuộn xuống trường Thumbprint và sao chép chuỗi hex được phân tách bằng dấu cách vào một cái gì đó như Notepad
- Xóa tất cả các khoảng trắng khỏi chuỗi. Bạn cũng sẽ muốn coi chừng và loại bỏ một ký tự không phải ascii đôi khi được sao chép ngay trước ký tự đầu tiên trong chuỗi. Nó không hiển thị trong Notepad.
- Đây là giá trị bạn cần đặt trong WMI. Nó sẽ trông giống như thế này: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .
Bây giờ bạn đã có giá trị vân tay, đây là một lớp lót bạn có thể sử dụng để đặt giá trị bằng wmic:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
Hoặc nếu PowerShell là thứ của bạn, bạn có thể sử dụng cái này thay thế:
$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
Lưu ý: chứng chỉ phải nằm trong Kho chứng chỉ 'Cá nhân' cho tài khoản Máy tính.