如何检查Hyper-V计算机是Windows还是Linux?

如何检查Hyper-V计算机是Windows还是Linux?,windows,powershell,wmi,hyper-v,Windows,Powershell,Wmi,Hyper V,我正在构建一个表,其中包含我电脑上的Hyper-V机器的信息 我从Powershell命令中获得了大部分信息,即使用 Get-VM | Where {$_.Id –eq '" + vm["Name"].ToString() + "'} | fl * 和Msvm\u计算机系统查询 我可以使用我自己的操作系统 Get-CimInstance Win32_OperatingSystem | Format-List Caption 但我如何才能获得Hyper-V虚拟机操作系统(只要知道它是Windo

我正在构建一个表,其中包含我电脑上的Hyper-V机器的信息

我从Powershell命令中获得了大部分信息,即使用

Get-VM | Where {$_.Id –eq '" + vm["Name"].ToString() + "'} | fl *
Msvm\u计算机系统
查询

我可以使用我自己的操作系统

Get-CimInstance Win32_OperatingSystem | Format-List Caption
但我如何才能获得Hyper-V虚拟机操作系统(只要知道它是Windows还是Linux就足够了)

更新


我尝试过安装不同的Windows和Linux发行版(XP、Vista、Debian、Mint和Sparky),然后检查Hyper-V VMCX文件,寻找其中的某种模式,但也找不到。此外,很难浏览笔记本上所有的“胡言乱语”。它确实有一堆信息,可能就藏在那里的某个地方,有人知道如何正确读取这些文件吗?可能是解决问题的一种方法。

Hyper-V知道虚拟机是Windows还是Linux吗?我手头没有安装程序,但我看不到浏览文档的选项,在我手头的一些旧VM配置文件中也找不到字符串“Linux”。我记得VMWare会问你在虚拟机上安装了什么操作系统,这至少会影响虚拟设备集,但Hyper-V也会这样做吗?我认为Hyper-V没有这个功能,VirtualBox一开始还会问你操作系统是什么,它在列表上是可见的,但Hyper-V没有,而且在显示它的设置中似乎也没有任何属性,这就是为什么我不知道从哪里获取/查找它。我会检查Windows和Linux虚拟机的硬件设备列表,看看是否有任何明显不同的地方可以使用-我猜PowerShell可以枚举虚拟机中的虚拟硬件?除此之外,如果虚拟机启动,您可以尝试ping它们并检查TTL值(Windows总是使用64进行直接ping,Linux 256),或者如果您可以读取VHDX的第一个扇区,您可以检查分区表并查看您的分区类型,这在Linux和Windows之间会有所不同。我甚至不能ping,因为我真的不知道如何使用Hyper-V上的网络适配器。VirtualBox非常容易使用,但遗憾的是,我必须让这些功能仅适用于Hyper-V机器。