试图通过WMI通过Powershell调用V2名称空间来创建Hyper-V 2012 R2*第2代*虚拟机

试图通过WMI通过Powershell调用V2名称空间来创建Hyper-V 2012 R2*第2代*虚拟机,powershell,wmi,hyper-v,Powershell,Wmi,Hyper V,我正在尝试通过Powershell对V2名称空间的WMI调用创建Hyper-V 2012 R2第2代虚拟机 我知道Windows no在Powershell V3中内置了大量Hyper-V代码,但我也在做一些事情,所以需要自己编写 这似乎很简单 我调用defineSystem方法,获取VirtualSystemSettingData对象并设置: $VSSD.ElementName=$VM $VSSD.VirtualSystemSubtype="Microsoft:Hyper-V:SubType:

我正在尝试通过Powershell对V2名称空间的WMI调用创建Hyper-V 2012 R2第2代虚拟机

我知道Windows no在Powershell V3中内置了大量Hyper-V代码,但我也在做一些事情,所以需要自己编写

这似乎很简单

我调用defineSystem方法,获取VirtualSystemSettingData对象并设置:

$VSSD.ElementName=$VM
$VSSD.VirtualSystemSubtype="Microsoft:Hyper-V:SubType:2"
我认为调用ModifySystemSettings不会得到任何错误

如果我在提交之前读取了VirtualSystemsSubType,并且即使我可以验证该值,我似乎总是创建一个第1代VM,那么VirtualSystemsSubType确实会在对象中显示=“Microsoft:Hyper-V:SubType:2”。我肯定我在做傻事,但我看不出来

非常感谢

如果有人在这件事上发生(不太可能,因为我太傻了)

我试图在创建后修改Msvm_VirtualSystemSettingData对象,这对于名称等内容来说很好,但对于生成来说似乎不合适(我想这是有意义的)

生成Msvm_VirtualSystemSettingData的实例,然后将其传递给DefineSystem,包括所需的设置和生成等

修改系统设置可能会更好地处理这个问题,但我用了一种有趣的方式,现在我知道它是如何工作的了