При запуске скрипта в Powershell я могу получить вывод Write-Host, но не в C#.
Вот код для вывода Write-Host "HELLO WORLD TEST."
сбой приложения при достижении этой строки:
Collection<PSObject> results = pipeline.Invoke()
;
Я получаю это сообщение об ошибке:
HostException: команда, которая запрашивает пользователя, произошла ошибка из-за программы хоста или типа команды не поддерживает взаимодействие с пользователем. Попробуйте хост-программу, которая поддерживает взаимодействие с пользователем, такую как Windows PowerShell Console или Windows PowerShell ISE, и удалите связанные с приглашением команды из типов команд, которые не поддерживают взаимодействие с пользователем, таких как Windows Рабочие процессы PowerShell
Как я могу вернуть вывод Write-Host? Заранее спасибо.
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
RunScript(@"C:\TestScript.ps1");
}
}
private string RunScript(string scriptText) {
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
Collection < PSObject > results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach(PSObject obj in results) {
//do something
}
return Textbox.Text;
}