web-dev-qa-db-ja.com

Windows Server 2012でRDPのネットワークインターフェイスを設定する方法

複数のネットワークインターフェイスを備えたサーバーがあり、RDPでそのうちの1つの接続のみをリッスンする必要があります。 サーバーはリモートデスクトップサーバーではなく、RDPはリモート管理にのみ使用されます

Windows Server 2008 R2では、Remote Desktop Session Hostコンソールを使用してこれを構成できました。 Windows Server 2012では、そのコンソールはもうありません。

WS2012でこれをどのように構成できますか?

2
Massimo

リモートデスクトップサービスには、非常に豊富なWMIオブジェクトライブラリがあり、構成のクエリと操作に利用できます。 Vista/2008以降、root\cimv2\TerminalServices名前空間にあります。利用可能なものの閲覧を開始するのに最適な場所は次のとおりです。 リモートデスクトップサービス構成クラス

特定の質問に関して、RDPは特定のIPではなくネットワークアダプターにのみバインドできることを明確にしたいと思います。あなたが「ネットワークインターフェース」と言ったのは知っています。この質問に出くわす可能性のある他の人たちを明確にしたかっただけです。これは、1つのアダプターと複数のIPしか持たないマシンでのやや一般的な要求です。それがあなたが探しているものである場合、より詳細な回答を含む他のServerFault質問があります。しかし、私が正しく思い出した場合、最善の策は、組み込みのファイアウォールを使用して接続を制限することです。

必要なものがある特定のクラスは Win32_TSNetworkAdapterSetting と呼ばれます。使用できるクラスに関連付けられた3つのメソッドがあります。

私の経験では、SetNetworkAdapterLanaIDSelectNetworkAdapterIPよりも信頼性が高いため、すべてのネットワークアダプター」オプション。現在「すべてのネットワークアダプター」に設定されている場合、指定したIPを持つ特定のアダプターに変更されず、技術的にはまだ正しい「すべてのネットワークアダプター」に保持されるようです。

したがって、SetNetworkAdapterLanaIDを使用することで、メソッドの引数として整数ID値が必要になります。これが、使用するIDを見つける方法です。まず、クラスのインスタンスへの参照を取得します。ここでの例では、「RDP-Tcp」というデフォルトの端末名を使用しますが、システムに追加または異なる端末名が含まれている可能性があります(可能性は低いですが)。

次のPowerShellを使用して、構成されているネットワークアダプターの現在のステータスを確認できます。

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

メソッドを呼び出すには、クラスのインスタンスを変数に割り当てるのがいいので、それを実行しましょう。

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

このクラスの便利な機能は、返されるプロパティのいくつかが、使用可能なネットワークアダプターのリストであることです。

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

これにより、2つのリストが返されます。 1つ目はIDの0ベースのリストで、2つ目は最初のリストに関連付けられたアダプターのフレンドリ名です。だから私のテストマシンでは、それは戻ってきました:

0
1

そして

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

DeviceIDプロパティのIDをNetworkAdapterListのIDに関連付けるには、次のようにします。

$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

デフォルトでは、「このプロトコルで構成されたすべてのネットワークアダプター」であるID 0を使用するように設定されています。したがって、Intel NICを明示的に使用するように変更したい場合は、既存のオブジェクトと関連するIDを使用してメソッドを呼び出す必要があります。

$ts.SetNetworkAdapterLanaID(1)

次に、オブジェクトを再クエリして変更を確認できます。

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

regeditを実行する

検索キー+文字列全体にのみ一致:ターミナルサーバー

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
1
hidenmagic

私の知る限り、Remote Desktop Session HostはWindows Server 2012には存在しません。

いくつかの設定はServer Manager --> Server Roleにあります

0
cuonglm