Menüleiste
In der Menüleiste des Client Command Editor finden Sie einige grundlegende Einstellungen zum Editor selbst, wie auch zum aktuell geladenen Client Command. Als Einträge sind Projekt, Ansicht sowie Fenster in der Menüleiste zu finden.
Projekt
Im Menüpunkt Projekt haben Sie grundsätzlich die Möglichkeiten, das aktuell geladene Client Command zu Speichern und den Editor zu Schließen. Des Weiteren können Sie hier die Eigenschaften des Client Command editieren. Ebenso können Sie die ACMP–Variablen editieren. Lesen Sie hierzu mehr den Abschnitt Variablen.
Ansicht
Über das Menü Ansicht lassen sich verschiedene Bereiche des Editors ab- und auch wieder zuschalten. Ebenso lässt sich angeben, welche Spalten im Skript – Bereich angezeigt werden sollen.
Zusätzlich lässt sich ein Kompatibilitätsmodus einschalten. Auf diese Weise lassen sich gezielt Client Commands ausblenden, die nicht zu einer bestimmten Windows Version kompatibel sind.
Mit dem Menüpunkt Sprache können Sie die Anzeigesprache der verfügbaren Befehle von englisch auf deutsch umstellen. Die Standardansichtssprache ist englisch.
Fenster
Über das Menü Fenster lässt sich die Anordnung der verschiedenen Bereiche ändern. Weiterhin können Sie zwischen mehreren geöffneten Commands umschalten.
Eigenschaften
In den Eigenschaften eines Client Command können Sie allgemeine Informationen hinterlegen, wie auch bestimmte Optionen und Bedingungen für das Client Command setzen. Allgemeine Informationen beziehen sich dabei auf das gesamte Client Command, wohingegen die Informationen Allgemeine Version und Bedingungen nur eine bestimmte Version des Client Command betreffen.
Allgemein
Unter Allgemein können Sie den Namen des Client Command angeben, sowie die Client Command-ID einsehen. Zusätzlich werden das Erstelldatum und das Datum der letzten Änderung angezeigt.
Optionen
Unter Optionen können Sie das Client Command zur interaktiven Benutzung freigeben, was dem User eines Clients gestattet, dieses Client Command selbstständig über den Command Launcher auszuführen. Wenn Sie das Client Command als QuickCommand anzeigen lassen, können Sie es über das Kontextmenü einer Abfrage der Abfrageverwaltung ausführen (siehe Jobs ausführen). Zusätzlich können Sie sich das Client Command direkt in Abfrageergebnissen anzeigen lassen. Markieren Sie dazu nur den entsprechenden Punkt Im Ribbon Tap "Abfrageaktionen" anzeigen in den Optionen.
Ab ACMP 4.0 lassen sich Client Commands parallel ausführen. Auf diese Weise wird verhindert, dass langlaufende Client Commands die Ausführung von kurzen Client Commands blockieren. Das bedeutet, dass grundsätzlich nicht alle Client Commands parallel laufen soll. Entsprechende Client Commands müssen explizit als parallel lauffähig in den Optionen markiert werden.
Es müssen jedoch einige Faktoren bei der parallelen Ausführung von Client Commands beachtet werden. Zunächst muss sichergestellt werden, dass Client Commands, die auf die gleichen Ressourcen (z.B. Dateien, Prozesse) zugreifen, nicht als parallel ausführbar markiert werden. Deshalb sollte speziell die parallele Ausführung von MSI-Installationen vermieden werden.
Client Commands werden parallel ausgeführt, unabhängig davon, ob sie manuell oder automatisch über einen Client Task gestartet worden sind. Auch werden parallele Client Commands ausgeführt, wenn bereits ein nicht parallelfähiges Client Command ausgeführt wird. Um zu verhindern, dass zwei Client Commands auf die selbe Resource zugreifen, darf also keines der beiden als parallelfähig markiert sein.
Als Log-Optionen können Sie angeben, ob generell ein Log gespeichert werden soll. Über die DropDown-Liste Erweitertes Log speichern können Sie angeben, welche Daten geloggt werden sollen. Zusätzlich gibt es noch die DropDown-Liste ACMP Console Log anzeigen, über welche ausgewählt werden kann, wann ein Log der Console angezeigt wird.
Sicherheit
Unter Sicherheit haben Sie die Möglichkeit, das Client Command durch ein Passwort zu schützen, so dass es von keiner weiteren Person editiert werden kann. Weiterhin können Sie bestimmten Usern und Gruppen Rechte an diesem Client Command erteilen oder entziehen. Dies funktioniert ebenso wie das Sicherheitsmanagement bei Abfragen (siehe Sicherheit).
Icon
Unter Icon können Sie ein spezielles Icon für Ihr Client Command wählen. Dazu können Sie auch ein neues Icon hinzufügen oder bestehende Icons editieren bzw. löschen. Als Formate für eigene Icons werden *.bmp-und *.ico-Dateien mit 16x16 Pixeln unterstützt. Das neue Icon wird in die ACMP integriert. Wird kein Icon ausgewählt, wird das Standardicon für Client Commands gesetzt.
Info
Unter Info können Sie den Firmennamen bzw. den Ersteller des Client Commands, sowie eventuelle Markenzeichen eintragen.
Kommentare
Unter Kommentare können Sie einen beliebigen Text als Kommentar zum Client Command eintragen. Dabei werden die Kommentare intern im Client Command gespeichert, wodurch sich eine Chronik ergibt, durch welche z.B. Änderungen nachvollzogen werden können.
Version allgemein (Versionsspezifisch)
Unter Version allgemein können Sie eine Beschreibung hinterlegen und das Level des erhöhen. Diese Angaben beziehen sich dabei allerdings nur auf die aktuelle Version des Client Command, von der Sie diese Eigenschaften aufgerufen haben.
Der Level dient dazu, dass ein Client Command u.a. im CommandLauncher so angezeigt wird, als wäre es noch nicht ausgeführt worden. Ebenso werden Client Commands erneut ausgeführt, welche einem Container mit der Option "Einmalig ausführen" zugewiesen wurden (siehe Client Commands).
Bedingungen
Unter Bedingungen können Sie zusätzliche Bedingungen angeben, welche bei der Ausführung des Commands berücksichtigt werden sollen. Dazu ziehen Sie eine Condition von der linken Seite per Drag&Drop auf die rechte Seite auf die ODER- bzw. die UND-Bedingung. Dies ist ähnlich den Filtern, welche bei einer Abfrage gesetzt werden können. So benötigen Sie mindestens zwei Bedingungen, damit diese Einstellungen Sinn machen. Sie können die Bedingungen auch verschachteln, so dass eine Bedingung z.B. nach dem Muster X ODER (Y UND Z) entsteht. Ziehen Sie z.B. eine Bedingung auf eine bereits bestehende UND-Bedingung, so werden diese beiden Bedingungen in den Kontext mit einer ODER-Bedingung gesetzt. Bedingungen können für jede Version eines Client Command angepasst werden.
Im Folgenden werden die verschiedenen Conditions genauer erläutert:
Conditions | Bedingung |
Is CPU speed | Mit dieser Bedingung können Sie den CPU-Takt überprüfen. Dazu stehen Ihnen die mathematischen Operatoren zur Verfügung wozu Sie noch den passenden Takt in Hz (Hertz) angeben. |
Is file date | Mit dieser Bedingung können Sie das Änderungsdatum einer Datei überprüfen. Dazu stehen Ihnen die mathematischen Operatoren zur Verfügung wozu Sie noch die passende Datei auswählen und das Änderungsdatum im Format dd.mm.yy hh:mm:ss angeben. |
Is file version | Mit dieser Bedingung können Sie die Dateiversion überprüfen. Dazu stehen Ihnen die mathematischen Operatoren zur Verfügung wozu Sie noch die passende Datei auswählen und die Dateiversion angeben. Nur ausführbare Dateien haben eine Versionsnummer. |
If machine is in domain | Mit dieser Bedingung können Sie prüfen, ob ein Client zur angegebenen Domain gehört. Dazu geben Sie einfach eine Domain an. Der Button neben dem Eingabefeld listet Ihnen dazu alle verfügbaren Domains auf. |
Is logon user | Mit dieser Bedingung können Sie überprüfen, ob ein bestimmter Benutzer am Client angemeldet ist. Klicken Sie auf den Button rechts neben dem Eingabefeld und es werden Ihnen alle vorhandenen und bekannten User einer Domain aufgelistet. Markieren Sie einen entsprechenden User und klicken Sie auf Hinzufügen. Wenn Sie alle nötigen User hinzugefügt haben klicken Sie auf OK. |
If registry value name exists | Mit dieser Bedingung können Sie überprüfen, ob ein bestimmter Schlüssel der Registry existiert und einen bestimmten Wert besitzt. Geben Sie dazu aus dem DropDown – Feld den Hauptschlüssel und anschließend den Unterschlüssel an. Den Wert tragen Sie ebenfalls ein. Über den Button unter den Eingabefeldern öffnet Sich ein Registryeditor, womit Sie einen Schlüssel direkt auswählen können. |
If command has been executed | Mit dieser Bedingung können Sie überprüfen, ob ein bestimmtes ClientCommand zuvor ausgeführt wurde. Weiterhin können Sie überprüfen, ob das Client Command die richtige Version besaß. In der Dropdown Box haben sie die Möglichkeit, das Prüfverhalten zu wählen. Hier stehen ihnen die Optionen "Automatic", "Machine and User", "Only User" und "Only Machine" zur Auswahl. |
Is RAM capacity | Mit dieser Bedingung können Sie den freien Arbeitsspeicher überprüfen. Dazu stehen Ihnen die mathematischen Operatoren zur Verfügung wozu Sie noch die Größe des RAM angeben. |
Is free disk space | Mit dieser Bedingung können Sie den freien Speicher einer Partition der Festplatte überprüfen. Dazu stehen Ihnen die mathematischen Operatoren zur Verfügung wozu Sie noch die Größe des Speichers sowie die Partition angeben. |
If directory exists | Mit dieser Bedingung können Sie überprüfen, ob ein bestimmtes Verzeichnis existiert. Dazu geben Sie einfach das entsprechende Verzeichnis an. |
If file exists | Mit dieser Bedingung können Sie überprüfen, ob eine bestimmte Datei existiert. Dazu geben Sie die entsprechende Datei. |
Is user in group | Mit dieser Bedingung können Sie überprüfen, ob der am Client angemeldete Benutzer in einer bestimmte Gruppe der Domain ist. Klicken Sie auf den Button rechts neben dem Eingabefeld und es werden Ihnen alle vorhandenen Gruppen einer Domain aufgelistet, Markieren Sie eine Gruppe und klicken Sie auf Hinzufügen. Wenn Sie alle nötigen Gruppen hinzugefügt haben klicken Sie auf OK. |
If registry key exists | Mit dieser Bedingung können Sie überprüfen, ob ein bestimmter Schlüssel der Registry existiert. Geben Sie dazu aus dem DropDown – Feld den Hauptschlüssel und anschließend den Unterschlüssel an. Über den Button unter den Eingabefeldern öffnet Sich ein Registryeditor, womit Sie einen Schlüssel direkt auswählen können. |
If ADS container / Property match | Mit dieser Bedingung können Sie überprüfen, ob der aktuelle Benutzer bzw. der Client in einem bestimmten ActiveDirectory – Container liegt oder eine bestimmte Eigenschaft besitzt. Um die AD – Container bzw. die Eigenschaften auszuwählen, klicken Sie auf den Button rechts neben dem Eingabefeld. |
Is user local admin | Mit dieser Bedingung können Sie überprüfen, ob der angemeldete Benutzer lokale Administratorrechte besitzt. |
Is operating system | Mit dieser Bedingung können Sie überprüfen, ob das Betriebssystem eine bestimmte Version besitzt, z.B. Windows XP oder Windows 8. Wählen Sie dazu einfach die passende Version aus dem DropDown–Feld. |
Is machine name | Mit dieser Bedingung können Sie überprüfen, ob der Rechnername gleich einem angegebenen Namen ist. Dazu klicken Sie auf den Button rechts neben dem Eingabefeld. Dort werden Ihnen alle Rechner einer Domain aufgelistet. Klicken Sie auf den Button darunter, werden ihnen nur Rechner aufgelistet, welche im ACMP inventarisiert sind. |
Is in container | Mit dieser Bedingung können Sie überprüfen, ob der inventarisierte Rechner in einem bestimmten Container (siehe 6. Containers) liegt. Markieren Sie dazu die entsprechenden Container. |
Compare strings | Mit dieser Bedingung können Sie überprüfen, ob zwei Zeichenketten gleich sind. So können Sie z.B. als erste Zeichenkette eine ACMP – Variable eingeben und als zweite Zeichenkette einen bestimmten Wert. Variablen werden im Format %Variablenname% angegeben. Variablen finden Sie unter dem Punkt Variablen editieren im Menüpunkt Programm. |
Variablen bearbeiten
Variablen dienen dazu, bestimmte Werte zu speichern. Dabei gibt es Projekt-, Console-, System- und globale ACMP Variablen. Diese unterscheiden sich in der Verwendung:
Diese Variablen bestehen nur in dem aktuellen Projekt und können nicht in anderen Projekten genutzt werden. | |
Diese Variablen stehen im gesamten ACMP–Umfeld zur Verfügung und können in allen Projekten genutzt werden, müssen jedoch explizit angelegt werden. | |
Diese Variablen beschreiben das aktuelle System, auf welchem das Client Command ausgeführt werden soll. So lassen sich einfach Rechnerbezogene Werte auslesen (Name, Verzeichnisse, Betriebssystem). Diese Variablen können nur gelesen werden. | |
Diese Variablen beschreiben Eigenschaften der Console und können nur gelesen werden. |
Variablen können auch direkt mit der Schreibweise %VARIABLENAME% verwendet werden. Auf diese Weise wird bei der Ausgabe direkt der Inhalt der Variablen eingefügt.
Auf diese Weise wird nicht der Inhalt der Variable, sondern der Name der Variablen angezeigt. Beachten Sie außerdem, dass das %-Zeichen bei normaler Verwendung immer mit einem weiteren vorangestellten %-Zeichen geschrieben wird. Somit wird verhindert, dass ACMP versucht den Text als Variable zu interpretieren.
Dies ist besonders wichtig, wenn Sie Execute batch-file command oder ähnliche Kommandos verwenden, in denen Sie Quellcode angeben. Achten Sie darauf alle %-Zeichen, zu escapen, da ansonsten das Skript nicht korrekt interpretiert und ausgeführt wird. Hierzu zählen insbesondere Variablen in Shellskripten, wie z.B.:
echo %%i
)
Um obenstehende Beispiel zu erhalten, geben Sie folgenden Quellcode an:
echo %%%%i
)
Über das Menü Projekt im Client Command Editor erreichen Sie die Option Variablen editieren. Dort finden Sie alle ACMP Variablen (Name) mit Ihrem aktuellen Wert und einer Option, welche angibt, ob die Variable veränderbar (Beschreibbar) ist.
Um eine neue Variable hinzuzufügen, tragen Sie den Variablennamen und eventuell einen Standartwert ein. Über den +-Button rechts neben dem Variablennamen fügen Sie die Variable den ACMP Variablen hinzu und können diese in Ihren Commands nutzen.
Bei der Erstellung von Funktionen (siehe Funktionen verwalten) gibt es zusätzlich die Möglichkeit, eine Variable als Parameter zu markieren. Solche Variablen können dynamisch mit Werten belegt werden.
Falls Sie auf den Button rechts neben der Eingabe für den Standardwert klicken, wird der eingegebene Wert als aktueller Wert für die markierte Variable gesetzt. So können Sie z.B. einen Startwert und einen Standardwert (Ersatzwert) wählen.
Nutzung von Variablen
Variablen können Werte an Kommandos übergeben oder als Ergebnisvariablen agieren, deren Inhalt in den folgenden Kommandos wiederum Werte übergibt. Sie können Variablenwerte in Ihren Client Commands ändern, indem Sie die Funktionen Set projekt variables nutzen. Handelt es sich um Variablen mit einem Zahlenwert, z.B. eine Zählvariable in einer Schleife, kann der Wert erhöht oder verringert werden, indem die Kommandos Increase Variable bzw. Decrease Variable genutzt werden.
Enthält eine Variable eine Pfadangabe, sollten Sie überprüfen, ob die Pfadangabe mit oder ohne Backslash endet. Dies ist wichtig, falls Sie die Pfadangabe manuell um eine Unterorderstruktur erweitern, wie z.B. %windir%\system32\calc.exe. Dabei schließen ACMP-interne Pfadangaben immer mit einem Backslash ab, wohingegen Umgebungsvariablen des Betriebssystems nicht immer einen abschließenden Backslash enthalten. Wenn Sie sich nicht sicher sind, können Sie automatisch einen abschließenden Backslash einbinden, indem Sie ein Delphi Skript mit folgendem Inhalt in ein Client Command oder eine Funktion einfügen:
CurrentVarContent, NewVarContent: String;
Begin
CurrentVarContent := GetVarContent(‘Name der zu prüfenden Variable‘);
CurrentVarContent := IncludeTrailingPathDelimiter(CurrentVarContent);
GetVarContent(‘Name der zu prüfenden Variable‘, CurrentVarContent);
End
Wenn Sie eine Variable in einem Kommando eintragen wollen, erreichen Sie eine Auflistung aller verfügbaren Variablen, indem Sie die Tastenkombination Strg + Leertaste verwenden. Falls Sie Variablen per Hand eintragen, verwenden Sie das Format %Variablenname%. Benötigen Sie einen speziellen Wert einer gesetzten Variablen, können Sie diesen über das Format %Variablenname.Eigenschaft% aufrufen.
Ein Beispiel:
In einem Client Command wollen Sie die Variable URL mit mehreren Werten beschreiben. Dazu erstellen Sie eine Variable mit dem Namen URL und geben Eigenschaften im folgenden Format an:
Mehrere Eigenschaften werden hierbei durch ein Komma ohne folgendes Leerzeichen getrennt.
Einzelne Werte erreichen Sie nun über den Namen der Variablen mit Ihrer Eigenschaft:
Variablen sollten kein Gleichheitszeichen oder Komma enthalten, da es sonst auf Grund des Parsings von Delphi zu Problemen kommen kann.