Windows-Jobs

Windows-Jobs definieren, Windows-Betriebssystemverarbeitungsschritte, die auf einem Zielsystem durchgeführt werden müssen. Wie alle Jobobjekte (JOBS) können Windows-Jobs eigenständig laufen oder zu einer Gruppe (JOBG) oder einem Workflow hinzugefügt werden. Weitere Informationen zur Integration zwischen der Automation Engine und Windows finden Sie unter AE und Windows.

Die Windows-Seite enthält Windows-spezifische Ausführungsparameter.

Windows-Jobs definieren

Eine Windows-Job-Definition besteht aus den folgenden Seiten:

Die Start-Parameter eines Windows-Jobs definieren

Legen Sie fest, wie das Automation Engine-Windows-Job-Objekt den Job am Windows Zielsystem starten soll.

  1. Legen Sie fest, wie das Script im Interpreter Typ ausgeführt werden soll:

    • Batch

      Die JCL auf der Seite Prozess wird als Windows Batch-Datei ausgeführt.

    • Command (cmd.exe)

      Die Windows CMD-Shell enthält eine Reihe von externen Befehlen, die Windows als separate ausführbare Dateien bereitstellt. Wählen Sie die Option Befehl (cmd. exe) aus, um das Feld Befehl anzuzeigen, und geben Sie einen externen Befehl ein. Was Sie hier eingeben, wird an die Windows-Kommandozeile übergeben und ausgeführt.

      Hinweis: Für interne Windows-Befehle, wie z. B. dir, cd oder echo, haben Sie die folgenden Optionen:

      • Verwenden Sie stattdessen die Batch-Option.
      • Rufen Sie "cmd. exe" mithilfe von /c auf, um einen bestimmten internen Befehl zu isolieren und aufzurufen.

        Beispiel: cmd.exe /c dir

    • Benutzerdefinierter Interpreter

      Administrator-Benutzer können einen benutzerdefinierten Interpreter in der INI-Datei des Windows-Agenten angeben. Wählen Sie diese Option, um die auf der Seite Prozess enthaltene JCL als Datei an diesen Interpreter zu übertragen und zu verarbeiten. Weitere Informationen finden Sie in den Beschreibungen von ECPEXE= und ecpext= unter Agent Windows 64-bit.

      Hinweis: In bestimmten Fällen muss die AE eine Kommentarzeile in das Script einfügen, das an den benutzerdefinierten Interpreter weitergeleitet wird. Dies ist notwendig, weil verschiedene Interpreter verschiedene Präfixe für einzeilige Kommentare verwenden. Um das richtige Präfix für den definierten Interpreter zur Verfügung zu stellen, stellen Sie sicher, dass Sie die Variable &UC_REM_PRF entsprechend setzen. Fügen Sie der Seite Prä-Prozess eine Anweisung hinzu, wie im Beispiel für powershell.exe gezeigt, wobei # verwendet wird, um eine Zeile auszukommentieren:

      :set &UC_REM_PRF = "# "

    Best Practices

    Windows unterscheidet vier Programmtypen:

    • Grafische User Interface-Programme
    • Konsolen-Programme
    • Betriebssystemkommandos, z. B. DIR oder SET

    Starten Sie GUI- und Konsolenprogramme von der Kommandozeile aus, um die Vorteile des Automation Engine zu nutzen und den korrekten Programm-Exit-Code zu ermitteln.

    OS-Kommandos können nur über eine BAT-Datei gestartet werden. Überprüfen Sie den Rückgabewert nach jedem Kommando, um schnell auf Fehler zu reagieren.

    Testen Sie die BAT-Datei oder die Kommandozeile auf dem Zielsystem, bevor Sie den Job mit dem Befehl Automation Engine starten. Wenn möglich, führen Sie Ihre Tests mit dem Benutzer durch, der später den Automation Engine-Windows Job ausführt.

  2. Geben Sie das Arbeitsverzeichnis an, in dem der Job ausgeführt werden soll.

  3. Aktivieren Sie den Batch-Modus: Anmeldung als Batch-Benutzer an, um den Job im Batch-Modus auszuführen. Dies ist notwendig, wenn zur Ausführung von Programmen Admin-Rechte erforderlich sind und die Benutzerkontensteuerung auf dem Zielsystem aktiviert ist. Weitere Informationen finden Sie unter Benutzerkontensteuerung (UAC, User Account Control) in Windows.

  4. Geben Sie unter Job am Desktop anzeigen an, ob Sie die Ansicht, die die Ausführung des Jobs zeigt, angezeigt bekommen möchten. Dies ist besonders nützlich für GUI-Programme, da sie manchmal Meldungen anzeigen, die ein Eingreifen des Benutzers erfordern.

  5. Einige Jobs oder Programme in Windows starten andere Child-Programme. Parent und Child werden asynchron ausgeführt. Wenn der Automation Engine-Windows Job eines dieser Parent-Programme startet, kann es vorkommen, dass das Parent-Programm beendet wird, während das Child-Programm noch läuft. In diesem Fall wird auch der Status des Automation Engine-Windows Jobs beendet, obwohl einige Prozesse noch nicht abgeschlossen sind.

    Beispiel

    Ein Job enthält ein Script mit drei Kommandozeilen, wobei die erste drei Unterprozesse startet. Wenn die drei Kommandozeilen erfolgreich ausgeführt wurden, gibt der Windows-Agent diese Information an die Automation Engine zurück, die den Job als fertig erachtet. Da die Unterprozesse asynchron laufen, kann es jedoch vorkommen, dass sie noch nicht abgeschlossen wurden. Die Automation Engine hat keine Kontrolle darüber und kennt deren Status nicht. Diese Situation hat folgende Konsequenzen:

    • Die Informationen, die in die Reports geschrieben werden, sind fehlerhaft.
    • Wenn der Job erneut startet, während die Unterprozesse noch laufen, wird er abnormal beendet.
    • Wenn ein Job abgebrochen wird, werden dessen Unterprozesse nicht automatisch abgebrochen, was zu einem unerwünschten Ergebnis führen kann.

    Sie können diese Situationen vermeiden, indem Sie das Automation Engine Windows-Jobobjekt mitsamt dessen Unterprozessen innerhalb eines Windows-OS-Jobobjektes gruppieren. Das Windows-OS-Jobobjekt ist dann dafür verantwortlich, die Beendigung des Automation Engine-Objekts zu melden, wenn dessen sämtliche Child-Prozesse ebenfalls abgeschlossen sind, sowie dafür, alle Child-Prozesse abzubrechen, wenn der Job abgebrochen wurde.

    Sie können sie über die Optionen, die in Verwende Windows OS Job Objekt verfügbar sind, verbinden:

    • Standardeinstellung vom Agenten: Die Verwendung des Windows-Jobobjekts hängt von der Konfiguration der Standardeinstellung in der INI-Datei des Windows-Agenten ab.
    • Ja: Das Windows OS-Jobobjekt wird verwendet. Die Parent- und Child-Prozesse sind miteinander verbunden.
    • Nein: Das Windows OS-Jobobjekt wird nicht verwendet und es wird keine Verbindung zwischen Parent- und Child-Prozessen hergestellt.
  6. Informationen zum Abschnitt Job-Report finden Sie unter Job-Reports.

  7. Speichern Sie Ihre Änderungen

Siehe auch: