Asp.net使用powershell管理hyper-v
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Management.Automation; using System.Management.Automation.Runspaces; using System.Collections.ObjectModel; using System.Text; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { RunspaceConfiguration rconfig = RunspaceConfiguration.Create(); PSSnapInException Pwarn = new PSSnapInException(); Runspace runspace = RunspaceFactory.CreateRunspace(); string test = "Import-Module VirtualMachineManager\r\n"; runspace = RunspaceFactory.CreateRunspace(rconfig); runspace.Open(); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.AddScript(test); try { var results = pipeline.Invoke(); using (Pipeline pipe = runspace.CreatePipeline()) { //Start-VM -name XXXXX
Command cmd = new Command("Start-VM"); cmd.Parameters.Add("Name", "test_machine2"); pipe.Commands.Add(cmd); var result = pipe.Invoke(); Label1.Text = results.ToString(); } } catch (Exception ex) { throw ex; Label1.Text = ex.ToString(); } } }