Auf laufende Prozesse überprüfen
- Ausgangslage
- Auf aktive Programme und Prozesse überprüfen
- Skript auswählen
- Command Set project variable setzen und bearbeiten
- Command Set project variable setzen und bearbeiten
- Command Get process ID einfügen und anpassen
- Command If ... Then einfügen und anpassen
- Optional: Command Dialogs setzen und bearbeiten
- Command Else einfügen und anpassen
- Command Exit script einfügen und editieren
- Client Command-Phasen durchlaufen lassen
Ausgangslage
Manchmal ist es unumgänglich, dass Sie auch während der regulären Arbeitszeit Updates an Software oder Programmen vornehmen müssen, die alle oder vereinzelte Clients in Ihrem Unternehmen betreffen. Hierbei ist es von Vorteil, wenn Sie beispielsweise überprüfen können, ob ein bestimmtes Programm gerade aktiv verwendet wird oder nicht, um so einen Überblick darüber zu bekommen, wie schnell gewisse Updates verteilt werden können.
Dieses Client Command wird zum Beispiel für die Softwareverteilung benötigt. Es wird überprüft, ob ein bestimmter Prozess noch läuft, der zu einem Programm gehört, welches aktualisiert werden soll. Der Benutzer kann darüber informiert werden, dass das Programm und der damit verbundene Prozess geschlossen werden soll, um ein solches Update auszuführen. Dabei ist es unerheblich, ob Sie Microsoft Word oder einen Internet Browser prüfen möchten. Nachfolgend wird das Command universell gebaut, sodass Sie es schnell und gezielt auch auf andere Programme anpassen können. Daher wird im nachfolgendem Use Case auf Variablen (Systemvariablen) zurückgegriffen, die nur wenige Anpassungen hinterher benötigen und gewisse Bestandteile im Skript flexibler und variabler machen.
In diesem Use Case wird Ihnen aufgezeigt, wie Sie gezielt auf den Clients überprüfen können, ob ein bestimmtes Programm oder ein bestimmter Prozess läuft. Dabei wird exemplarisch nach Mozilla Firefox gesucht. Auch erhalten Sie einen Einblick, wie Sie Variablen universell verwenden können.
Auf aktive Programme und Prozesse überprüfen
Skript auswählen
- Navigieren Sie ins Modul Client Commands > Erstellen.
- Klicken Sie in der Ribbonleiste auf Hinzufügen. Es öffnet sich der Client Command Editor, in dem Sie entscheiden müssen, ob es sich um ein Console- oder Clientskript handelt. In diesem Fall wählen Sie das Clientskript aus.
Command Set project variable setzen und bearbeiten
- Wählen Sie zunächst aus der Commandliste das Command Variables > Set project variable aus.
- Öffnen Sie den Befehl per Doppelklick und öffnen den Tab Allgemein.
- Unter der Beschreibung der Aktion können Sie einen Namen eingeben. In diesem Beispiel wird „Projektvariable setzen SOFTWARE_NAME zu "Mozilla Firefox"“ eingefügt.
- Wechseln Sie in den Tab Details.
- Klicken Sie unter der Variableneinstellung auf das Icon neben dem Variablennamen.
- Optional: Legen Sie eine neue Variable unter den Aktionen an. Benennen Sie diese mit „SOFTWARE_NAME“ und klicken Sie auf das Plus-Icon. Klicken Sie anschließend auf den OK Button, um den Schritt abzuschließen.
7. Fügen Sie unter dem Feld Einzeiliger Text den Namen der Software ein. In diesem Beispiel ist es "Mozilla Firefox".
8. Klicken Sie im Anschluss auf OK.
Command Set project variable setzen und bearbeiten
- Wählen Sie erneut das Command Set project variable aus.
- Öffnen Sie den Befehl mit einem Doppelklick und öffnen Sie den Tab Allgemein.
- Geben Sie unter der Beschreibung den Namen der Aktion ein, z.B. Projektvariable setzen SOFTWARE_EXE zu "firefox.exe".
- Wechseln Sie in den Tab Details.
- Optional: Legen Sie eine neue Variable unter den Aktionen an. Benennen Sie diese „SOFTWARE_EXE“ und klicken Sie auf das Plus-Icon. Schließen Sie diesen Schritt mit dem OK ab.
6. Fügen Sie unter dem Feld Einzeiliger Text den Prozessnamen ein.
In diesem Fall ist der hier einzutragende Text "firefox.exe".
7. Klicken Sie im Anschluss auf OK.
Command Get process ID einfügen und anpassen
Mithilfe dieses Commands können Sie die aktuelle Prozess-ID des laufenden Prozesses oder Programms ermitteln. Darüber ist es möglich im weiteren Aufbau des Anwendungsbeispiels zu prüfen, ob der bestimmte Prozess oder das Programm aktiv auf einem Client läuft oder nicht.
- Wählen Sie das Command Process and Shell > Get process ID aus.
- Öffnen Sie das Command per Doppelklick.
- Aktivieren Sie unter Prozess / Zielvariable die Option … mit Prozess, indem Sie auf den Button klicken.
- Fügen Sie die entsprechende Variable ein (%SOFTWARE_EXE%). Mit dieser Variable wird geprüft, ob Mozilla Firefox läuft.
5. Klicken Sie unter Ergebnis speichern in auf das Icon rechts neben dem Variablennamen.
6. Öffnen Sie aus dem Drop-Down-Menü oben die Projektvariablen.
7. Fügen Sie unter Aktionen den Namen "CHECK_EXE" ein und klicken Sie auf das Plus-Icon.
Schließen Sie diesen Schritt mit dem OK ab.
8. Das Ergebnis wird in der CHECK_EXE-Variable abgespeichert.
9. Klicken Sie im Anschluss auf OK.
Sie haben jetzt die ersten Befehle in das Client Script eingebaut. Sie können an dieser Stelle schon bei sich auf dem Computer überprüfen, ob das Command funktioniert. Klicken Sie dafür auf die Schnellwahlleiste auf den Start-Button oder drücken Sie den Shortcut F9. Die ersten drei Befehle werden dadurch gestartet.
Öffnen Sie nun den Ablauflog im unteren Bereich des Feldes, wo alle Log Nachrichten des Client Scrips hinterlegt sind. Je nachdem, ob Sie nun den Browser Mozilla Firefox geöffnet haben oder nicht, wird Ihnen ein anderer Wert angezeigt. Dies wird anhand der Variablenbezeichnung der „CHECK_EXE“ erläutert. Wenn die Variable 0 ist, ist das Programm nicht geöffnet. Sollte die Variable >0 sein, ist das Programm geöffnet und läuft im Hintergrund. In der hier abgebildeten Grafik ist die Variable auf 0 gesetzt, also ist das Programm nicht offen.
Command If ... Then einfügen und anpassen
- Wählen Sie aus der Commandliste den Befehl Flow Control > If .. Then aus.
- Öffnen Sie den Befehl per Doppelklick und wechseln Sie in den Tab Allgemein.
- Unter der Beschreibung der Aktion können Sie einen Namen eingeben, der den Befehl beschreibt. In diesem Beispiel wird „If (%CHECK_EXE% <> 0) Then - Wenn der Prozess läuft ...“ geschrieben, damit auch in dem Hauptfeld klar ersichtlich ist, welche Bedingung es hier zu erfüllen gilt.
- Wechseln Sie in den Tab Details.
- Fügen Sie unter den Bedingungen die Werte ein, die überprüft werden sollen. Unter Wert 1 müssen Sie die Variable %CHECK_EXE% reinschreiben, da es diese zu überprüfen gilt. Die Variable im Wert 1 wird im Programmdurchlauf dann befüllt.
- Wählen Sie als Operator ungleich aus (< >), um so zu prüfen, ob das Programm bzw. der Prozess läuft oder nicht. Dieser Operator eignet sich besonders dafür, weil der Wert immer unterschiedlich sein kann und Sie dadurch alle Möglichkeiten einbeziehen können.
- Fügen Sie als Wert 2 die Zahl 0 ein. Dies ist der Wert, der als Bedingung für den Operator genutzt wird.
- Klicken Sie auf OK, um den Befehl abzuschließen.
Sollte der Prozess laufen, wird die Zeile abgeschlossen, da die Bedingung erfüllt wird. Wenn der Prozess jedoch nicht läuft, wird die Zeile übersprungen.
Optional: Command Dialogs setzen und bearbeiten
Diesen Befehl können Sie optional setzen, wenn Sie auf Ihren Clients ein Dialog-Fenster erscheinen lassen wollen, der darüber informiert, dass das Programm geschlossen werden soll. Die Nachricht ist individuell anpassbar. Beachten Sie, dass der Befehl eingerückt unterhalb des vorherigen Befehls (If (%CHECK_EXE% <> 0) Then) stehen muss, damit dieser korrekt ausgeführt wird.
- Wählen Sie aus der Commandliste den Befehl Dialogs > Dialogs aus.
- Öffnen Sie den Befehl per Doppelklick und öffnen Sie den Tab Nachrichteneinstellungen.
- Fügen Sie unter Titel eine treffende Bezeichnung für die Nachricht ein. Wir empfehlen Ihnen auch hier wieder die Projektvariable und nicht den Namen des Programms zu verwenden, um den kompletten Baustein variabel zu halten. So können Sie z.B. Software Update: %SOFTWARE_NAME% schreiben.
- Fügen Sie die Nachricht für die Clients ein, die eingeblendet werden soll, sollte das Programm noch geöffnet sein.
Optional: Ändern Sie den Nachrichtentyp und/oder die verfügbaren Buttons und benutzerdefinierten Beschriftungen.
5. Klicken Sie im Anschluss auf OK.
Command Else einfügen und anpassen
Der Baustein Else gehört zu dem vorherigen Befehl If … Then. Stellen Sie sicher, dass der Befehl auf der gleichen Ebene eingeordnet ist, damit die Bedingungen zwischen If … Then und Else abgeschlossen werden.
- Navigieren Sie zurück in die Commandliste und wählen Sie den Befehl Flow Control > Else aus.
2. Öffnen Sie den Befehl per Doppelklick.
3. Optional: Fügen Sie einen Kommentar ein, in welchem Fall der Else-Baustein ausgeführt werden soll.
4. Klicken Sie auf OK.
Command Exit script einfügen und editieren
- Wählen Sie aus der Commandliste den Befehl Flow Control > Exit script aus.
- Fügen Sie den Baustein unterhalb des Else-Befehls ein, sodass dieser eingerückt steht.
- Öffnen Sie den Befehl via Doppelklick.
- Wählen Sie unter dem Details Tab die Bedingung OK aus. Hierdurch wird das Skript als erfolgreich markiert.
5. Geben Sie unter Optionen einen Grund an, wieso das Client Command erfolgreich war.
6. Klicken Sie anschließend auf OK, um den Befehl zu schließen.
Insgesamt muss Ihr Client Script nun aus sieben Bausteinen bestehen. Speichern Sie das Client Command ab.
Client Command-Phasen durchlaufen lassen
Das Client Command muss abschließend die Phasen Testen, Synchronisieren, Freigeben und Ausführen durchlaufen, damit es verwendet werden kann. Erst danach können Sie überprüfen, ob ein bestimmtes Programm oder ein Prozess aktiv auf einem Client läuft.