Benutzer mit den meisten Antworten
Automatischer Neustart eines Background Jobs

Frage
-
Guten Tag!
Ich habe einen Background Job der folgendermassen aussieht:
$targets = "firefox","outlook"
foreach ($target in $targets)
{
Start-Job -name $target -ArgumentList $target {
param($target)
while ((Get-Process $target).Responding) {sleep -Milliseconds 50}
if (!(Get-Process $target).Responding)
{
# Do Stuff
}
} | out-null
}Wie starte ich den Job neu sobald er "completed" ist?
Mit "Wait-Job | Receive-Job | Resume-Job" scheint es nicht zu funktionieren.
Danke für eure Hilfe
- Bearbeitet Simon Stauber Dienstag, 23. Februar 2016 09:59
Antworten
-
Hallo Simon,
wenn einen Job completed ist kann man den nicht neu starten. Sie müssen neuen Job ausführen.
-
Get-Job
Gets Windows PowerShell background jobs that are running in the current session -
Receive-Job
Gets the results of the Windows PowerShell background jobs in the current session -
Remove-Job
Deletes a Windows PowerShell background job -
Resume-Job
Restarts a suspended job -
Start-Job
Starts a Windows PowerShell background job -
Stop-Job
Stops a Windows PowerShell background job -
Suspend-Job
Temporarily stops workflow jobs -
Wait-Job
Suppresses the command prompt until one or all of the Windows PowerShell background jobs that are running in the session are complete
Das was Sie erreichen wollen wird mit workflow besser klappen, glaube ich.
Gruß,
Teodora
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 2. März 2016 21:41
-
Get-Job
-
Du kannst einen Job nicht neu starten wenn er erledigt ist. Du kannst aber jederzeit einen inhaltlich gleichen Job neu einstellen.
Um deine andere Frage zu beantworten, du kannst keine goto-Sprungmarken definieren wie in der Batch. Dafür nimmst du bei Powershell Funktionen. Die kannst du jederzeit immer wieder "anspringen" so oft du möchtest.
Oder du packst das zu wiederholende in eine while- oder do/until- Schleife.Workflows sind ne coole Sache, aber nicht um sie mal eben zu benutzen. Man muß sich etwas in die Besonderheiten einarbeiten. Wie du schon selbst gemerkt hast, funktioniert bei Worklflows nämlich manches anders und du hast einen eingeschränkten Befehlssatz zur Verfügung.
Gruß, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
(Schneller, besser + komfortabler scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 26. Februar 2016 20:46
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 2. März 2016 21:41
Alle Antworten
-
Hallo Simon,
wenn einen Job completed ist kann man den nicht neu starten. Sie müssen neuen Job ausführen.
-
Get-Job
Gets Windows PowerShell background jobs that are running in the current session -
Receive-Job
Gets the results of the Windows PowerShell background jobs in the current session -
Remove-Job
Deletes a Windows PowerShell background job -
Resume-Job
Restarts a suspended job -
Start-Job
Starts a Windows PowerShell background job -
Stop-Job
Stops a Windows PowerShell background job -
Suspend-Job
Temporarily stops workflow jobs -
Wait-Job
Suppresses the command prompt until one or all of the Windows PowerShell background jobs that are running in the session are complete
Das was Sie erreichen wollen wird mit workflow besser klappen, glaube ich.
Gruß,
Teodora
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 2. März 2016 21:41
-
Get-Job
-
Hallo Teodora
Danke für deine Antwort
Ich muss das mit einem Background Job machen, da ich ein GUI anzeigen will, welches visualisiert das Prozesse überwacht werden. Wenn das GUI und der Job im gleichen Thread laufen, dann antwortet die Windows-Form nicht bzw. wird unresponsive.
Oder verhält sich ein Workflow gleich wie ein Background Job? Ausserdem kann ich in einem Workflow keinen While loop machen sagt mir der Powershell ISE
Edit:
Gibt es evtl. eine möglichkeit wie bei batch, im Skript umherzuspringen? sowas wie das hier:
targets = "firefox","outlook"foreach ($target in $targets)
{
Start-Job -name $target -ArgumentList $target {
param($target)
:job-loop
while ((Get-Process $target).Responding) {sleep -Milliseconds 50}
if (!(Get-Process $target).Responding)
{
# Do Stuff
} goto :job-loop
} | out-null
}
- Bearbeitet Simon Stauber Mittwoch, 24. Februar 2016 09:55
-
Hallo Simon,
schauen Sie mal hier:
PowerShell Jobs Week: Jobs and Workflows
PowerShell Workflows: Restarting the Computer
Gruß,
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Du kannst einen Job nicht neu starten wenn er erledigt ist. Du kannst aber jederzeit einen inhaltlich gleichen Job neu einstellen.
Um deine andere Frage zu beantworten, du kannst keine goto-Sprungmarken definieren wie in der Batch. Dafür nimmst du bei Powershell Funktionen. Die kannst du jederzeit immer wieder "anspringen" so oft du möchtest.
Oder du packst das zu wiederholende in eine while- oder do/until- Schleife.Workflows sind ne coole Sache, aber nicht um sie mal eben zu benutzen. Man muß sich etwas in die Besonderheiten einarbeiten. Wie du schon selbst gemerkt hast, funktioniert bei Worklflows nämlich manches anders und du hast einen eingeschränkten Befehlssatz zur Verfügung.
Gruß, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
(Schneller, besser + komfortabler scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 26. Februar 2016 20:46
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 2. März 2016 21:41