ManagementTests

Automatisierungswerkzeug Ivanti Automation: Wichtige Stütze für Administratoren

Die ersten Arbeiten

Um unsere neue Installation zu testen, machten wir uns im ersten Schritt daran, die Software “Notepad++” auf unsere Zielsysteme zu verteilen. Dazu luden wir zunächst einmal die entsprechende Installationsdatei “npp.7.8.4.Installer.x64.exe” von der Webseite des Herstellers unter https://notepad-plus-plus.org herunter.

Nachdem das erledigt war, legten wir anschließend in Ivanti Automation eine neue Ressource an. Dazu wechselten wir nach “Library/Ressources”, wählten den Befehl “New” und entschieden uns für den Ressourcentyp “Stored in Datastore”. Alternativ lassen sich Ressourcen auch auf Fileshares, auf URLs oder als Ivanti Ressource Package definieren.

Anschließend gaben wir den Pfad zu unserer zuvor heruntergeladenen Installationsdatei an und klickten auf “OK”. Danach übernahm das System die Setup-Datei in den Datenspeicher.

Hier der Evaluator, der dafür sorgt, dass der Installations-Task nur dann startet, wenn genug freier Speicherplatz auf dem Ziellaufwerk vorhanden ist

Das erste Modul

Jetzt konnten wir uns daran machen, das erste Modul anzulegen. Dazu wählten wir den Befehl “New” unter “Library/Modules” und gaben im “Properties”-Reiter einen Namen für das Modul an. Anschließend wechselten wir auf den “Tasks”-Reiter und selektierten “Add”. Daraufhin erhielten wir eine Liste mit den verfügbaren Aufgaben. Aus dieser wählten wir unter “Provisioning/Unattended Installation/Perform” aus. Daraufhin öffnete sich ein weiteres Fenster, in dem wir unter “Filename” unsere Installer-Ressource auswählen konnten. Anschließend mussten wir noch unter “Parameters” den Switch “/S” angeben, damit die Installation “silent”, also ohne Benutzeraktionen auf dem Zielsystem ablief. Damit war die Definition des ersten Moduls, das nur einen Task enthielt, abgeschlossen.

Ein Installations-Job

Jetzt konnten wir den ersten Job erzeugen und starten. Hierzu wechselten wir nach “Jobs/Scheduling”, selektierten “New” und trugen unter “What” unser Modul ein. Anschließend klickten wir auf das “Who”-Feld und trugen dort unsere Zielagenten ein. Unter “When” gaben wir an “Immediately”, damit der Job sofort startete. Nach einem Klick auf “OK” verteilte Ivanti Automation das Notepad++ dann wie erwartet. Die Bedienung der Software ist folglich geradeheraus und (zumindest bei einfachen Jobs) nicht besonders kompliziert.

In diesem Zusammenhang ist es allerdings wichtig zu bedenken, dass es sich bei Ivanti Automation nicht um eine Software-Verteilungslösung (das können viele) handelt, sondern dass das System einen deutlich größeren Funktionsumfang hat. Wir haben das eben aufgeführte Beispiel nur gewählt, da sich damit die Konfiguration eines Jobs und der dazugehörigen Bestandteile recht gut demonstrieren lässt.

Weitere Jobs

Als nächstes legten wir diverse weitere Ressourcen und Jobs an, um uns mit der Software näher vertraut zu machen. Zu ihnen gehörten unter anderem Abfragen des Fragmentierungsgrads bestimmter Laufwerke, das Auslesen der Systemnamen, die Abfrage des freien Speicherplatzes auf den Ziellaufwerken und das Verteilen eines Security-Scanners auf die Zielrechner mit anschließendem Start des Scans auf den verwalteten Clients.

Die Ergebnisse dieses Scans ließen sich dann unter “Tasks/Job History” und die Auswahl des Jobs über die Reiter “Tasks” und “Agents” jeweils unter “Details” einsehen. Die Administratoren bleiben folglich nie über die mit der Software durchgeführten Aktionen im Unklaren. Job-Ergebnisse lassen sich zudem jederzeit als XML-Dateien exportieren und so andernorts weiter nutzen.

Bei diesem Job legte das System den User “Ivanti” nur nach vorheriger Prüfung auf die Existenz eines Benutzerkontos gleichen Namens an

Ein anspruchsvollerer Job

Jetzt konnten wir uns an etwas anspruchsvollere Aufgaben machen. Dazu wandten wir uns der Automatisierung der Arbeiten im Microsoft Active Directory zu. Mit Ivanti Automation lassen sich im Active Directory Benutzerkonten anlegen, bearbeiten, löschen oder abfragen. Der Task “Create Active Directory User” legt ein Benutzerkonto in einem bestimmten Active-Directory-Ordner an und stellt grundlegende Daten wie Logon-Name, Passwort, Passworteinstellungen und ähnliches bereit.

Mit dem Task “Manage Active Directory User” haben die IT-Verantwortlichen die Option, sämtliche Benutzerangaben zu modifizieren, einschließlich Gruppenzugehörigkeiten und E-Mail-Adressen. “Delete Active Directory User” löscht im Gegensatz dazu Benutzerkonten und zwar nach Organisationseinheit, Logon Name, User Property Value und der Zahl der Tage seit dem letzten Login. “Query Active Directory User” zeigt wiederum einen Überblick über alle Benutzer an, auch hier wieder nach Organisationseinheit, Logon Name, User Property Value und Tagen nach dem letzten Login.

Im Test verwendeten wir nun die Query-Funktion, um festzustellen, welche Benutzerkonten bereits vorhanden waren, legten dann einen neuen Benutzer-Account namens “Ivanti” an, modifizierten diesen im nächsten Schritt und löschten das Testkonto zum Schluss wieder.

Um den Job zum Abfragen der Benutzerkonten anzulegen, wechselten wie nach “Modules/Quick Task” und gaben unseren Domänencontroller (dieser lief unter Windows Server 2019) sowie die entsprechenden Zugangsdaten an. Anschließend wählten wir unter dem Reiter “User Properties” noch die Daten aus, die im Report erscheinen sollten, wie Name, Gruppenmitgliedschaften, Logon Name und ähnliches. Zum Schluss erzeugten wir mit dem neuen Modul einen Job und ließen ihn laufen. Kurz darauf konnten wir uns unter “Job History/View/Agents” die Ergebnisse ansehen.

Das Anlegen eines Benutzerkontos

Jetzt konnten wir uns daran machen, ein Benutzerkonto zu erzeugen. Auch dazu verwendeten wir wieder die Quick-Task-Funktion und gaben im Task “Create Active Directory User” unsere Domäne und die dazugehörigen Credentials an. Anschließend teilten wir dem System mit, dass wir das Benutzerkonto in der Organisationseinheit “Users” erzeugen wollten und füllten die Felder “Logon Name”, “First Name”, “Last Name”, “Full Name” und “Password” aus. Außerdem konnten wir noch festlegen, ob der neue Benutzer sein Passwort beim nächsten Login ändern musste, ob das Passwort niemals ablaufen sollte und so weiter. Danach ließen wir den Job laufen und fragten anschließend das Active Directory mit der Query-Funktion erneut ab, um zu sehen, ob der neue User vorhanden war. Wir zu erwarten, fand er sich in der Liste.

Modifizieren und Löschen

Nun ging es daran, das Benutzerkonto zu ändern. Dazu erzeugten wir einen Quick Task mit der Funktion “Manage Active Directory User”. Auch hier gaben wir wieder die Domäne mit Credentials an und konnten danach auswählen, ob wir einen einzelnen Benutzer oder mehrere Konten, die bestimmte Kriterien erfüllten, bearbeiten wollten. Zu den verfügbaren Kriterien gehören unter anderem der Login Name, der Active Directory Folder oder auch die Zahl der Tage seit dem letzten Login. Im Test modifizierten wir zu diesem Zeitpunkt lediglich den User “Ivanti”. Wir fügten ihm über den entsprechenden Reiter eine neue E-Mail-Adresse hinzu. Nachdem der Job durchgelaufen war, prüften wir wieder, ob alles geklappt hatte. Erneut traten keine Probleme auf.

Die Ergebnisse einer Abfrage der Active-Directory-Konten finden sich nach dem Ende des Jobs unter “Job History/View/Agents”

Zum Schluss löschten wir das AD-Benutzerkonto wieder mit der “Delete”-Funktion. Dabei gingen wir analog zu den anderen Aktionen vor, auch hier gab es keine Schwierigkeiten.

Verketten von Aufgaben

Interessanter ist es nun, die einzelnen Aufgaben zu verketten, beispielsweise vor der Installation einer Software erst einmal nachzusehen, ob auf dem Ziellaufwerk genug freier Speicher existiert und das Setup nur dann zu starten, wenn die entsprechende Überprüfung positiv ausfällt. Oder einen Active Directory User nur dann anzulegen, wenn eine vorhergehende Anfrage ergeben hat, dass noch kein Benutzerkonto dieses Namens existiert. Dieser Aufgabe widmeten wir uns im letzten Teil des Tests.

Um den freien Festplattenplatz auszulesen, ist es zunächst erforderlich, ein Modul mit einem Query-Task anzulegen, der den Disk Space abfragt. Diesem Job kann man dann unter dem Reiter „Evaluator“ einen Operand mitgeben. Für unser Beispiel nahmen wir dazu „Free Space“ und setzten die dazugehörige Kondition auf „mehr als 2 GByte“. Anschließend gaben wir noch unter „If evaluator returns data then“ als Option „Continue“ an, damit das System in Fällen, in denen der freie Speicherplatz größer als zwei GByte war, mit der Installation fortfuhr. Gleichzeitig mussten wir dann noch unter „If evaluator returns NO data then“ als Maßnahme „Fail this query“ eingeben, damit das System bei zu wenig Speicherplatz die Aufgabe abbrach. Anschließend fügten wir dem gleichen Modul noch den eigentlichen Installations-Task hinzu. Damit war diese Aufgabe abgeschlossen und Ivanti Automation verhielt sich nach dem Aufruf des entsprechenden Jobs wie erwartet.

Das Ganze geht übrigens auch umgekehrt. Man kann beispielsweise in einem Task unter „Condition“ angeben, dass der Task nur dann ausgeführt wird, wenn der vorherige Task komplett durchgelaufen ist, was in manchen Fällen den sinnvolleren Weg darstellt. Das System arbeitet da also sehr flexibel.

Das Abfragen eines Active-Directory-Users geht genauso. Man muss ein Modul anlegen, dass den Task enthält, die Active-Directory-User auszulesen. Dabei besteht die Möglichkeit, die Ausgabe nach einem Benutzernamen zu filtern und den Task nur dann fortzusetzen, wenn sie leer bleibt. Steht nämlich etwas drin, so existiert der Benutzer schon und es ist keine weitere Aktion erforderlich.

Weitere Optionen

An dieser Stelle ist es nun an der Zeit, noch kurz einen Überblick über die weiteren Möglichkeiten zu bieten, die die Software mit sich bringt. Zu den Tasks, die die Lösung Out of the Box ausführen kann, gehören unter anderem Konfigurations-Tasks, die beispielsweise Einträge in der Registry verändern oder Dateioperationen durchführen. Dazu kommen Provisioning-Aufgaben (etwa zum Provisioning von Anwendungen und Diensten) und Tasks für das PC Lifecycle Management. Darüber hinaus stellt die Software den Anwendern auch noch eine Library zum Management von virtuellen Anwendungen und Maschinen zur Verfügung, genauso wie eine Library zur Sicherheit, die Tasks anbietet, die unter anderem Sicherheitsrisiken abfragen und Security-Updates installieren können.

Dazu kommen noch einige weitere Aufgabenbereiche, wie der “System State” mit Tasks zum Defragementieren von Disks und Abfragen der Ereigniseinträge und der Punkt “Advanced” über den sich SMTP-Traps senden lassen und der Tasks zum Ausführen von Power Shell Scripts anbietet. Weitere Libraries befassen sich mit den Linux-, MacOS- und Unix-Agenten, der Verwaltung von Diensten beziehungsweise mobilen Geräten und vielem mehr.

Über den Audit Trail können die zuständigen Mitarbeiter jederzeit nachvollziehen, welche Aktionen über Ivanti Automation durchgeführt wurden

Sämtliche in einer Library definierten Einträge lassen sich übrigens jederzeit als “Building Blocks” im- und exportieren. Damit ist es nicht nur möglich, sie von einer Installation auf eine andere zu übertragen, sondern sie können auf diese Art und Weise auch gesichert werden. Die Absicherung der Building Blocks erfolgt im Betrieb mit Passkeys.

Fazit

Ivanti Automation konnte uns im Test durch den modularen Aufbau, den großen Funktionsumfang und die relativ einfache, schnell zu erlernende Bedienung überzeugen. Die Software, mit der die Arbeit wirklich Spaß macht, lässt sich für eine Vielzahl von Aufgaben nutzen, von der Software-Verteilung bis zum Steuern von Patch-Management- und Verwaltungslösungen. Dabei stehen den Anwendern sehr viele Möglichkeiten zur Verfügung, die Jobs zu steuern. Zusätzlich zu den bereits genannten Optionen gibt es zum Beispiel auch Konditionen auf Basis bestimmter Dateien oder Ordner und vieles mehr.

Damit die Anwender immer nur die Funktionen nutzen können, die sie für die Erledigung ihrer Arbeit auch wirklich brauchen, steht darüber hinaus eine leistungsfähige Rollenverwaltung zur Verfügung. Außerdem haben die zuständigen Mitarbeiter über “Trusts” die Gelegenheit, dafür zu sorgen, dass nicht alle Agenten alle Module und Ressourcen nutzen können. Das ergibt beispielsweise in Multi-Tenant-Umgebungen Sinn.

Bei Bedarf lassen sich auch mehrere Agenten zu Teams zusammenfassen und die Jobs dann auf Team-Ebene ausführen. Auf diese Weise ist es möglich, die Organisation nach Standorten, Betriebssystemen und ähnlichem aufzuteilen und so die Übersichtlichkeit zu erhöhen.

Der Einsatz einer Lösung wie Ivanti Automation verringert nicht nur den Arbeitsaufwand für die IT-Abteilungen, sondern erhöht – wie bereits angesprochen – auch die Sicherheit, da viele Fehlerquellen, die beim manuellen Arbeiten zu Tage treten, wegfallen. Das macht das Produkt für eine Vielzahl von Aufgabenbereichen interessant.

Anmerkung:

Wir haben diesen Test im Auftrag des Herstellers durchgeführt. Der Bericht wurde davon nicht beeinflusst und bleibt neutral und unabhängig, ohne Vorgaben Dritter. Diese Offenlegung dient der Transparenz.