2017-08-17 5 views
0

Voici le code:commande d'exécution à distance - Non, attendez

$remotelastexitcode = Invoke-Command -ComputerName $fdt_server -Credential $Cred -ScriptBlock { 
    Param($Rjava_path, $Rfdt_path, $Rfdt_log_folder, $Rfdt_log_filename) 

    Invoke-Expression -Command:"cmd.exe /c 'start /B $Rjava_path -jar $Rfdt_path -S 1>> $Rfdt_log_folder\$Rfdt_log_filename.txt 2>>&1 & exit 0'"; 

    $LASTEXITCODE 
} -ArgumentList $java_path, $fdt_path, $fdt_log_folder, $fdt_log_filename -ErrorAction Stop 

# Force the result to an array, and then test just the last line, which will be 
# the last exit code. Anything echoed before that will be ignored. 
if (@($remotelastexitcode)[-1] -ne 0) { 
    exit 1 
} 

Je voudrais invoquer

cmd.exe /c 'start /B $Rjava_path -jar $Rfdt_path -S 1>> $Rfdt_log_folder\$Rfdt_log_filename.txt 2>>&1' 

sur le serveur distant $fdt_server, mais pas à attendre qu'elle se termine. Fondamentalement, je veux juste l'exécuter et continuer.

Comment puis-je y parvenir? J'ai essayé d'utiliser -AsJob mais ne semble pas fonctionner.

+0

try start-process, cette commande a un paramètre d'attente. Je pense que quand vous ne l'utilisez pas, le script va continuer – guiwhatsthat

+0

@guiwhatsthat, j'ai essayé Start-Command, il a commencé le processus java momentanément dans l'ordinateur distant, puis fermé, et le script Powershell quitter sur l'ordinateur local. Je veux que Powershell se ferme mais que le processus Java s'exécute sur l'ordinateur distant après son lancement à distance via le script PS. J'ai également essayé d'utiliser Invoke-Command -Session, ne fonctionne pas non plus :( – iKnowNothing

Répondre