You searched for registry abfrage - Workplace Management Blog https://www.wpm-blog.de/ ... ideas and solutions making workplace management easier Sun, 24 Nov 2024 16:54:37 +0000 de hourly 1 https://wordpress.org/?v=6.1.7 ErrorLevel Abfrage bei Unattended Installationen https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/ https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/#respond Mon, 19 Oct 2020 19:33:23 +0000 https://www.wpm-blog.de/?p=2652 Matrix42 liefert eine Setup.inf Vorlage mit, die für „Silent“ Installationen von EXE Dateien genutzt werden kann. Diese Vorlage ist jedoch meines Erachtens sehr „rudimentär“ und an einer Stelle sogar gefährlich bis falsch. In den kommenden … Weiterlesen

Der Beitrag ErrorLevel Abfrage bei Unattended Installationen erschien zuerst auf Workplace Management Blog.

]]>
Matrix42 liefert eine Setup.inf Vorlage mit, die für „Silent“ Installationen von EXE Dateien genutzt werden kann. Diese Vorlage ist jedoch meines Erachtens sehr „rudimentär“ und an einer Stelle sogar gefährlich bis falsch. In den kommenden Tagen möchte ich mit Euch diese Vorlage Stück für Stück verändern. Wahrscheinlich gibt es am Ende immer noch „Luft“ nach oben, da jeder noch ein paar andere Vorstellungen, Vorlieben, etc. hat. Doch halten wir es Mal wie mit einer Fahrt in den Urlaub – „der Weg ist das Ziel“.

Welche Datei meine ich denn nun genau?

Es geht um die Unattended.inf im Empirum\Configurator\Packages\Matrix42\Packaging Center\<Version>\Templates Ordner. Diese wird bei der Auswahl „Unattended“ im Verlaufe des „Package Wizards“ herangezogen.

Erfolgsüberprüfung

Nach dem „silent“ Aufruf einer EXE Datei, wird eine, wie ich sie nenne, „Erfolgsüberprüfung“ durchgeführt. Denn jede Setup.inf, die nicht mit einem „Abort“ beendet wird, wird per se als Erfolg gewertet. Sprich, wir sollten nach dem Aufruf eines externen Programms (Setup.exe, Installer, etc.) überprüfen, ob eingetroffen ist, was wir erwarten würden. Andernfalls, kann ein Paket ein „Success“ zurückmelden und die Software ist nicht installiert.

ErrorLevel Abfrage in der Vorlage

Die oben angesprochene Setup.inf Vorlage prüft deswegen nach einem Aufruf einer Installation den ErrorLevel ab. Weit verbreitet ist ein ErrorLevel mit dem Wert 0 ein Erfolg. Deswegen enthält die Vorlage auch die nachfolgende Zeile:

If "%ErrorLevel%" <> "0" Then "SET:InstallationError" EndIf

Doch was passiert, wenn die Installation z.B. einen Wert von 3010 zurückliefert? Ist dann ein Fehler aufgetreten? Nein. Der Wert 3010 bedeutet beispielsweise, die Installation war erfolgreich, doch es wird zusätzlich ein Neustart benötigt. Microsoft hat es mit den MSI Installern begonnen und einige haben diese Werte übernommen oder rufen in ihrer EXE Datei eine MSI Installation auf und geben den ErrorLevel der MSI Installation zurück.

Anpassung

Diese Anpassung setzt automatisch eine Neustart-Anforderung für dieses Paket und wertet den Rückgabewert von 3010 nicht als Fehler.

If "%ErrorLevel%" == "3010" Then "RebootRequired" EndIf
If "%ErrorLevel%" <> "0" & "%ErrorLevel%" <> "3010" Then "SET:InstallationError" EndIf

[RebootRequired]
SetReboot 1
-SetReboot 1

Wer noch weiter gehen möchte, für z.B. VCRedist Installationen oder Updates, der kann zusätzlich noch den Wert 1638 (Another version of this product is already installed) überprüfen.

ErrorLevel oder gibt es auch andere Methoden

Der ErrorLevel ist nicht die einzig wahre Methode. Natürlich kannst Du auch überprüfen, ob es einen bestimmten Registry Wert nach der Installation gibt, den es zuvor nicht gibt. Eine Überprüfung, ob die Software in Form ihrer ausführbaren Date vorhanden ist, kann genauso gut sein. Zu diesen Abfragen kommen wir dann bei den nächsten Tipps. Falls Du bereits Neugierig bist, so kannst Du in der Hilfe nach DoesRegKeyExist oder DoesFileExists suchen. Die DoesRegKeyExist Abfrage ist auch in der MSI.inf (Vorlage für MSI Installationen) enthalten ;-).

 

Der Beitrag ErrorLevel Abfrage bei Unattended Installationen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/feed/ 0
Empirum – Software Paketierung Selbststudium https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/ https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/#comments Mon, 08 Sep 2014 21:29:53 +0000 https://www.wpm-blog.de/?p=1317 Im Laufe der Zeit habe ich nun bereits einige Artikel veröffentlicht, die sich immer wieder um die Software Paketierung bzw. Software Verteilung mit Empirum (Matrix42 Physical Workspace Management, UEM – Unified Endpoint Management, Client-Management) drehen. … Weiterlesen

Der Beitrag Empirum – Software Paketierung Selbststudium erschien zuerst auf Workplace Management Blog.

]]>
Empirum Software ManagementIm Laufe der Zeit habe ich nun bereits einige Artikel veröffentlicht, die sich immer wieder um die Software Paketierung bzw. Software Verteilung mit Empirum (Matrix42 Physical Workspace Management, UEM – Unified Endpoint Management, Client-Management) drehen. Damit man die einzelnen Artikel einfacher für ein Selbststudium nutzen kann, habe hier einmal alle Artikel mit dem Bezug zur Software Paketierung und Verteilung zusammengefasst, somit eine Art Anleitung zur „Empirum Paketierung“. Da die Seitenlinks recht selbst sprechend sind, habe ich mir jetzt auch nicht mehr die Mühe gemacht, diese nochmals „hübsch“ aufzubereiten. Für die regelmäßigen Leser gibt es hier nichts Neues – für alle anderen eine „interne“ Link-Sammlung.

Los geht’s!

Diese Linksammlung ist auf dem Stand: 07.04.2020

Generelles

Erstes Paket erstellen und verteilen

Paketierung – Erweitert

Software-Management

Paketierung – Besonderes zur Verteilung

Anpassen der Paketierungsvorlagen

Der Beitrag Empirum – Software Paketierung Selbststudium erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/feed/ 2
Softwarepakete: Updateverhalten, Verteilen von neuen Versionen https://www.wpm-blog.de/softwarepakete-updateverhalten-verteilen-von-neuen-versionen/ https://www.wpm-blog.de/softwarepakete-updateverhalten-verteilen-von-neuen-versionen/#comments Wed, 23 Oct 2013 19:32:42 +0000 https://www.wpm-blog.de/?p=1110 Nachdem die ersten Softwarepakete erstellt und verteilt wurden, kommen immer wieder die folgenden Fragen auf: Wie verteile ich neue Versionen von bestehender Software? Wie rolle ich diese Versionen aus? Was ist zu beachten? Wichtige Grundlagen zu … Weiterlesen

Der Beitrag Softwarepakete: Updateverhalten, Verteilen von neuen Versionen erschien zuerst auf Workplace Management Blog.

]]>
Nachdem die ersten Softwarepakete erstellt und verteilt wurden, kommen immer wieder die folgenden Fragen auf:

  • Wie verteile ich neue Versionen von bestehender Software?
  • Wie rolle ich diese Versionen aus?
  • Was ist zu beachten?

Wichtige Grundlagen zu diesem Thema sind bereits in diesem Beitrag erläutert: Empirum Paket – Registry, SoftwareDepot, Version.

In Kurzform ist folgendes für die neue Version wichtig:

  • Der Herstellername (DeveloperName) und Softwarename (ProductName) der Versionen sind identisch.
  • Es ist lediglich die Version unterschiedlich und in diesem Falle die neuere Version höher als die alte.
  • Die MachinekeyName Einträge (und somit im SoftwareDepot: Registrierung, Schlüssel) sind identisch.

Sind diese Voraussetzungen erfüllt kann das neue Paket dem Computer, der die Vorgängerversion zugewiesen hat, zugewiesen werden. Dazu die neue Version dem Computer mit den Verteilungsoptionen „Installieren, Erneuern“ zuweisen. Die alte Version aus der Zuweisung löschen. Bei der kommenden Abfrage: „Löschen“ auswählen. Dies bedeutet, dass der Verteilbefehl gelöscht wird und somit nur noch der Verteilbefehl für die neuere Version aktiv ist.

Findet nun die Softwareverteilung auf dem Zielcomputer eine Altversion anhand der MachineKeyName Werte in der Registry vor, so wird eine Deinstallation mit der lokal vorgehaltenen Setup.inf durchgeführt (AskUninstallOld=1). Dazu ist es wichtig, dass die Deinstallationsbefehle oder Zugriffe alle lokal erfolgen können! Häufig sorgen Zugriffe, in den betroffenen Sektionen für die Deinstallation, auf %SRC% oder ähnlich für Fehler bei der Deinstallation der Altversion. Ist die Altversion erfolgreich deinstalliert, beginnt die Installation der neuen Version.

Gibt es beim Testen (Deinstallation der Altversion), wie zuvor beschrieben, Probleme – und diese Probleme tauchen zumeist erst auch dann auf, wenn man die Nachfolgeversion paketiert hat, hat man noch „Handlungsspielraum“. Entweder man setzt nun die Vorgängerversion auf „Deinstallieren…“ anstatt „Löschen“ oder man passt das „neue“ Paket an (AskUninstallOld=0 und die Deinstallation auf Bedarf durchführen).

In einem anderen Beitrag werde ich der zumeist nachfolgenden Frage: „Wann passe ich die Version und wann die Revision an?“ nachgehen.

Der Beitrag Softwarepakete: Updateverhalten, Verteilen von neuen Versionen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/softwarepakete-updateverhalten-verteilen-von-neuen-versionen/feed/ 8
Wer ist der Hauptbenutzer eines Computers? https://www.wpm-blog.de/wer-ist-der-hauptbenutzer-eines-computers/ https://www.wpm-blog.de/wer-ist-der-hauptbenutzer-eines-computers/#comments Tue, 23 Jul 2013 19:47:51 +0000 https://www.wpm-blog.de/?p=1027 Das Matrix42 Empirum Inventory, als auch andere Inventory Lösungen finden heraus, wer gerade angemeldet ist. Viele Kunden nutzen diese Informationsbasis für Ihr Asset-Management bzw. bauen Ihre Asset-Management Informationen aus den Inventardaten auf. Die letzte Anmeldung … Weiterlesen

Der Beitrag Wer ist der Hauptbenutzer eines Computers? erschien zuerst auf Workplace Management Blog.

]]>
Das Matrix42 Empirum Inventory, als auch andere Inventory Lösungen finden heraus, wer gerade angemeldet ist. Viele Kunden nutzen diese Informationsbasis für Ihr Asset-Management bzw. bauen Ihre Asset-Management Informationen aus den Inventardaten auf. Die letzte Anmeldung an einem Computer spiegelt jedoch nicht den hauptsächlichen Benutzer (im Text Hauptbenutzer genannt) des Computers wieder. So habe ich in einer nächtlichen „Hobbyaktion“ das angehängte „SetComputerOwner“ entworfen.

„SetComputerOwner“ definiert den Hauptbenutzer eines Computers anhand der Häufigkeit der letzten Logins. Wenn ein Benutzer sich für eine bestimmte Anzahl hintereinander an einem Computer anmeldet, so wird dieser in einem separaten Registry Wert abgelegt. Hier wird je nach Konfiguration entweder nur der Login Name, oder zusätzlich der „Fullname“ aus dem Active Directory geholt.

Weitere Konfigurationsmöglichkeiten könnt ihr der unteren Übersicht entnehmen.

Dieses Programm ist dafür gedacht, mit dem Matrix42 Software-Management und Inventory zusammenzuarbeiten, da die Ziel Registry Schlüssel auch für einen normalen Benutzer beschreibbar sind. Wenn Sie dieses Programm auch anderweitig einsetzen wollen, so müssen Sie sicherstellen, dass „Vollzugriff“ Berechtigungen auf den HKLM\Software\Matrix42 Registry Schlüssel vorhanden sind.

Management Console

Darüber hinaus können diese Informationen auch direkt in der Management Console angezeigt werden. Dazu sind die „Zusätzlichen Informationen“ (Custom Fields) zu konfigurieren (EMC, Extras, Einstellungen, Zusätzliche Informationen).

Damit die Werte in der Management Console angezeigt werden, muss das Matrix42 Inventory nach dem Schreiben der Registry-Wert ausgeführt werden.

Konfiguration per Registry

Liste der Konfigurations-Möglichkeiten (alle REG_SZ):

  • CustomValueOSLogin = Custom29 (Standard)
  • CustomValueUsername = Custom30 (Standard)
  • GetFullname_from_AD = 1(Standard) oder 0 – Wenn der Wert 0 ist, wird keine Active Directory Abfrage getätigt bzw. versucht.
  • LastLogon = Zwischengespeicherte letzte Anmeldung.
  • LoginCount = Anzahl der Anmeldungen des LastLogon.
  • Threshold = 10 (Standard) – Setzt die Schwelle, ab wann der LastLogon als Besitzer gespeichert wird.
  • UserBlacklist = Komma separierte Liste von auszuschließenden Benutzern.
  • Debug = 1 – Wenn eine Log-Datei (SetComputerOwner.log) nach %TEMP% geschrieben werden soll.
  • CustomValueDepartment = Custom28 (Standard) (ab Version 1.1.0).
  • GetDepartment_from_AD = 0 (Standard) oder 1 – Wenn der Wert 0 ist, wird keine Active Directory Abfrage getätigt bzw. versucht (ab Version 1.1.0).
  • ForceGetADValues = 0 (Standard) oder 1 – Wenn der Wert 1 ist, dann werden nach dem Überschreiten des Schwellwertes die AD Werte immer aktualisiert (ab Version 1.1.0).

Die Konfiguration wird über die Registry, und hier der 32bit Schlüssel, getätigt.
Bei 32bit Windows Systemen hier: HKEY_LOCAL_MACHINE\SOFTWARE\matrix42\SetComputerOwner
Bei 64bit Windows Systemen hier: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\matrix42\SetComputerOwner

Wenn es keine Vorkonfiguration gibt, läuft SetComputerOwner mit Standard Einstellungen!

Download

Hier geht es zum Download:
SetComputerOwner (1579 Downloads )
MD5 Hashwert der Version 1.1.0: 4FB63950099CD81F7F21B780B0A7B52D

Aktualisierungen

Update (21.10.2013) – Seit heute steht eine neue Version 1.0.3 zur Verfügung, da es im vorbereiteten Paket zu Problemen unter Windows x64 kam.

Update (05.01.2020) – Seit heute steht die Version 1.1.0 zur Verfügung, die auch die Abteilungsinformation aus dem ActiveDirectory auslesen kann.

Genereller Hinweis

Hinweis: SetComputerOwner muss nicht über das angefügte Paket verteilt und aufgerufen werden. Du kannst selbst bestimmen, wann und wie das Tool aufgerufen wird. Wichtig ist lediglich, wie oben beschrieben, dass die Zielpfade in der Registry beschreibbar sind.

Der Beitrag Wer ist der Hauptbenutzer eines Computers? erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/wer-ist-der-hauptbenutzer-eines-computers/feed/ 3
Einbinden eines Software-Paketes in Empirum (Erweitert). https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-erweitert/ https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-erweitert/#comments Tue, 04 Jun 2013 20:28:57 +0000 https://www.wpm-blog.de/?p=1016 Nachfolgend werden weitere, zumeist optionale, Einstellungen vorgestellt. Nachfolgend werden die weiteren Eigenschaften eines Paketes zu den minimal notwendigen Anpassungen bzw. Einstellungen, die hier bereits erläutert wurden erklärt. Reihenfolge und Abhängigkeiten Bezüglich der Reihenfolge der Verteilung … Weiterlesen

Der Beitrag Einbinden eines Software-Paketes in Empirum (Erweitert). erschien zuerst auf Workplace Management Blog.

]]>
Nachfolgend werden weitere, zumeist optionale, Einstellungen vorgestellt. Nachfolgend werden die weiteren Eigenschaften eines Paketes zu den minimal notwendigen Anpassungen bzw. Einstellungen, die hier bereits erläutert wurden erklärt.

Hinweis: Dieser Artikel kann ggf. etwas veraltet sein. Bitte lesen Sie dazu auch den hier verlinkten Artikel. Alle Angaben auf Paketeigenschaften wiederum haben sich nicht verändert!

Reihenfolge und Abhängigkeiten

Bezüglich der Reihenfolge der Verteilung hat die Reihenfolge (von oben nach unten) der Pakete im SoftwareDepot grundlegenden Einfluss. Diese Reihenfolge kann mit der Option „Reihenfolge“ auf dem Reiter „Version“ überschrieben werden. Hier werden die Software Pakete angegeben, die vor dieser Software installiert werden muss. Im Dialog „Abhängigkeiten“ können Pakete angegeben werden, die installiert sein müssen, damit diese Software auch installiert wird. Hierüber können auch „Verbote“ definiert werden. Dieses Paket wird nicht installiert, wenn bereits Software xy bereits installier ist. (Bespiele sind die Matrix42 Pakete SubDepot Services und DataCollector).

Paketeigenschaften Version

Betriebssystem Freigabe

Auf diesem Reiter werden die Betriebssysteme „angehakt“, auf denen die Setup.inf erfolgreich ausgeführt wird und getestet ist. Ist ein Paket nur für Windows 7 freigegeben und wird einem Windows XP Computer in der EMC zugewiesen, wird die Setup.inf erst gar nicht „angestartet“, da das Paket nicht dafür freigegeben wurde.

Paketeigenschaften Betriebssystem

Computerumgebung 

Die Einstellungen auf dem Reiter Computerumgebung wirken sich genauso auf die Verteilung aus, wie auf dem Reiter Betriebssystem. Hier können jedoch Rahmenbedingungen bzgl. RAM, Festplattenplatz, etc. definiert werden. Sind die Rahmenbedingungen nicht erfüllt, startet die Installation erst gar nicht. Die „nicht erfüllte Voraussetzung“ wird mit einer „Requirement“ Meldung im SoftwareDepot Log dokumentiert.

Paketeigenschaften Computerumgebung

Sonstiges

Wie der Name schon sagt, vereinen sich auf dem Reiter „Sonstiges“ alle weiteren Einstellungen.  Die Einstellungen „Externes Installationsprogramm“ und „Installationsprogramm asynchron aufrufen“ werden in den allermeisten Fällen nicht genutzt und haben mehr eine „historische“ Bedeutung. Beim zweiten Falle, werden die Pakete nicht in einer Stapelverarbeitung eins nach dem anderen installiert, sondern eine weitere Installation wird bereits gestartet. Dies führt in den überwiegenden Fällen zu Installationsproblemen!

Nur bei Verteilung“ benutzen steuert, ob eine Software im Kiosk sichtbar ist oder nicht, oder nur mittels EMC/EWC verteilt werden kann. „Erlaube Deinstallation“ hat auch nur Einfluss auf das Kiosk und ermöglicht dem Endbenutzer nur eine Deinstallation einer Software zu starten, wenn dies hiermit „erlaubt“ wird.

Installation weiterer Pakete nicht fortsetzen“ ist interessant zu nutzen, wenn eine abhängige Software-Installation einen Neustart oder ähnlich voraussetzt. Sehr häufig ist dies nach einem Windows Service Pack oder Internet Explorer Update nötig, damit die nachfolgenden Installationen die richtige Version erkennen (mittlerweile auch durch den Wert SetReboot 5 in der Setup.inf steuerbar).

Die Option „Installationskontext“ erlaubt einem einzustellen, ob das Paket nur vor oder nach der Anmeldung ausgeführt werden darf, oder ob es „immer“ installiert werden kann. Wenn das Paket auf eine Abfrage vom Benutzer warten soll, so wäre „Nur nach der Benutzeranmeldung“ passend.

Installationsdauer“ wird dem Benutzer vor bzw. während der Installation im sogenannten Z-Dialog angezeigt. Der Z-Dialog zeigt die anstehenden Installationen an und gibt ggf. die Möglichkeit  die Installation zu verschieben (je nach Agenten-Konfiguration und Verteilungsoption des Software-Paketes).

Lizenzen“ – diese Eingabe kann komplett „vergessen“ werden und wird nicht mehr unterstützt.

Sync. Bandbreite“ bezieht sich auf die Synchronisation der Pakete auf den Client. So kann hier für ein großes Software-Paket eine minimale verfügbare Bandbreite zur Synchronisation der Quellen auf den Client angegeben werden.

Die Eigenschaft „Pakettyp“ ist für die Zusammenarbeit mit dem Matrix42 Service Store relevant. Somit können die Pakettypen beim Import bereits unterschieden werden, wie diese weiter im Service Store zur Verfügung stehen bzw. „verarbeitet“ werden.

Prüfung

Auf diesem Reiter ist der Wert für Prüfdatei/Prüfwert noch sehr interessant. Nur wenn diese Kriterien erfüllt sind, findet die Ausführung des Software-Paketes statt. Hier lohnt sich ein Blick in die Matrix42 Pakete “Patch-Management (Install) bzw (Fix)“.Empirum Paket - Silent Schalter

SetupInfo

Die Nutzung der Paketinformationen durch den bzw. die Paketierer habe ich hier bereits erklärt.

Registrierung

Auf dem Reiter Registrierung wird beim Import der Wert für Schlüssel aus der Setup.inf und der Eigenschaft „MachineKeyName“ übernommen. Dazu sind die bereits vorhandenen Blog Beiträge wichtig zu lesen:

AUT

Auf dem Reiter AUT kann eine zu „überwachende“ EXE Datei einem Software-Paket zugeordnet werden. Damit wird die Zuordnung und Erkennung auf dem Eigenschaften Reiter eines Computerobjektes vorgenommen.

Variablen

Hier werden Variablen, die zu dem Softwarepaket gehören und mit der Setup.inf importiert wurden angezeigt.

Der Beitrag Einbinden eines Software-Paketes in Empirum (Erweitert). erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-erweitert/feed/ 4
Setup.inf Abarbeitung https://www.wpm-blog.de/setup-inf-abarbeitung/ https://www.wpm-blog.de/setup-inf-abarbeitung/#comments Mon, 03 Dec 2012 22:43:57 +0000 https://www.wpm-blog.de/?p=518 Wie an anderer Stelle bereits erläutert geht es mir darum, dass man keine „Angst“ davor hat Software-Pakete zu erstellen und nach und nach durch mehr Erfahrung oder Anspruch die Software-Pakete zu verbessern. Im ersten Schritt … Weiterlesen

Der Beitrag Setup.inf Abarbeitung erschien zuerst auf Workplace Management Blog.

]]>
Wie an anderer Stelle bereits erläutert geht es mir darum, dass man keine „Angst“ davor hat Software-Pakete zu erstellen und nach und nach durch mehr Erfahrung oder Anspruch die Software-Pakete zu verbessern. Im ersten Schritt ist man glücklich, dass die Installation ohne Eingriff durch den Benutzer funktioniert. Wie man ein einfaches Software-Paket auf der Grundlage einer MSI Datei erstellt, erfahrt ihr in einem meiner ersten Video Tutorials.

Die Empirum Setup.inf Skriptsprache ermöglicht einem jedoch weitere Möglichkeiten.

  • Vornehmen von benutzerspezifischen Einstellungen
  • Kopieren von Dateien pro Benutzer
  • Abfragen von Werten auf dem Zielcomputer und „reagieren“ im Software-Paket, wie z.B. Prozessor-Architektur, Registrierungseinträge, Dateien, Dateiversionen, offene Prozesse, uvm.
  • Nutzen von Variablen aus der EMC und steuern der Installation
  • uvm.

Um Veränderungen an den vorhandenen Software-Paketen vorzunehmen, muss man zuerst verstehen, an welcher Stelle man die Veränderung vornehmen kann und welche Befehle und somit Möglichkeiten einem zur Verfügung stehen.

Gehen wir zuerst auf die Abfolge in der Setup.inf ein.

Die meisten Software-Pakete bzw. Vorlagen enthalten die unten stehenden Zeilen (am Ende dieses Blogeintrages), die für die Erläuterung der Abfolge herangezogen werden. Für die Erläuterungen habe ich jedoch ein paar Befehle bereits in die Vorlage eingebaut, um die Funktionsweise besser zu verdeutlichen.

Das Semikolon (;) sagt aus, dass diese Zeile nicht verarbeitet wird und ein Kommentar darstellt.

Das Hash Zeichen (#) oder von manchem auch Lattenzaun genannt, ist gleichzusetzen mit einem GOSUB aus Basic oder einem Prozedur Aufruf aus anderen Sprachen. Das bedeutet die entsprechende Sektion wird aufgerufen und nach der Beendigung springt die Verarbeitung wieder zurück und geht eine Zeile weiter.

Installationsabfolge

Es wird die Sektion [Product] als „Hauptprogramm“ ausgeführt und die dort angegebenen Sektionen der Reihe nach (von oben nach unten) angesprungen bzw. verarbeitet.

  1. Die erste Zeile ohne Kommentar ist der Aufruf der #Set:Product Zeile. Hiermit wird die [Set:Product] Sektion angesprungen.
  2. Es wird „Es geht los“ ausgegeben.
  3. Die Datei Datei.exe wird in das Verzeichnis „%ProgramFiles%\Hersteller Software\“ kopiert. Ist kein Ziel nach der Datei.exe angegeben, dann enspricht das Ziel dem Wert von ApplicationDir=.
  4. Jetzt ist die Sektion [Set:Product] fertig und es wird die Zeile
  5. #Reg:OnUninstallProduct, DELETE angesprungen. Diese wird jedoch nicht verarbeitet, da diese das Flag „DELETE“ besitzt, was aussagt, dass die Sektion nur bei der Deinstallation ausgeführt wird.
  6. Jetzt wird die Zeile #Reg:Product, DONTDELETE angesprungen. Diese wird ausgeführt, und das nur bei der Installation, da die Sektion das Flag „DONTDELETE“ besitzt.
  7. Es wird der Registry Eintrag Version = 2 unter HKLM\Software\Hersteller\Software vom Typ REG_SZ gesetzt.
  8. Anschließend wird die Sektion [INI:Product] und danach
  9. [Security:Product] angesprungen. In beiden Fällen gibt es nichts zu tun.
  10. Als letztes, obwohl es nicht unter [Product] aufgeführt ist, wird die Sektion [Shell:Product] ausgeführt.

Die Installation ist fertig, es gibt eine Verknüpfung auf dem Desktop, dass das Programm „Datei.exe“ startet.

Deinstallationsabfolge

Die Deinstallation wird in umgekehrter Reihenfolge verarbeitet und startet somit von unten in der [Product] Sektion.

  1. Ähnlich wie die Ausnahme, dass [Shell:Product] beim Installieren als letztes aufgerufen wird, wird diese Zeile beim Deinstallieren zuerst ausgeführt. Die Verknüpfung wird entfernt.
  2. Nun werden die Sektionen in der Reihenfolge von unten nach oben angesprungen, und dann ausgeführt wenn die Sektion kein FLAG (nach einem Komma) besitzen, oder das Flag „DELETE“ gesetzt haben.
  3. So wird bei der Deinstallation der Registry Eintrag Version = 1 unter HKLM\Software\Hersteller\Software vom Typ REG_SZ gesetzt, da die Sektion [Reg:OnUninstallProduct] verarbeitet wird.
  4. Nun wird als letztes die Sektion [Set:Product] verarbeitet.
  5. Hier wird nun der Kopiervorgang „1:…“ rückgängig gemacht und die Datei gelöscht. Bestimmten Befehlen muss ein „-“ vorangestellt werden, damit diese bei der Deinstallation ausgeführt werden.

Die Deinstallation ist nun abgeschlossen.

Wenn man sich das selbst einmal anschauen möchte, so kann man den Empirum Package Editor starten, in die „Erweiterte Ansicht“ wechseln und die Setup.inf im Einzelschrittmodus durchlaufen.

Auszug aus einer Setup.inf

...
[Product]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>
#Set:Product
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product

[Set:Product]
ECHO "Es geht los"
1:Datei.exe,%ProgramFiles%\Hersteller Software\, NORMAL, 12345

[Reg:OnUninstallProduct]
HKLM,"Software\Hersteller\Software","Version",0x00000000,1

[Reg:Product]
HKLM,"Software\Hersteller\Software","Version",0x00000000,2

[Ini:Product]

[Security:Product]
;Hier könnten Veränderungen an den Berechtigungen im Dateisystem, der Registry, etc. stattfinden

[Shell:Product]
%Desktop%\Dateiaufruf, Datei.exe

Der Beitrag Setup.inf Abarbeitung erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/setup-inf-abarbeitung/feed/ 6