【问题标题】:What is the proper way to check if HyperV is running?检查 HyperV 是否正在运行的正确方法是什么?
【发布时间】:2020-07-31 12:27:50
【问题描述】:

我正在尝试编写一个 powershell 脚本来安装和设置 Hyper-V 机器。安装似乎没问题,但是,我从系统中得到了矛盾的响应。 基本上,我使用(gcim Win32_ComputerSystem).HypervisorPresent 来确定 HyperV 是否正在运行。

它返回 False

有一个具有相同成员 (gcim CIM_ComputerSystem).HypervisorPresent 的类似类也返回 False

还发现了这个问题How do you check to see if Hyper-V is enabled using PowerShell? 并且这个状态属性是Enabled

我错过了什么吗?这些查询不一样?您能否指出其中任何一个已被弃用? 我是不是完全被愚弄了,启用意味着系统能够运行HyperV,但实际上它并没有运行?

【问题讨论】:

    标签: powershell hyper-v hypervisor


    【解决方案1】:

    CIM 和 WMI 是一个漫长的故事,但简短的总结是,WMI 是由分布式管理任务组 DMTF 定义的 OMI 标准的 Microsoft 实现,旨在提出一个行业范围的标准。所以,当然,创建一个新标准会导致一堆不同的实现,它们基本上是他们自己的标准。

    但除此之外,CIM 和 WMI 可以被认为是 Windows 计算机通向相同信息的不同网关。同一个房子的不同门。 More on that history and the distinctions here.

    当我在装有 Hyper-V 的机器上运行您共享的 PowerShell 命令(其中任何一个)时,即使以标准非管理员用户身份运行,我也会得到 True 的回复。

    您还可以通过查看CIM_Processor 类来检查 BIOS 固件是否启用了虚拟化。

    (Get-CimInstance win32_processor).VirtualizationFirmwareEnabled
    True
    

    您还可以检查是否安装了 Windows 功能,但这并不能为您提供完整的画面(例如,如果 Windows 功能在应用于计算机的映像中启用,而没有在 BIOS 中启用虚拟化组件,该怎么办? .)

    [ADMIN] C:\>(Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State
    Enabled
    

    此外,该技术? 需要管理员权限。

    另一种方法,也许是最简单的检查方法是查看Hyper-V Computer Service 是否正在运行,这是任何 VM 启动所必需的,并且只有在机器上的其他所有操作都正确完成以启用 Hyper- 时才能运行五、

    Get-Service vmcompute
    
    Status   Name               DisplayName
    ------   ----               -----------
    Running  vmcompute          Hyper-V Host Compute Service
    

    我们曾经使用 MDT 任务序列部署服务器,并在此过程中启用 Hyper-V。它需要重新启动和运行特殊命令才能应用正确的 bios 设置。然后,我们可以启用 Windows 功能,但这些功能需要重新启动两次,因此处理大多数映像系统非常棘手。我们最后的“健全性检查”是 Hyper-V 计算服务是否正在运行。

    【讨论】:

    • 感谢您的详细解答!原来BIOS已经过时了。但是,在 BIOS 设置中启用了虚拟化,win32_processor.virtualization 返回 false。
    • 您必须先在 BIOS 中启用 Hyper-V 所需的功能,然后才能启用 Windows 功能。它被称为“单根 IO 虚拟化”(SR-IOV),有时也称为 Intel VT-xAMD-V。当这些被启用时(在 BIOS 中),这应该可以工作。
    猜你喜欢
    • 2011-06-19
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    相关资源
    最近更新 更多