У меня есть скрипт PowerShell, который выполняет некоторую логику. Если я запускаю этот скрипт с помощью PowerShell ISE, код работает нормально, и ошибки не генерируются. Если я запускаю тот же код, используя SSIS, который создает процесс Windows, который вызывает тот же сценарий, с теми же учетными данными, он завершается с кодом выхода -1073741819 и без каких-либо ошибок в процессе (p.StandardError пуст - проверьте код ниже).
Пример кода:
p = new Process();
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = <path_to_powershell.exe>;
p.StartInfo.Arguments = $"-NoProfile -NonInteractive -ExecutionPolicy Unrestricted -File \"<powershell_script_path>\"";
p.Start();
string stderr = p.StandardError.ReadToEnd();
string stdout = p.StandardOutput.ReadToEnd();
var processExited = p.WaitForExit(10800000);
int succ = (p.ExitCode != 0 || stderr.Length > 0 || !processExited) ? 0 : 1;
// Here it fails because p.ExitCode is not 0 but -1073741819
Этот же код отлично работает для нескольких других скриптов, но по какой-то причине он не работает для этого скрипта. Как я объяснил ранее, если я запускаю этот же скрипт вручную, он работает нормально.