/// <summary> /// Ejecuta un script de powershell /// </summary> private async Task ExecuteContentAsync(BlockLogModel block, string content, NormalizedDictionary <object> parameters, ExecuteScriptSentence sentence) { PowerShellManager manager = new PowerShellManager(); // Carga el script en memoria manager.LoadScript(content); // Asigna los parámetros if (!AddParameters(manager, parameters, sentence, out string error)) { Errors.Add(error); } else { // Ejecuta await manager.ExecuteAsync(); // Comprueba los errores if (manager.Errors.Count > 0) { Errors.AddRange(manager.Errors); } else if (manager.OutputItems.Count > 0) { foreach (object output in manager.OutputItems) { block.Info($"{manager.OutputItems.IndexOf(output).ToString()}: {output?.ToString()}"); } } } }
/// <summary> /// Ejecuta el script de powerShell /// </summary> private void ExecuteScript() { if (_processing) { MessageBox.Show("Ya se está ejecutando un script"); } else if (string.IsNullOrEmpty(txtEditor.Text)) { MessageBox.Show("Introduzca el texto del script"); } else { // Indica que está en ejecución _processing = true; // Carga el script _manager.LoadScript(txtEditor.Text); // y lo ejecuta _manager.Execute(EndExecute); } }