MSTEPでHyper-V上のVMでHyper-Vの役割を有効にする方法を聞いたので、検証した結果を共有します。

Hyper-V上のVMでHyper-Vの役割を有効にすることができるのはWindows Server 2016から。
試しに何も設定していないWindows Server 2016のVMでHyper-Vの役割を追加しようとしたところ、以下のようなエラーになる。

1

VMを停止した状態でHyper-Vホストで以下のPowershellコマンドを実行する必要がある。

CPUの仮想化機能を有効にする
Set-VMProcessor -VMName <仮想マシン名> -ExposeVirtualizationExtensions $true

MACアドレスのスプーフィングを有効にする
Get-VMNetworkAdapter -VMName <仮想マシン名> | Set-VMNetworkAdapter -MacAddressSpoofing On

もう一度実行すると、Hyper-Vの役割が追加できた。

2

ただ上記のPowershellコマンドだとHyper-V管理ツールがインストールされないので、以下のPowershellコマンドの方が良かった。
Import-Module ServerManager
Add-WindowsFeature Hyper-V,Hyper-V-Tools,Hyper-V-Powershell