Introduction

Hyper-Vの仮想ネットワークの調子が悪いので、一度環境をリセットしようと、WinNAT を削除しようとしたら

1
2
3
4
5
6
7
8
9
10
11
12
> Remove-NetNat WinNAT

確認
この操作を実行しますか?
対象 WinNAT の PolicyStore Local に対して操作 Delete を実行しています
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): A
Remove-NetNat : 要求された操作がサポートされていません。
発生場所 行:1 文字:1
+ Remove-NetNat WinNAT
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (MSFT_NetNat (InstanceID = "WinNAT;0"):root/StandardCimv2/MSFT_NetNat) [Remove-NetNat]、CimException
+ FullyQualifiedErrorId : Windows System Error 50,Remove-NetNat

削除できない…

Resolution

下記ブログ記事のコメントで削除の仕方が書いてあります。

Set up a Hyper-V Virtual Switch using a NAT Network

特定のレジストリキーを削除すればOKとのこと。
削除するキーは

1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a20-9b1a-11d4-9123-0050047759bc}\6

削除前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> Get-NetNat


Name : WinNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 10.100.0.0/16
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : False

削除後

1
> Get-NetNat

何も表示されなくなりました。

再作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> New-NeTNat -Name "WinNAT" -InternalIPInterfaceAddressPrefix 10.100.0.0/16


Name : WinNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 10.100.0.0/16
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : True

Active が True になっています。

なお、WinNATを削除すると Get-NetNatStaticMapping で取得できるマッピング一覧がクリアされるため、再度設定が必要