Sto cercando di eseguire alcuni script di PowerShell tramite l'automazione. Qualcosa di simile:Come eseguire gli script di PowerShell tramite l'automazione senza eseguire i problemi di 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;
}
}
il problema che sto affrontando è che se il mio script utilizza cmdlet quali write-host
quanto sopra genera un System.Management.Automation.CmdletInvocationException
-
non può invocare questa funzione perché l'host corrente non implementa it.
Quali sono alcune buone opzioni per aggirare questo problema?
Scott, sto affrontando lo stesso problema. Potresti fornire qualche guida o codice su come hai fatto l'implementazione? –
Ok, ho trovato la risposta da solo: eredita PSHost, PSHostUserInterface e PSHostRawUserInterface e i metodi non eseguono nulla/restituiscono null. Per rintracciare cosa accadrebbe normalmente, potrebbero essere registrati messaggi/testo che altrimenti verrebbero stampati sulla linea cmd. –