如何通过CLI命令检测系统管理程序是否处于活动状态?
我运行一个使用VirtualBox的基于流浪者的项目,有时我们会遇到的问题。
问题是,我们能够可靠地判断是否打开它的唯一方法是询问是否在Windows功能对话框中选中了Hyper-V。但是有些时候Hyper-V没有被检查,但是出现了一个管理程序,因为它是其他Windows特性所需要的
例如,在linux中使用,或者当虚拟机平台打开时,或者某些安全选项。
对于VirtualBox 5.2,这很容易,它将无法创建VM,但是对于VirtualBox 6,如果它存在,它就使用这个管理程序。
因此,无论是通过powershell还是通过命令行,我如何确定Windows管理程序是否存在并处于活动状态?
请注意,我没有测试Hyper-V产品是否是活动的,有可能出现关闭Hyper-V的管理程序。
发布于 2021-11-27 16:46:42
它可以通过WMI属性Win32_ComputerSystem.HypervisorPresent进行查询。在PowerShell中这将是
(Get-WmiObject Win32_ComputerSystem).HypervisorPresent或者使用gcim而不是Get-WmiObject。
我尝试用bcdedit /set {current} hypervisorlaunchtype Off和Auto重新启动Windows,它分别返回了False和True。
有趣的是,属性HypervisorPresent隐藏在Get-WmiObject Win32_ComputerSystem输出中。要查看隐藏字段,请调用其中之一:
gcim Win32_ComputerSystem | Format-List * -Force
gcim Win32_ComputerSystem | Format-Table * -Force资料来源:
发布于 2020-02-21 13:11:55
右键单击Start > Run > msinfo32
显示在初始视图窗格的底部(系统摘要)将读取一行“已检测到管理程序。将不显示Hyper-V所需的功能。”
https://stackoverflow.com/questions/56131938
复制相似问题