我正在尝试编写一个Web界面,该界面将显示远程Hyper-V主机上的当前虚拟机。
到目前为止,我有这个
protected void getVMS(object sender, GridViewCommandEventArgs e)
{
//command to run
string cmdToRun = "get-vm -computername fsyovs02";
var shell = PowerShell.Create();
shell.Commands.AddScript(cmdToRun);
var results = shell.Invoke();
if (results.Count > 0)
{
var builder = new StringBuilder();
foreach (PSObject vm in results)
{
builder.Append(vm.BaseObject.ToString() + "\r\n");
}
ResultBox.Text = Server.HtmlEncode(builder.ToString());
}
}
这是回归的东西,但不是我想要的东西。对于每个VM,它返回行
Microsoft.HyperV.PowerShell.VirtualMachine
我想要的是通过powershell准确显示它是如何做的。
任何人都可以帮助我 - 因为我忘记了!
非常感谢 标记
答案 0 :(得分:0)
抱歉我不得不编辑我的答案,因为你无法从C#访问这些类型。然后,您应该使用PSObject上的Members集合来访问VirtualMachine的特定属性。请在您的情况下检查这种方法:
foreach (PSObject vm in results)
{
builder.Append(vm.Members["Name"].Value + "\r\n");
}