Ich arbeite an einem Stück, wo ich eine Anwendung starten muss und diese Anwendung sollte im Hintergrund laufen. Ich habe versucht, Startprozess Cmdlets wie folgt:Powershell Start-Prozess startet nicht den Prozess auf Remote-Maschine
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
Was passiert ist, dass ich sehen kann, dass es einen cmd Prozess auf dem Zielcomputer startet, aber dann sofort, es geht weg. Ich bin mir nicht sicher, was ich hier tun soll, um diesen Prozess immer in Gang zu halten. Auf der anderen Seite versuchte ich auch Invoke-Expression Cmdlet und damit kann ich sehen, der Prozess hat gut auf dem Remote-Rechner gestartet, aber das Powershell-Skript kehrt nie zurück und deshalb Start-Prozess gedacht. Irgendwelche Vorschläge?
„Ich bin nicht sicher, was soll ich hier tun, diesen Prozess zu haben und läuft immer“ - ehh, installieren Sie es als Service sagte am entfernten Rechner? Wenn Sie Fehler beheben möchten, hängen Sie '*> C: \ output.log' an die Argument-Zeichenfolge an und überprüfen Sie die Protokolldatei auf dem Remote-Computer –
" C: \ vesper_cpt \ Vesper.exe "- Ist diese Datei auf dem lokalen oder Remote-Computer ? Sie können keine lokale ausführbare Datei auf dem Remote-Computer ausführen. – cezarypiatek
Ja, C: \ vesper_cpt \ Vesper.exe ist eine Datei auf dem Remote-Computer. Bitte beachten Sie, dass der obige Code nicht das vollständige Skript ist. Es erstellt zuerst eine Sitzung mit dem Remote-Computer und startet dann die Vesper.exe-Ausführung. Also, ich starte die Anwendung Vesper auf Remote-Maschine mit Powershell – rapport89