ปรากฎว่าข้อมูลการกำหนดค่าส่วนใหญ่สำหรับ RDSH ถูกเก็บไว้ในWin32_TSGeneralSetting
คลาสใน WMI ในroot\cimv2\TerminalServices
เนมสเปซ SSLCertificateSHA1Hash
ใบรับรองการกำหนดค่าสำหรับการเชื่อมต่อให้มีการอ้างอิงจากค่ารหัสประจำตัวของใบรับรองที่เกี่ยวกับคุณสมบัติที่เรียกว่า
UPDATE:ต่อไปนี้เป็นโซลูชัน Powershell ทั่วไปที่คว้าและกำหนดรหัสประจำตัวของใบรับรอง SSL ตัวแรกในร้านส่วนตัวของคอมพิวเตอร์ หากระบบของคุณมีหลาย certs คุณควรเพิ่ม-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"}
เพื่อที่จะได้รับค่ารหัสประจำตัว
- เปิดกล่องโต้ตอบคุณสมบัติสำหรับใบรับรองของคุณและเลือกแท็บรายละเอียด
- เลื่อนลงไปที่ฟิลด์ Thumbprint และคัดลอกสตริง hex ที่คั่นด้วยช่องว่างลงในสิ่งที่ต้องการ Notepad
- ลบช่องว่างทั้งหมดออกจากสตริง นอกจากนี้คุณยังต้องระวังและลบอักขระที่ไม่ใช่ ASCII ซึ่งบางครั้งจะถูกคัดลอกก่อนอักขระตัวแรกในสตริง มันมองไม่เห็นใน Notepad
- นี่คือค่าที่คุณต้องตั้งค่าใน WMI ควรมีลักษณะบางอย่างเช่นนี้1ea1fd5b25b8c327be2c4e4852263efdb4d16af4
ตอนนี้คุณมีค่ารหัสประจำตัวแล้วต่อไปนี้เป็นหนึ่งซับที่คุณสามารถใช้เพื่อตั้งค่าโดยใช้ 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"}
หมายเหตุ:ใบรับรองจะต้องอยู่ในที่เก็บใบรับรอง 'ส่วนบุคคล' สำหรับบัญชีคอมพิวเตอร์