答案 0 :(得分:1)
为此你需要设置下一个注册表项:
HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections = 0
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserAuthentication = (IsDlgButtonChecked() == BST_CHECKED)
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\SecurityLayer = 0 or 1 or 2
如果未选择单选按钮,则只需设置
HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections = 1
您还需要通过下一个代码启用"@FirewallAPI.dll,-28752"
防火墙组:
HRESULT EnableFirewallRule(PCWSTR cgroup, VARIANT_BOOL enable)
{
if (BSTR group = SysAllocString(cgroup))
{
INetFwPolicy2* pNetFwPolicy2;
HRESULT hr = CoCreateInstance(__uuidof(NetFwPolicy2), 0, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pNetFwPolicy2));
if (!FAILED(hr))
{
hr = pNetFwPolicy2->EnableRuleGroup(NET_FW_PROFILE2_ALL, group, enable);
pNetFwPolicy2->Release();
}
SysFreeString(group);
return hr;
}
else return E_OUTOFMEMORY;
}
EnableFirewallRule(L"@FirewallAPI.dll,-28752", VARIANT_TRUE);
是的,这没有正确记录。但是可以找到一些关于此的信息。
是仅从fDenyTSConnections
(0或1(!= 0))选择的单选按钮(允许远程连接到此计算机) - 您可以通过更改regedit中的值来测试它并重新打开System Properties/Remote
对话框
关于MSND的一些证据 - Using Remote Desktop
fDenyTSConnections 注册表值的值为0意味着 远程桌面在系统上启用,值为1表示 远程桌面已禁用。如果您以后决定要禁用 在Server Core安装上的远程桌面,键入cscript %windir%\ system32 \ scregedit.wsf / ar 1在命令提示符下。
UserAuthentication
- [0或1]控制网络级身份验证复选框(1个已选中,0 - 未选中)(您可以再次更改注册表中的值和重新打开System Properties/Remote
对话框 - 或选中/取消选中此框并在注册表中查看)
在“属性”窗格中,单击右侧的框 UserAuthentication 设置并输入1以要求网络级别身份验证,如下所示。
SecurityLayer - [0或1或2] - 查看Table 6-1 The SecurityLayer Setting Values
和防火墙的最后一个(这是从vista开始)
在“属性”窗格中,键入C:\ Windows \ system32 \ netsh advfirewall -firewall set rule group =" Remote Desktop" new enable = yes
所以我们需要启用规则组="远程桌面"
现在查看此technet.microsoft.com
link
例如,要启用远程桌面,请使用以下命令:
<Group>@FirewallAPI.dll,-28752</Group>
MSDN上如何存在Enabling a Group示例。我的代码snipet基于这个