Rya*_*ger 59 ssl rdp remote-desktop-services windows-server-2012 windows-server-2016
所以 Windows Server 2012 的发布删除了很多旧的远程桌面相关的配置实用程序。特别是,没有更多的远程桌面会话主机配置实用程序可以让您访问 RDP-Tcp 属性对话框,让您配置自定义证书以供 RDSH 使用。取而代之的是一个不错的新统一 GUI,它是新服务器管理器中整体“编辑部署属性”工作流的一部分。问题是,如果您安装了远程桌面服务角色(据我所知),您只能访问该工作流。
这对微软来说似乎有点疏忽。当 Windows Server 2012 在默认远程管理模式下运行时,我们如何为 RDP 配置自定义 SSL 证书,而无需不必要地安装远程桌面服务角色?
Rya*_*ger 86
事实证明,RDSH 的大部分配置数据都存储在命名空间Win32_TSGeneralSetting中 WMI 中的类中root\cimv2\TerminalServices。为给定连接配置的证书由名为 的属性上的该证书的 Thumbprint 值引用SSLCertificateSHA1Hash。
更新:这是一个通用的 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"}
Run Code Online (Sandbox Code Playgroud)
为了获得指纹值
现在您有了指纹值,这里有一个单行代码,您可以使用 wmic 设置该值:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
Run Code Online (Sandbox Code Playgroud)
或者,如果 PowerShell 是你的东西,你可以使用它来代替:
$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
Run Code Online (Sandbox Code Playgroud)
注意:证书必须位于计算机帐户的“个人”证书存储中。
| 归档时间: |
|
| 查看次数: |
97159 次 |
| 最近记录: |