我在C#代码中使用Powershell cmdlet与Hyper-V虚拟机进行交互。我专门在尝试获取虚拟机的引导顺序。我运行Get-Firmware命令没有问题,但似乎无法解析返回对象并获取所需的启动顺序信息。
private void Test()
{
using (Runspace runspace = RunspaceFactory.CreateRunspace())
{
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
Command command = new Command("Get-VMFirmware");
command.Parameters.Add("VMName", "MachineName");
pipeline.Commands.Add(command);
PSObject result = pipeline.Invoke().First();
var bootorder = result.Properties["BootOrder"].Value;
}
}
根据文档(以及当我查看result.Properties [“ BootOrder”]。Local值)时,我相信我的引导顺序变量应该是Microsoft.HyperV.PowerShell.VmBootObject [],但是我可以似乎找不到该名称空间,所以我不能这样转换它。因此,bootorder是类型对象,我无法从中获取任何信息。我在这里做什么错了?