如何在Windows Server 2012中设置RDP的networking接口?

我有一个有多个networking接口的服务器,我需要RDP来监听其中的一个连接。 服务器不是远程桌面服务器,RDP仅用于远程pipe理

在Windows Server 2008 R2中,我可以使用Remote Desktop Session Host控制台进行configuration; 在Windows Server 2012中,该控制台不存在了。

我如何在WS2012中configuration?

远程桌面服务实际上有一个相当丰富的WMI对象库,您可以利用它来查询和操作configuration。 从Vista / 2008开始,它位于root \ cimv2 \ TerminalServices命名空间中。 以下是浏览可用内容的好地方: 远程桌面服务configuration类

关于你的具体问题,我只想澄清,RDP只能绑定到networking适配器,而不是特定的IP。 我知道你说的“networking接口”。 我只是想澄清其他谁可能会绊倒这个问题。 对于只有一个适配器和多个IP的机器,这是一个比较常见的要求。 如果这就是你正在寻找的,还有其他的ServerFault问题的答案更详细。 但是如果我记得正确的话,最好的办法就是使用内置的防火墙来限制连接。

具有你所需要的具体类叫做Win32_TSNetworkAdapterSetting 。 有三种与您可以使用的类关联的方法:

  • SelectAllNetworkAdapters
  • SelectNetworkAdapterIP
  • SetNetworkAdapterLanaID

根据我的经验,由于“所有networking适配器”选项, SetNetworkAdapterLanaIDSelectNetworkAdapterIP更可靠。 看起来,如果当前configuration为“所有networking适配器”,它将不会更改为您指定的IP的特定适配器,而只会保留在“所有networking适配器”上,这在技术上仍然是正确的。

所以你只剩下使用SetNetworkAdapterLanaID ,它需要一个整数ID值作为方法的参数。 所以这里是你如何find使用的ID。 首先得到一个类的实例的参考。 我的例子在这里将使用默认的terminal名称“RDP-Tcp”,但它可能(尽pipe不太可能)您的系统有额外的或不同的terminal名称。

您可以检查使用以下PowerShellconfiguration的networking适配器的当前状态:

 gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName='RDP-Tcp'" -namespace "root/cimv2/TerminalServices" | Select NetworkAdapterLanaID,NetworkAdapterName 

为了调用一个方法,把类的实例分配给一个variables是很好的,所以让我们这样做:

 $ts = gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName='RDP-Tcp'" -namespace "root/cimv2/TerminalServices" 

这个类的一个方便function是它返回的一些属性是可以使用的可能的networking适配器的列表。

 $ts | select -expand DeviceIDList $ts | select -expand NetworkAdapterList 

这应该返回两个列表。 第一个是基于0的ID列表,第二个是与第一个列表关联的适配器的友好名称。 所以在我的testing机器上,它返回:

 0 1 

 All network adapters configured with this protocol Intel(R) PRO/1000 MT Network Connection 

默认情况下,它被设置为ID 0,即“所有使用此协议configuration的networking适配器”。 因此,如果我们想要将其更改为明确使用Intel NIC,则只需使用我们现有的对象和关联的ID调用该方法即可。

 $ts.SetNetworkAdapterLanaID(1) 

然后,您可以通过重新查询对象来validation更改:

 gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName='RDP-Tcp'" -namespace "root/cimv2/TerminalServices" | Select NetworkAdapterLanaID,NetworkAdapterName 

据我所知, Remote Desktop Session Host已不再存在于Windows Server 2012中。

您可以在Server Manager --> Server Rolefind它的一些configuration

运行regedit

search键+仅匹配整个string:terminal服务器

 get lanatable. example: {564D81F9-15B4-42EC-9019-534A56DBEB81} {B5A5F6CC-5DFD-43F7-B5B0-20490A58A2EB} note LanaId for each of them set HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Winstations\RDP-tcp\LanAdapter HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Terminal Server\Winstations\RDP-tcp\LanAdapter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-tcp\LanAdapter to LandaID you want accept remote desktop connection