Powershell-Warten-Dienst gestoppt oder gestartet werden
Ich habe gesucht, sowohl in diesem forum und durch google und kann nicht finden, was ich brauche.
Ich habe ein ziemlich großes Skript und ich bin auf der Suche nach einige code, der prüft, ob der Dienst gestartet oder gestoppt, bevor Sie den nächsten Schritt.
Die Funktion, die es selbst benötigen, um eine Schleife, bis es entweder gestoppt oder gestartet (wird eine Funktion Beendet und eine für die Schritte).
Insgesamt 4 Dienste, die fast den gleichen Namen haben, so dass Service-Bus * einsetzbar als ein Platzhalter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgenden wird Schleife und überprüfen Sie den status des angegebenen Leistungen, bis die Anzahl der Dienste mit der "Running" - Zustand ist gleich null (also Sie gestoppt sind), so können Sie dies verwenden, wenn Sie warten, für die Dienste zu Stoppen.
Ich habe ein
$MaxRepeat
variable, die verhindern, dass dies läuft für immer. Es wird 20 mal mit max definiert.WaitForStatus
einfach nicht genügt, wenn Sie wollen, stellen Sie sicher, dass der Dienst beendet oder gestartet werden, bevor voran mit dem Skript.Hätte ich nicht die 'count' - Strategie, dass Micky gepostet, um zu arbeiten, also hier ist, wie ich es gelöst:
Erstellte ich eine Funktion, die einen searchString (this könnte sein: "Service Bus *") und den status, dass ich erwarte, dass die Leistungen erreichen sollte.
Kann die Funktion nun aufgerufen werden, mit
oder
Wenn das Zeitlimit erreicht ist, wird ein nicht so anmutig Ausnahme geworfen wird:
Zusätzlich zu den Antwort von mgarde diese one-liner könnte nützlich sein, wenn Sie nur wollen, zu warten, für einen einzelnen Dienst (auch inspiriert durch eine post von Shay Levy):
Hatte ich zu zwicken, ein bisschen mit mehreren Indikatoren, da dieser Dienst absichtlich startet und Stoppt langsam. Das original-Skript hat mich auf die richtige Spur. Ich musste warten, für den Dienst in einer völlig gestoppt-status, bevor ich bewegen konnte, weil ich bin eigentlich ein Neustart, das gleiche service.
Sie könnten wahrscheinlich entfernen Sie die "sleep", aber das stört mich nicht verlassen, es ist in.
Wahrscheinlich könnte man alles entfernen und nur das $gestoppt variable. 🙂