Powershell 检查HyperV是否正在运行的正确方法是什么?

Powershell 检查HyperV是否正在运行的正确方法是什么?,powershell,hyper-v,hypervisor,Powershell,Hyper V,Hypervisor,我正在尝试编写powershell脚本来安装和设置Hyper-V机器。安装似乎还可以,但是,我从系统中得到了矛盾的响应。 基本上,我使用gcim Win32_ComputerSystem.hypersorPresent来确定HyperV是否正在运行 它返回False 有一个类似的类具有相同的成员gcim CIM_ComputerSystem.hypersorpresent也返回False 还发现此问题,并且此状态属性已启用 我错过什么了吗?这些查询不一样吗?你能指出其中是否有不推荐的? 我完全被

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

它返回False

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

还发现此问题,并且此状态属性已启用

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

CIM和WMI是一个很长的故事,但简短的总结是WMI是由分布式管理任务组DMTF定义的OMI标准的Microsoft实现,以制定行业标准。因此,当然,创建一个新标准会导致一系列不同的实现,这些实现基本上是他们自己的标准

但在其他方面,CIM和WMI可以被视为Windows计算机相同信息的不同网关。同一所房子的不同门

当我运行PowerShell命令时,您在我的机器上与Hyper-V present共享了这两个命令中的任何一个,即使是作为标准的非管理员用户运行,这两个命令都会恢复为真

您还可以通过查看CIM_处理器类来检查BIOS固件是否启用了虚拟化

您还可以检查Windows功能是否已安装,但这并不能提供完整的信息,例如,如果在应用于未在BIOS中启用虚拟化组件的计算机的映像中启用了Windows功能,会发生什么情况

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

此外,CIM和WMI技术是一个很长的故事,但简短的总结是WMI是由分布式管理任务组DMTF定义的OMI标准的Microsoft实现,以制定行业范围的标准。因此,当然,创建一个新标准会导致一系列不同的实现,这些实现基本上是他们自己的标准

但在其他方面,CIM和WMI可以被视为Windows计算机相同信息的不同网关。同一所房子的不同门

当我运行PowerShell命令时,您在我的机器上与Hyper-V present共享了这两个命令中的任何一个,即使是作为标准的非管理员用户运行,这两个命令都会恢复为真

您还可以通过查看CIM_处理器类来检查BIOS固件是否启用了虚拟化

您还可以检查Windows功能是否已安装,但这并不能提供完整的信息,例如,如果在应用于未在BIOS中启用虚拟化组件的计算机的映像中启用了Windows功能,会发生什么情况

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

还有,谢谢你的详细回答!原来BIOS已经过时了。但是,如果在BIOS设置中启用了虚拟化,则win32_processor.virtualization返回false。在启用Windows功能之前,必须先在BIOS中启用Hyper-V所需的功能。它被称为“单根IO虚拟化”、SR-IOV或有时是Intel VT-x或AMD-V。当这些在BIOS中启用时,应该可以工作。感谢您提供详细的答案!原来BIOS已经过时了。但是,如果在BIOS设置中启用了虚拟化,则win32_processor.virtualization返回false。在启用Windows功能之前,必须先在BIOS中启用Hyper-V所需的功能。它被称为“单根IO虚拟化”、SR-IOV或有时是Intel VT-x或AMD-V。当这些在BIOS中启用时,应该可以工作。