Status von Service abfragen

  • Hi @ll

    Möchte von mehreren Servicen den Status abfragen und als ein Ergebnis zurückbekommen, sprich wenn alle (in dem Fall) 3 laufen ist es TRUE, wenn einer nicht läuft ERROR und wenn die Services nicht installiert sind ist es NULL. Habe es mit StdoutRead probiert, komme aber nur bis zur Auflistung des jeweiligen Status. Wer kann mir da evtl. weiterhelfen?

  • Ich würde das aber etwa so machen...

    4 Mal editiert, zuletzt von Bitnugger (13. Juli 2018 um 14:09)

  • Global $aService = ['LanmanServer', 'Schedule', 'mysql', 'synergy', 'Iinux']

    Habe ich was an den Augen, oder steht hier 'Iinux' mit einem großem i ?

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hmm, hier mal ein Screenshot aus dem Quelltext in Beitrag #2 !

    Für mich sieht das nach einem großem i aus (siehe großes L bei LanmanServer).


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ja, tatsächlich... hm, ok, habe es korrigiert.

    Ich möchte wirklich keine Erbsen zählen, aber in Listing 2 aus Beitrag #2 steht es noch falsch drin ;)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Bitnugger

    Thx for reply! Habe es getestet, läuft auch - aber noch nicht ganz was ich suche. Müsste den _CheckService dann nochmal mit dem @extended vergleichen (z.b. bei keiner läuft und keiner vorhanden bzw. alle laufen und keiner vorhanden). Beim Testen kamen folgende Konstellationen heraus...

    alle laufen

    _CheckService = True

    @error = 0

    @extended = 0

    keiner vorhanden

    _CheckService = False

    @error = 3

    @extended = 0

    keiner läuft

    _CheckService = False

    @error = 0

    @extended = 3

    einer läuft

    _CheckService = False

    @error = 0

    @extended = 2

    zwei laufen

    _CheckService = False

    @error = 0

    @extended = 1

  • Musashi

    Danke, habe jetzt beide "linux" korrigiert.

    dieselwiesel

    Deine Beschreibung zu dem was du willst ist sehr ungenau. Was soll z. B. passieren, wenn nur ein Service in der Liste nicht installiert ist?

    So, hier noch ein Beispiel, dass deinen Wünschen evtl. besser entspricht... und mehr gibt es zu diesem Thema nicht von mir... grins


  • dieselwiesel

    Deine Beschreibung zu dem was du willst ist sehr ungenau. Was soll z. B. passieren, wenn nur ein Service in der Liste nicht installiert ist?

    Ich möchte ein Script schreiben, bei dem ein Treiber installiert wird, welcher mehrere Services startet.

    Es soll beim Start prüfen, ob die Services alle laufen (zwecks Deinstallation), ein oder mehrere (egal welcher) gestoppt sind (auch wg. evtl. Deinstallation) oder problemlos installiert werden können.

    Läuft einer nicht (völlig egal welcher) laufen die Anderen zu 99,9% auch nicht. Wenn das so ist muss deinstalliert werden, dann geht das aber nicht so sauber, wie wenn alle zu 100% laufen. Das lässt ich auch nicht so einfach drüber installieren, darum möchte ich wissen ob es sauber ist.

    Am Ende der Prüfung würde es reichen, wenn z.B. ein CLEAN zurück kommt damit die Installtion beginnen kann, oder ein OKAY damit normal Deinstalliert werden kann bzw. ein ERROR damit es den anderen Weg der Deinstallation nimmt.

    EDIT:

    Habe dein erstes Bsp. ein bißchen "verunglimpft", da würde rauskommen was ich brauche - bin mir aber nicht sicher ob das so richtig ist, bzw. ob man es eleganter gestallten kann?!

    Einmal editiert, zuletzt von dieselwiesel (14. Juli 2018 um 07:09)

  • Wäre das nicht eleganter über WMI?

    Eleganz liegt im Auge des Betrachters... viel wichtiger ist, dass man selbst versteht, was in der Funktion passiert.

    2 Mal editiert, zuletzt von Bitnugger (16. Juli 2018 um 13:36)