public static IEnumerable<string> ExecutePowershellCommand(this Robot robot, string command) { var host = new MMBotHost(robot); using (var runspace = RunspaceFactory.CreateRunspace(host)) { runspace.Open(); using (var invoker = new RunspaceInvoke(runspace)) { Collection<PSObject> psObjects = new Collection<PSObject>(); try { IList errors; psObjects = invoker.Invoke(command, null, out errors); if (errors.Count > 0) { string errorString = string.Empty; foreach (var error in errors) errorString += error.ToString(); psObjects.Add(new PSObject(errorString)); } } catch (Exception ex) { psObjects.Add(new PSObject(ex.Message)); } foreach (var psObject in psObjects) { yield return psObject.ConvertToString(); } } } }
public static IEnumerable <string> ExecutePowershellModule(this Robot robot, string moduleCommand) { var scriptFolder = robot.GetConfigVariable("MMBOT_POWERSHELL_SCRIPTSPATH"); var commandArgs = moduleCommand.Split(' '); var scriptName = commandArgs[0]; var parameters = string.Empty; for (int i = 1; i < commandArgs.Length; i++) { parameters += commandArgs[i] + " "; } var scriptPath = Path.Combine(scriptFolder, scriptName + ".psm1"); if (!File.Exists(scriptPath)) { yield return("Command not found"); } else { var host = new MMBotHost(robot); using (var runspace = RunspaceFactory.CreateRunspace(host)) { runspace.Open(); using (var invoker = new RunspaceInvoke(runspace)) { Collection <PSObject> psObjects = new Collection <PSObject>(); invoker.Invoke(string.Format("Import-Module {0}", scriptPath)); try { IList errors; psObjects = invoker.Invoke(string.Format("{0} {1}", scriptName, parameters), null, out errors); if (errors.Count > 0) { string errorString = string.Empty; foreach (var error in errors) { errorString += error.ToString(); } psObjects.Add(new PSObject(errorString)); } } catch (Exception ex) { psObjects.Add(new PSObject(ex.Message)); } foreach (var psObject in psObjects) { yield return(psObject.ConvertToString()); } } } } }
public static IEnumerable <string> ExecutePowershellCommand(this Robot robot, string command) { var host = new MMBotHost(robot); using (var runspace = RunspaceFactory.CreateRunspace(host)) { runspace.Open(); using (var invoker = new RunspaceInvoke(runspace)) { Collection <PSObject> psObjects = new Collection <PSObject>(); try { IList errors; psObjects = invoker.Invoke(command, null, out errors); if (errors.Count > 0) { string errorString = string.Empty; foreach (var error in errors) { errorString += error.ToString(); } psObjects.Add(new PSObject(errorString)); } } catch (Exception ex) { psObjects.Add(new PSObject(ex.Message)); } foreach (var psObject in psObjects) { yield return(psObject.ConvertToString()); } } } }
public static IEnumerable<string> ExecutePowershellModule(this Robot robot, string moduleCommand) { var scriptFolder = robot.GetConfigVariable("MMBOT_POWERSHELL_SCRIPTSPATH"); var commandArgs = moduleCommand.Split(' '); var scriptName = commandArgs[0]; var parameters = string.Empty; for (int i = 1; i < commandArgs.Length; i++) parameters += commandArgs[i] + " "; var scriptPath = Path.Combine(scriptFolder, scriptName + ".psm1"); if (!File.Exists(scriptPath)) { yield return "Command not found"; } else { var host = new MMBotHost(robot); using (var runspace = RunspaceFactory.CreateRunspace(host)) { runspace.Open(); using (var invoker = new RunspaceInvoke(runspace)) { Collection<PSObject> psObjects = new Collection<PSObject>(); invoker.Invoke(string.Format("Import-Module {0}", scriptPath)); try { IList errors; psObjects = invoker.Invoke(string.Format("{0} {1}", scriptName, parameters), null, out errors); if (errors.Count > 0) { string errorString = string.Empty; foreach (var error in errors) errorString += error.ToString(); psObjects.Add(new PSObject(errorString)); } } catch (Exception ex) { psObjects.Add(new PSObject(ex.Message)); } foreach (var psObject in psObjects) { yield return psObject.ConvertToString(); } } } } }