現在、Windows Server 2012 を搭載した物理サーバーがあり、Hyper-V マネージャーを使用して Windows 7 仮想マシンを実行しています。物理サーバーを経由せずに、Hyper-V マネージャーから仮想マシンを選択せずに、この特定の仮想マシンにアクセスするにはどうすればよいでしょうか。ポート転送でこれを行うことはできますか。できる場合、その方法を教えてください。
答え1
Hyper-V 仮想マシンは、プライベート仮想スイッチに接続されていない限り、Hyper-V ホストと直接の (ローカル) ネットワークを共有します。プライベート仮想スイッチに接続されている場合は、ホストから VM またはその逆に到達できません。
それ以外の場合は、外部または内部の仮想スイッチに接続されている場合、ホストと VM の両方がそのスイッチでそれぞれ 1 つの仮想ポートを使用し、物理ネットワーク インターフェイスを介して実際のゲートウェイに接続します。最初の仮想スイッチを作成するとすぐに、Windows は仮想アダプター ドライバーをインストールし、仮想スイッチングを可能にする仮想ネットワーク インターフェイスを介して Hyper-V ホストをゲートウェイに「透過的に」再接続します。
ここで覚えておくべきことは、内部/外部スイッチは仮想的であるにもかかわらず、通常の MAC スイッチと同じように動作し、MAC アドレスに基づいてイーサネット フレームを切り替えるだけであるということです。つまり、仮想マシンはゲートウェイからはホストの兄弟である物理マシンのように見えます。したがって、通常、ホストには IP アドレスとして 192.168.1.10 などが割り当てられ、VM には 192.168.1.11 などが割り当てられます。
リモート デスクトップ クライアントを使用して 192.168.1.11 に接続することで VM に到達します。これは、192.168.1.11 が物理ワークステーションである場合と何ら変わりません。
確認する必要があるのは、VM 上の [Windows] ファイアウォールが一般的な RDP ポート (3389) のトラフィックを許可しているかどうか、VM 上の Windows が RDP 接続を有効にして許可しているかどうか ([システムの詳細プロパティ] ダイアログを使用して確認)、VM がルーティング可能であるかどうか (通常はルーティング可能であるはずです) です。最も一般的な落とし穴は、VM で RDP が無効になっていることと、ファイアウォール ポリシーが制限的であることです。
また、ローカル ネットワークに関する限り、VM には特別な点はなく、ホストと同様に単なるマシンであるということを覚えておいてください。
答え2
ここに挙げた答えはどれも満足できるものではありません。正しい答えは次のとおりです (恥ずかしげもなくここから盗用しました):https://thunderysteak.github.io/hyperv-direct-vm-rdp)
Hyper-V ホスト サーバーに移動し、次のように入力します。
get-vm -name <name of VM to control via RDP> | select-object id
次の内容を含む .rdp という名前のテキスト ファイルを作成します。
full address:s: (IP-address-of-your-Hyper-V-host-server)
pcb:s:(ID which you got in step 1)
server port:i:2179
negotiate security layer:i:0
手順 2 で作成した rdp ファイルをダブルクリックし、セキュリティ プロンプトを確認して、Hyper-V ホスト サーバーの管理者資格情報でログインします。
ヒント: これを使用すると、Windows 以外の VM やネットワーク接続のない VM もリモート制御できます。
答え3
リモート デスクトップを使用して VM ホストに接続し、VM ホストで Hyper-V マネージャーを実行していますか? ローカル マシンに Hyper-V マネージャーをインストールし、リモート サーバー (VM ホスト マシン) に接続することもできます。