Como definir a interface de rede para o RDP no Windows Server 2012?

2

Eu tenho um servidor com várias interfaces de rede e preciso que o RDP apenas escute conexões em um deles; o servidor não é um servidor de área de trabalho remota, o RDP é usado apenas para administração remota .

No Windows Server 2008 R2, eu consegui configurar isso usando o Remote Desktop Session Host console; no Windows Server 2012, esse console não está mais lá.

Como posso configurar isso no WS2012?

    
por Massimo 08.05.2013 / 18:05

3 respostas

6

Os Serviços de Área de Trabalho Remota na verdade têm uma biblioteca de objetos WMI bastante rica da qual você pode tirar proveito para consultar e manipular a configuração. A partir do Vista / 2008, ele está localizado no namespace root \ cimv2 \ TerminalServices . Aqui está um bom lugar para começar a navegar o que está disponível: Classes de configuração de serviços de área de trabalho remota

Com relação à sua pergunta específica, gostaria apenas de esclarecer que o RDP só pode ser vinculado a um adaptador de rede, não a um IP específico. Eu sei que você disse "interface de rede". Eu só queria esclarecer para os outros que podem se deparar com essa questão. É um pedido comum em máquinas que possuem apenas um adaptador e vários IPs. Se é isso que você está procurando, existem outras perguntas do ServerFault com respostas mais detalhadas. Mas, se bem me lembro, sua melhor aposta é limitar as conexões usando o firewall embutido.

A classe específica que tem o que você precisa é chamada de Win32_TSNetworkAdapterSetting . Existem 3 métodos associados à classe que você pode usar:

Na minha experiência, SetNetworkAdapterLanaID é mais confiável do que SelectNetworkAdapterIP devido à opção "Todos os adaptadores de rede". Parece que, se estiver atualmente configurado para "Todos os adaptadores de rede", ele não será alterado para o adaptador específico com o IP que você especificar, apenas será mantido em "Todos os adaptadores de rede", o que tecnicamente ainda está correto.

Então, você fica com SetNetworkAdapterLanaID e requer um valor de ID inteiro como um argumento para o método. Então, aqui está como você encontra o ID para usar. Primeiro, obtenha uma referência à instância da classe. Meu exemplo aqui usará o nome do terminal padrão chamado "RDP-Tcp", mas é possível (embora improvável) que seus sistemas tenham nomes de terminal adicionais ou diferentes.

Você pode verificar o status atual de qual adaptador de rede está configurado com o seguinte PowerShell:

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

Para chamar um método, é bom ter a instância da classe atribuída a uma variável, então vamos fazer isso:

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

Um recurso útil desta classe é que algumas das propriedades que ele retorna são listas dos possíveis adaptadores de rede que você pode usar.

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

Isso deve retornar duas listas. A primeira é uma lista de IDs baseada em 0 e a segunda é o nome amigável dos adaptadores associados à primeira lista. Então, na minha máquina de teste, ele retornou:

0
1

e

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

Se você quiser correlacionar os IDs na propriedade DeviceID aos nomes deles no NetworkAdapterList , você pode fazer assim:

$adapters = $ts | select -expand NetworkAdapterList
$device_ids = $ts | select -expand DeviceIDList

$adapter_list = @()
foreach ($device_id in $device_ids) {
  $adapter_list += @{$device_id = $adapters[$device_id]}
}
$adapter_list # Mapping of device IDs to adapter names

Por padrão, ele está configurado para usar o ID 0, que é "Todos os adaptadores de rede configurados com este protocolo". Portanto, se quisermos alterá-lo para usar o Intel NIC explicitamente, basta chamar o método usando nosso objeto existente e o ID associado.

$ts.SetNetworkAdapterLanaID(1)

Você pode verificar a alteração ao consultar novamente o objeto:

gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName='RDP-Tcp'" -namespace "root/cimv2/TerminalServices" | Select NetworkAdapterLanaID,NetworkAdapterName
    
por 12.09.2014 / 00:41
0

Até onde eu sei, o Remote Desktop Session Host não existe mais no Windows Server 2012.

Você pode encontrar algumas configurações em Server Manager --> Server Role

    
por 08.05.2013 / 18:22
0

execute o regedit

chave de pesquisa + somente cadeia inteira de correspondência: Terminal Server

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
    
por 13.05.2016 / 12:35