Я работаю над частью, где мне нужно запустить приложение, и это приложение должно работать в фоновом режиме. Я попробовал Start-Process Командлет, как показано ниже:Пуск-процесс Powershell не запускает процесс на удаленном компьютере
try {
Invoke-Command -Session $newsession -Scriptblock {
Write-Host "Cd'ing and starting Vesper on" $loadvm
Start-Process cmd -ArgumentList "/c C:\vesper_cpt\Vesper.exe -auto" -verb runas
} -ErrorAction Stop
} catch [Exception] {
echo "Error while running the remote command", $_.Exception.GetType().FullName, $_.Exception.Message
Remove-PSSession $newsession
exit 1
}
Remove-PSSession $ newsession
Что происходит, что я могу видеть, что он запускает процесс CMD на целевой машине, но затем он сразу же уходит. Я не уверен, что мне делать, чтобы этот процесс работал и работал всегда. С другой стороны, я также попробовал командлет Invoke-Expression, и с этим я вижу, что процесс запущен на удаленной машине, но сценарий powershell никогда не возвращается, и поэтому подумал об использовании Start-Process. Какие-либо предложения?
«Я не уверен, что я должен сделать здесь, чтобы этот процесс и работает всегда» - эхй, установить его в качестве службы на указанном удаленную машину? Если вы хотите устранить неполадки, добавьте '*> C: \ output.log' в строку аргумента и просмотрите файл журнала на удаленном компьютере. –
« C: \ vesper_cpt \ Vesper.exe »- этот файл находится на локальной или удаленной машине ? Вы не можете запускать локальный исполняемый файл на удаленном компьютере. – cezarypiatek
Да, C: \ vesper_cpt \ Vesper.exe - это файл на удаленной машине. Обратите внимание, что приведенный выше код не является полным скриптом. Сначала он создает сеанс с удаленной машиной, а затем запускает выполнение Vesper.exe. Итак, я запускаю приложение Vesper на удаленной машине с помощью powershell – rapport89