[英]Hyper-V Get-VM in powershell via asp.net c#
I am trying to write a web interface that will show the current VMs on a remote Hyper-V host. 我试图编写一个Web界面,以显示远程Hyper-V主机上的当前VM。
So far, I have this 到目前为止,我有这个
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());
}
}
This is returning something, but not what I want. 这是返回的东西,但不是我想要的。 For each VM, it is returning the line 对于每个VM,它正在返回行
Microsoft.HyperV.PowerShell.VirtualMachine
What I want is it to display exactly how it does via powershell. 我想要的是通过powershell确切显示它的工作方式。
Can anyone help me please - as I am going out of my mind! 有人可以帮我吗-我快要疯了!
Many Thanks Mark 非常感谢马克
Sorry had to edit my answer as you cannot access those types from C#. 抱歉,由于您无法从C#访问这些类型,因此不得不编辑我的答案。 You should then use the Members collection on PSObject to access particular properties of the VirtualMachine. 然后,您应该使用PSObject上的Members集合来访问VirtualMachine的特定属性。 Please check this approach in your case: 请根据您的情况检查此方法:
foreach (PSObject vm in results)
{
builder.Append(vm.Members["Name"].Value + "\r\n");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.