je le programme PowerShell 5 suivant:PowerShell ne démarre pas l'emploi
$job = Start-Job -ScriptBlock {timeout.exe 10 /NOBREAK}
Wait-Job $job
Quand je le lance, il se termine immédiatement à la sortie suivante:
Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 1 Job1 BackgroundJob Completed True localhost timeout.exe 10 /NOBREAK
et timeout.exe
ne semble pas Gestionnaire des tâches. Pourquoi ne pas attendre 10 secondes avant de terminer?
Lorsque j'appelle timeout.exe 10 /NOBREAK
en dehors d'un travail, il attend 10 secondes, tout comme l'appel de Start-Sleep 10
dans un travail.
Je ne cherche pas une façon différente de résoudre le même problème (sommeil), mais spécifiquement pour une réponse à pourquoi ce programme se comporte comme il le fait.
'Invoke-Command -ScriptBlock {timeout.exe 10/NOBREAK}' – 4c74356b41
Je veux dire, 'Start-Job - ScriptBlock {Invoke-Command -ScriptBlock {timeout.exe 10/NOBREAK}} ' – 4c74356b41
vous pouvez utiliser Invoke-Command comme travail afin qu'il s'exécute en tant que tâche en arrière-plan et vous pouvez également le recevoir en utilisant _Receive-Job_ comme ceci: 'Invoke-Command -ScriptBlock {timeout.exe 10/NOBREAK} -AsJob' –