Windows10のHyper-VでNAT接続な仮想マシンに対して外部マシンから接続したい場合、PowerShellコマンドレットを使ってポートフォワードすることができます。
PowerShellコマンドレットによるポートフォワーディングの利点は、ホスト側でファイアウォールのルール変更が不要という点があります。
ここでは、PowerShellコマンドレットを使ってポートフォワードを設定する手順を紹介します。
Memo
ここで紹介している手順は、NATネットワークが作成されていることが前提となります。NATネットワークの作成方法はこちらをご覧ください。

Windows10のHyper-VでNATネットワークを設定する方法
ちょっとした検証・開発をするときに、一時的な環境として活躍するのが仮想化です。
ここではWindows10のHyper-Vで、NAT機...
手順
管理者権限でPowerShellを起動し、以降の手順を実施してください。
設定
外部マシンから、NATネットワーク上の仮想マシンで動いているTCP8080番ポートへアクセスするには、以下のコマンドを順に実行します。
- ホストのIPアドレスは192.168.1.1
- ホストの待受ポート番号はhttp(tcp/80)
- 仮想マシンのIPアドレスは192.168.2.2
- 仮想マシンの待受ポート番号はhttp(tcp/8080)
まず、Get-NetNatコマンドレットで現在設定しているNatネットワークの名前を調べます。
Get-NetNat
Name : WinNAT1
・・・以下省略
次にAdd-NetNatStaticMappingコマンドレットでポートフォワードの設定を行います。
Add-NetNatStaticMapping -NatName WinNAT1 -ExternalIPAddress 192.168.1.0/24 -InternalIPAddress 192.168.2.2 -ExternalPort 80 -Protocol TCP -InternalPort 8080
オプションスイッチ「-ExternalIPAddress」は、接続を受け付けるネットワークを指定します。ここでは、例としてローカルネットワークからの接続を受け付ける設定にします。
これで外部のマシンからブラウザで「http://192.168.1.1」へ接続してみてください。フォワーディングされていることが確認できます。
設定の確認
現在の設定状況を確認するには以下のコマンドレットを実行します。
Get-NetNatStaticMapping
設定の削除
設定を削除するには、以下のコマンドレットを実行します。
Remove-NetNatStaticMapping -NatName WinNat1
あとがき
同様の設定はnetshコマンドでも実現可能です。

Windows10のHyper-VでNAT接続の仮想マシンにポートフォワーディングする方法(netsh版)
Windows10のHyper-Vで、NAT接続な仮想マシンに対して外部マシンから接続したい場合、netshコマンドを使って簡単にポート...
Windows10バージョン1709でHyper-Vに追加された「既定のスイッチ(NAT機能搭載)」を利用している場合は、netshコマンドで設定するのがよさそうです。