Estoy buscando ejecutar algunos scripts de PowerShell por medio de la automatización. Algo así como:Cómo ejecutar scripts de PowerShell a través de la automatización sin tener que ejecutar los problemas de Host
IList errors;
Collection<PSObject> res = null;
using (RunspaceInvoke rsi = new RunspaceInvoke())
{
try
{
res = rsi.Invoke(commandline, null, out errors);
}
catch (Exception ex)
{
LastErrorMessage = ex.ToString();
Debug.WriteLine(LastErrorMessage);
return 1;
}
}
el problema que estoy enfrentando es que si mi script usa cmdlets como write-host
lo anterior arroja una System.Management.Automation.CmdletInvocationException
-
No se puede invocar esta función porque el host actual no implementa it.
¿Cuáles son algunas buenas opciones para solucionar este problema?
Scott, estoy enfrentando el mismo problema. ¿Podría proporcionar alguna guía o código sobre cómo realizó la implementación? –
Bien, encontré la respuesta yo mismo: simplemente herede PSHost, PSHostUserInterface y PSHostRawUserInterface y haga que los métodos no hagan nada/devuelvan null. Para rastrear lo que normalmente sucedería, se podrían registrar mensajes/texto que de otro modo se imprimirían en la línea de cmd. –