Hyper-V虚拟机具有PXE引导功能.显然,PXE启动
raises some security concerns.问题是,与典型的物理机固件不同,没有一种明显的方法可以完全禁用PXE启动.
Hyper-V管理器在Settings => Firmware => Boot Order中显示每个VM的网络适配器:
您可以将网络适配器移动到引导顺序的底部,但不能从该屏幕完全删除它.因此,如果出于某种原因,Hyper-V无法从任何其他驱动器启动,则VM仍会尝试PXE启动并显示此屏幕:
我已经搜索了Settings =>网络适配器以获得禁用PXE启动的方法无济于事.
所以我的问题是:
>如何在Hyper-V VM中禁用PXE引导?
>如果无法禁用PXE启动,有充分的理由吗?
我正在使用Windows Server 2012 R2
使用Powershell从引导顺序中删除网络引导设备
您可以使用PowerShell从VM引导顺序中剥离网络引导类型.
提取当前引导顺序
使用Powershell,您可以使用此命令提取当前引导顺序:
$old_boot_order = Get-VMFirmware -VMName testvm -ComputerName MyHyperVHost ` | Select-Object -ExpandProperty BootOrder
如果你检查$old_boot_order你应该看到testvm的启动设备列表.像这样的东西:
剥离网络引导设备
您可以使用以下命令使用Network BootType从引导列表中剥离引导设备:
$new_boot_order = $old_boot_order | Where-Object { $_.BootType -ne "Network" }
检查$new_boot_order应该看起来像这样,没有更多的网络启动设备:
设置新引导顺序
要为VM设置新的引导顺序,请使用以下命令:
Set-VMFirmware -VMName testvm -ComputerName MyHyperVHost -BootOrder $new_boot_order
确认新引导顺序
要确认您所执行的操作,请再次使用该第一个Get-VMFirmware命令:
Get-VMFirmware -VMName testvm -ComputerName MyHyperVHost ` | Select-Object -ExpandProperty BootOrder
注意:如果同时使用PowerShell和Hyper-V管理器更改引导顺序,PowerShell可能会报告错误的(过时的)引导顺序.另见this technet thread.