Необходимо через утилиту PsExec выполнить удаленную установку пакета MSI. Сделать всё это нужно через консольное приложение C#. Вот моё решение:
srcstring psExecPath = @"C:\Program Files\Utility\64\PsExec.exe";
string arg = String.Join(" ", args);
var process = new Process()
{
StartInfo = new ProcessStartInfo(psExecPath, arg)
{
RedirectStandardError = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
}
};
Console.WriteLine("Starting process...");
process.Start();
process.WaitForExit(60000);
if (!process.HasExited)
{
process.Kill();
Console.WriteLine("Wait for exit: Time out");
return;
}
if (process.ExitCode != 0)
Console.WriteLine($"Error occurred during the execution PsExec. ErrorCode {process.ExitCode}");
Строка args содержит следующие агрументы: \\MACHINE-64 -u "INT\Administrator" -p "qwerty" msiexec /i "C:\Users\MyUser\Desktop\temp\Installer.msi" /qn
Если выполнить установку через PsExec в обычной cmd с данными аргументами, то установочник успешно срабатывает и устанавливается на удаленной машине. Но если запустить PsExec с аргументами через моё консольное приложение, то PsExec просто зависает в процессах и ничего не происходит.