<
Von Version < 5.1 >
bearbeitet von Jannis Klein
am 2021/11/11 08:48
Auf Version < 6.1 >
bearbeitet von Jannis Klein
am 2021/11/11 08:51
>
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -16,6 +16,213 @@
16 16  
17 17  = Consolenskript konfigurieren =
18 18  
19 +
20 +Um auf einem Client die Dienste auszulesen, ist ein Consolen-Skript eigentlich nicht erforderlich. Jedoch kann in diesem Fall z.B. ein Dialog für denjenigen angezeigt werden, welcher das Client Command aus einer Console heraus ausführt. Somit würde die ausführende Person nochmals angezeigt bekommen, was das Client Command für eine Aufgabe besitzt und wie diese ausgeführt wird. Über solch einen Dialog könnte ein evtl. falsch gewähltes Client Command auch noch abgebrochen werden.
21 +
22 +
23 +Um diesen Dialog aufzurufen, ziehen Sie das Kommando Dialogs aus der linksseitigen Commandlist in den Skriptbereich. Es öffnet sich ein Fenster, über welches der Dialog nun konfiguriert wird (siehe [[Kategorie Dialogs>>url:https://manual.aagon.com/acmp/de/61/kategoriedialogs.htm]]). Geben Sie unter dem Tab Allgemein als Beschreibung der Aktion den Text Information ein. Weitere Angaben sind hier nicht notwendig. Wechseln Sie nun zum Tab Nachrichteneinstellungen. Geben Sie hier den Titel Dienste auslesen und eine passende Nachricht ein. Folgende Nachricht ist im vorhandenen Client Command eingegeben worden:
24 +
25 +
26 + Es wird jetzt der Name, der Status und der Starttyp der installierten Dienste auf den
27 +
28 + markierten Rechnern ausgelesen und in deren Client Details als individuelle Felder
29 +
30 + abgelegt. (Client Details > Software > Computer > Individual Fields).
31 +
32 +
33 +Was es dabei mit den Individuellen Feldern auf sich hat, erfahren Sie später bei der Zusammenstellung des Clientskript bzw. im Kapitel 7. Individuelle Felder.
34 +
35 +
36 +Da der Benutzer des Client Command über den hier zu konfigurierenden Dialog eine Information erhalten soll, wählen Sie Information als Nachrichtentyp. Ebenso werden auch nur die Buttons OK und Abbrechen benötigt, welche Sie über die entsprechenden Checkboxen aktivieren.
37 +
38 +
39 +Um die Ausführung des Client Command abbrechen zu können, falls dieses nur versehentlich ausgeführt wurde, wird der Abbrechen Button auch mit dem Abbrechen des gesamten Client Command verbunden, indem ein Haken in der Abbrechen Checkbox im Bereich Abbruch auf Button(s) gesetzt wird.
40 +
41 +
42 +Eine Variable muss nicht angegeben werden, da die weitere Ausführung des Client Command einzig und allein von den Buttons abhängt. Somit müssen auch keine An-/Eingaben verarbeitet werden.
43 +
44 +
45 +Unter dem Tab Eingabeeinstellungen werden keine Konfigurationen vorgenommen, da keine weiteren Eingaben vom Benutzer erwartet werden, als ein Klick auf OK oder Abbrechen.
46 +
47 +
48 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_4fb5c6c9.png||alt="Einen Dialog hinzufügen" height="590" width="757"]]
49 +
50 +Einen Dialog hinzufügen
51 +
52 +
53 +Unter dem Tab Erweiterte Einstellungen wird das automatische Schließen des Dialogs auf 25 Sekunden ausgelegt. Dabei wird ebenfalls das Client Command beendet, falls der Benutzer diesen Dialog innerhalb der angegebenen Zeit nicht bestätigt.
54 +
55 +
56 +Klicken Sie auf den OK Button um die Konfiguration so zu übernehmen. Das Kommando wird nun in das Client Command integriert. Wechseln Sie nun über die seitlichen Tabs zum Clientskript.
57 +
19 19  = Clientskript konfigurieren =
20 20  
60 +
61 +Dieses Skript wird auf einem Client ausgeführt und muss, da das Client Command die Dienste des Client auslesen soll, die entsprechenden Kommandos enthalten. Das Konzept hierfür sieht so aus, dass das aktuelle Datum inkl. der Uhrzeit sowie der Dienstname, der Status des Dienstes und der Starttyp gespeichert werden soll. Dazu sind acht einzelne Kommandos nötig.
62 +
63 +
64 +====== Zeiterfassung ======
65 +
66 +Als erstes sollte die Zeit erfasst werden. Dazu ziehen Sie das Kommando Get date/time per Drag&Drop aus der Commandliste in den Skript–Bereich. Im Details Tab geben Sie an, dass Sie die/das Aktuelle Zeit/Datum nutzen wollen. Als Format wählen Sie dd.mm.yyyy, hh.nn. Somit erhalten Sie z.B. das Datum 09.02.2017, 16.31, welches in einer Variablen gespeichert wird. Diese Variable geben Sie im unteren Dialogbereich an. Erstellen Sie dazu eine Variable TIME (siehe [[Variablen>>url:https://manual.aagon.com/acmp/de/61/variablenbearbeiten.htm]]).
67 +
68 +
69 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_aa5d9278.png||alt="5.3.1.2 - Zeit" height="483" width="552"]]
70 +
71 +Zeiterfassen
72 +
73 +
74 +====== Variable setzen ======
75 +
76 +Als nächstes ist eine Variable zu setzen. Dies ist nötig, da die alten Daten vor dem Speichern des ersten ausgelesenen Dienstes gelöscht werden müssen, um keine doppelten oder veralteten Einträge zu besitzen. Später dürfen die neu gelesenen und eingetragenen Dienste aber nicht vom folgenden Dienst beim Speichern gelöscht werden.
77 +
78 +
79 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_44b6c198.png||alt="Variable setzen" height="449" width="467"]]
80 +
81 +Variable setzen
82 +
83 +
84 +Um eine Variable zu setzen, wählen Sie das Kommando Set project variable und ziehen es per Drag&Drop in den Skript–Bereich. Erzeugen Sie über den sich öffnenden Dialog eine Variable mit dem Namen COUNT. Anschließend geben Sie als Inhalt eine 1 ein.
85 +
86 +
87 +====== Auslesen der Dienste ======
88 +
89 +Nun werden die Dienste des Clients ausgelesen. Dazu verwenden Sie das Kommando WMI Query welches Sie per Drag&Drop in den Skript–Bereich ziehen.
90 +
91 +
92 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_e3fc5cf5.png||alt="Auslesen der Dienste" height="518" width="599"]]
93 +
94 +Auslesen der Dienste
95 +
96 +
97 +Geben Sie unter dem Tab Details den Einfachen Modus an. Wählen Sie als Namespace den DropDown–Eintrag root\CIMV2. Die dazu gehörige WMI Klasse ist Win32_Service und kann manuell oder über den nebenstehenden Button eingetragen werden. Bei der Nutzung des Buttons erscheint ein Dialog mit einer Auflistung aller WMI Klassen des gewählten Namespace. Eine Angabe von Bedingungen ist nicht notwendig, da alle Daten der Dienste ausgelesen werden sollen.
98 +
99 +
100 +Geben Sie die Variable SERVICE als Ergebnisvariable an. In dieser Variablen wird ein Dienst gespeichert, alle diesem Kommando untergeordneten Kommandos ausgeführt und der nächste Dienst ausgelesen. Unter dem Tab Entfernter Rechner müssen keine Angaben gemacht werden, da dieses Kommando lokal ausgeführt werden soll.
101 +
102 +
103 +====== If – Bedingung ======
104 +
105 +Um nun vor dem Speichern des ersten erfassten Dienstes die alten Daten zu löschen, wird eine Verzweigung in das Skript eingebaut. Ziehen Sie dazu das If-Kommando in das Skript und geben Sie unter dem Tab Details den Wert 1 an, indem Sie die eben angelegte Variable COUNT eintragen ~(%COUNT%).
106 +
107 +
108 +Da auf Gleichheit mit 1 getestet werden soll, wird der entsprechende Operator ausgewählt und als Wert2 eine 1 eingetragen. Die Optionen sind hierbei egal, da es sich um Zahlen und nicht um Zeichenketten handelt. Anschließend ordnen Sie dieses Kommando mit Hilfe der Pfeil-Button dem Kommando WMI Query unter, ähnlich einem Unterordner im Explorer.
109 +
110 +
111 +====== Then – Folge / Daten speichern ======
112 +
113 +Falls die gerade definierte Bedingung zutrifft (Count=1), werden alle Kommandos ausgeführt, welche dem If–Kommando (mit Hilfe der Pfeil-Button) untergeordnet werden.
114 +
115 +
116 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_d8eee91a.png||alt="Then - Folge / Daten speichern" height="572" width="536"]]
117 +
118 +Then - Folge / Daten speichern
119 +
120 +
121 +Um die Daten des eben ausgelesenen Dienstes zu speichern, ziehen Sie das Kommando Store Value on server (Client) in das Skript. Unter dem Tab Details stellen Sie die Option auf Mehrfachwert auf dem Server sichern. Ganz wichtig ist nun die Option Alte Werte löschen, welche Sie aktivieren. Somit werden die alten Daten der Dienste gelöscht, bevor neue Daten gespeichert werden. Ebenso ist genau diese Option der Grund für die Variable COUNT sowie die If-Else-Verzweigung. Da die Variable Count später erhöht wird, wird dieses Kommando nicht wieder ausgeführt. Dazu später mehr.
122 +
123 +
124 +Suchen Sie nun die Felder aus dem Bereich Feld, in welchen die Daten der ausgelesenen Dienste gespeichert werden sollen. Per Doppelklick wird ein Feld im unteren Bereich eingeblendet. Hier werden nun die Felder Dienstname, Status, Starttyp und Zuletzt ausgelesen genutzt. Diese Felder wurden allerdings vorher in den Benutzerdefinierte Felder angelegt (siehe [[Benutzerdefinierte Felder>>url:https://manual.aagon.com/acmp/de/61/benutzerdefinierte_felder.htm]]).
125 +
126 +
127 +Sind nun die benötigten Felder alle im unteren Bereich (Wert) vorhanden, können diesen die entsprechenden Werte zugewiesen werden. Die Werte wurden zuvor in die Variable SERVICE eingelesen, welche nun genutzt werden kann:
128 +
129 +
130 +|(((
131 +Dienstname
132 +
133 +Status
134 +
135 +Starttyp
136 +
137 +Zuletzt ausgelesen
138 +)))|(((
139 +%SERVICE.caption%
140 +
141 +%SERVICE.state%
142 +
143 +%SERVICE.startmode%
144 +
145 +%TIME%
146 +)))
147 +
148 +
149 +Die Eigenschaften der Variable SERVICE  (caption, state, startmode) werden durch die Daten der Abfrage (Kommando WMI Query) vorgegeben. Die Variable TIME wurde bereits am Anfang des Skripts angelegt.
150 +
151 +
152 +====== Else-Bedingung ======
153 +
154 +Um alle weiteren Dienste, welche ausgelesen werden, ebenfalls zu speichern benötigen Sie zunächst eine Else-Verzweigung. Ziehen Sie das entsprechende Kommando in das Skript und ordnen Sie es mit Hilfe der Pfeil-Buttons in der gleichen Spalte wie das If–Kommando an.
155 +
156 +
157 +====== Then – Folge / Daten speichern ======
158 +
159 +Nun werden alle Kommandos ausgeführt, welche dem Else–Kommando (mit Hilfe der Pfeil-Buttons untergeordnet werden.
160 +
161 +
162 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_034a5ea8.png||alt="5.3.1.2 - alteWerteLöschen" height="57" width="409"]]
163 +
164 +
165 +Um die Daten des eben ausgelesenen Dienstes zu speichern, ziehen Sie das Kommando Store Value on server (Client) in das Skript. Unter dem Tab Details stellen Sie die Option auf Mehrfachwert auf dem Server sichern. Die Option Alte Werte löschen aktivieren Sie diesmal nicht. Somit werden die neuen Daten der Dienste gespeichert, ohne dass die alten gelöscht werden.
166 +
167 +
168 +Suchen Sie nun die Felder aus dem Bereich Feld, in welchen die Daten der ausgelesenen Dienste gespeichert werden sollen. Per Doppelklick wird ein Feld im unteren Bereich eingeblendet. Hier werden nun die Felder Dienstname, Status, Starttyp und Zuletzt ausgelesen genutzt. Diese Felder wurden allerdings vorher in den Benutzerdefinierte Felder angelegt (siehe [[Benutzerdefinierte Felder>>url:https://manual.aagon.com/acmp/de/61/benutzerdefinierte_felder.htm]]). Sind nun die benötigten Felder alle im unteren Bereich (Wert) vorhanden, können diesen die entsprechenden Werte zugewiesen werden. Die Werte wurden zuvor in die Variable SERVICE eingelesen, welche nun genutzt werden kann:
169 +
170 +
171 +|(((
172 +Dienstname
173 +
174 +Status
175 +
176 +Starttyp
177 +
178 +Zuletzt ausgelesen
179 +)))|(((
180 +%SERVICE.caption%
181 +
182 +%SERVICE.state%
183 +
184 +%SERVICE.startmode%
185 +
186 +%TIME%
187 +)))
188 +
189 +
190 +Die Eigenschaften der Variable SERVICE (caption, state, startmode) werden durch die Daten der Abfrage (Kommando WMI Query) vorgegeben. Die Variable TIME wurde bereits am Anfang des Skripts angelegt.
191 +
192 +
193 +====== Änderung der Variable ======
194 +
195 +Damit die alten Daten nur einmal, nämlich im ersten Durchlauf, gelöscht werden, muss die Variable COUNT erhöht werden. Erst dann funktioniert der gesamte Aufbau mit dem If–Else–Konstrukt. Ziehen Sie hierzu das Kommando Increase Variable in das Skript und ordnen Sie es mit Hilfe der Pfeil-Button in der gleichen Spalte wie das If–Kommando an. Geben Sie unter dem Tab Details als Variablenname die Variable COUNT an und als Schritt 1.
196 +
197 +
198 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_e2dff2a0.png||alt="5.3.1.2 - Ergebnis" height="641" width="1065"]]
199 +
200 +
201 +Das Client Command ist nun vollständig und kann lokal getestet werden.
202 +
21 21  = Skripte testen =
204 +
205 +
206 +Um nun zu testen, ob das Client Command bzw. die einzelnen Skripte ordnungsgemäß funktionieren, lassen Sie zunächst eine Syntaxüberprüfung durchlaufen. Klicken Sie dazu auf das entsprechende Icon ([[image:https://manual.aagon.com/acmp/de/61/check_green_zoom20.png||alt="Check_Green" height="6" width="6"]]) in der Schnellwahlleiste. Anschließend wird die Syntax des Skripts automatisch geprüft, wonach Sie per Dialog über das Ergebnis informiert werden.
207 +
208 +
209 +Setzen Sie einen Breakpoint in der achten (letzten) Zeile. Klicken Sie dazu einfach neben die Zeilennummer. Es erscheint ein roter Punkt an dieser Stelle. Ebenso können Sie die verwendeten Variablen über einen Rechtsklick in den Variablenverlauf eintragen. Somit lassen sich die Werte der Variablen anzeigen.
210 +
211 +
212 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_c2571d62.png||alt="Breakpoint setzen" height="52" width="401"]]
213 +
214 +Breakpoint setzen
215 +
216 +
217 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_0932c6e4.png||alt="Variable hinzufügen" height="93" width="323"]]
218 +
219 +Variable hinzufügen
220 +
221 +
222 +Lassen Sie das Skript nun laufen, indem Sie auf das Start–Icon ([[image:https://manual.aagon.com/acmp/de/61/clientcommandphase_execute_zoom20.png||alt="ClientCommandPhase_Execute" height="6" width="6"]]) klicken. Sie sehen anhand der Statusspalte im Skript, dass nur der erste Teil der If-Else–Verzweigung ausgeführt wurde, im Ablauflog die bisherigen Aktionen zu sehen sind und im Variablenlog die aktuellen Werte eingetragen sind.
223 +
224 +
225 +[[image:https://manual.aagon.com/acmp/de/61/hmfile_hash_85a8ec5e.png||alt="5.3.1.3 - Test" height="674" width="852"]]
226 +
227 +
228 +Klicken Sie nochmals auf Start und Sie sehen anhand der Statusspalte des Skripts, dass dieses Mal der zweite Teil der If-Else–Verzweigung ausgeführt wurde. Ebenso lassen sich wieder die bisherigen Aktionen und Variablenzustände einsehen. Verläuft das Skript/Client Command korrekt, speichern Sie dieses über das entsprechende Icon und lassen sich evtl. eine Zusammenfassung ausgeben. Schließen Sie nun den Editor.

Navigation

© Aagon GmbH 2024
Besuchen Sie unsere neue Aagon-Community