Я создал консольное приложение (основано на .net core 2.1) для C #, вызывая скрипт Powershell, но получил значение NULL.Может кто-нибудь сказать мне, где / какой / Какой шаг является неправильным или пропущенным?
Ниже приведены подробности исключения:
Исключение
private static void Main(string[] args)
{ //.net core 2.1
string ScriptsText = @"C:\temp\getEvent.ps1";
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
PowerShell shell = PowerShell.Create();
shell.AddScript(ScriptsText);
shell.Runspace = runspace;
Collection<PSObject> psObjects = shell.Invoke();
//format the psobjects to string object
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in psObjects)
{
stringBuilder.AppendLine(obj.ToString());
}
runspace.Close();
Console.WriteLine(stringBuilder.ToString());
}
Переменная: psobjects должен содержать результат после вызова, но теперь показывает нулевое значение
Прикрепленное содержимое сценария powershell: C: \ temp \ getEvent.ps1:
$ result = Get-EventLog -LogNameСистема -Новая 5;return $ result
подготовленные различные сценарии PowerShell для целей тестирования
- часть командлета может работать правильно (см. скриншот ниже)
- часть командлета возвращаетсяnull при вызове C # (см. скриншот ниже)
Тот же код C # вызывает скрипт powershell, возвращает null
Тот же код C # вызывает скрипт powershell,return null
Тот же код C # вызывает скрипт powershell, возвращаемое значение
Тот же код C # вызывает скрипт powershell, возвращаемое значение