NWC Services Blog
In diesem Artikel möchte ich ein etwas älteres Feature der DSM beschreiben (Bestandteil seit DSM 7.2.1), welches bei der Verwendung von Job-Scripts sehr hilfreich sein kann, jedoch relativ unbekannt ist. Das neu eingeführte Feature wurde zwar in den Release Notes erwähnt und ist auch in der Online-Hilfe dokumentiert, dennoch zeigt die Erfahrung, dass nur wenige DSM-Kunden Kenntnis über die Existenz oder Verwendung haben.
Es handelt sich um die Möglichkeit, in Job-Scripts auf die Werte von Variablen und Installationsparametern von Aufrufpaketen (Main Packages) zugreifen zu können.
Wer sich schon einmal aufmerksam durch die DSM Logs gearbeitet hat, wird schon mal auf die Variablen "_LAST_ERROR_TEXT" und "_ERROR_SEVERITY" gestossen sein. Diese Variablen werden ggf. gefüllt, wenn ein interner DSM Befehl nicht funktioniert hat. I.d.R. ist die Auswertung der internen DSM Befehle allerding nicht sonderlich relevant. Simple Befehle wie ein "InstallFileList" erkenne selber, wenn eine interne Funktion (z.B. aufgrund eines Filelocks) eine Fehler erzeugt hat.
Allerdings gilt dies nicht für alle Befehle oder alle Konstellationen von Befehlen. Kann z.B. ein "LocalGroupAddMember" Befehl den User, der in die Gruppe hinzugefügt werden soll nicht auflösen, wird das eScript trotzdem mit "Erfolg" verlassen. Im Worst case erfährt der Administrator also niemals etwas davon, dass ein Paket fehlgeschlagen ist. Die beiden oben genannten Variablen helfen bei der Fehleranalyse. Im Beispiel des "LocalGroupAddMember" Befehls wird (bei Fehler) die "ERROR_SEVERITY" mit "3" befüllt, der "_LAST_ERROR_TEXT" mit einem Informationstext über die Ursache des Problems. Folgende Randbedingungen sind beim Einsatz dieser Variablen zu beachten:
Mit Einführung der DSM 7, gibt es ein neues Feature, welches von den meisten Paketierern wohl sehnsüchtig erwartet wird.
Sobald ein neues eScript oder MSI Paket erstellt wird, sollten div. Informationen im Skript schon vorhanden sein. Dazu können ein Header, Return Code Variablen, Deinstallations Sektion usw. gehören.
Am einfachsten ist es, sich ein Referenz eScript zu erstellen und die dort vorhandene Script.inc aus dem Paketverzeichnis als Vorlage zu nehmen.