You searched for computer gelöscht - Workplace Management Blog https://www.wpm-blog.de/ ... ideas and solutions making workplace management easier Sun, 16 Nov 2025 18:11:39 +0000 de hourly 1 https://wordpress.org/?v=6.1.7 Empirum: Failed to copy a sufficient DeviceMapping.xml https://www.wpm-blog.de/empirum-failed-to-copy-a-sufficient-devicemapping-xml/ https://www.wpm-blog.de/empirum-failed-to-copy-a-sufficient-devicemapping-xml/#respond Sun, 16 Nov 2025 18:11:39 +0000 https://www.wpm-blog.de/?p=3067 Wenn die Empirum OS Installation per PXE oder USB Stick in einem frühen Stadium mit der Meldung: „Failed to copy a sufficient DeviceMapping.xml“ am Client fehlschlägt, sind viele erst einmal ratlos. Diese Meldung erscheint, wenn … Weiterlesen

Der Beitrag Empirum: Failed to copy a sufficient DeviceMapping.xml erschien zuerst auf Workplace Management Blog.

]]>
Wenn die Empirum OS Installation per PXE oder USB Stick in einem frühen Stadium mit der Meldung: „Failed to copy a sufficient DeviceMapping.xml“ am Client fehlschlägt, sind viele erst einmal ratlos.

Diese Meldung erscheint, wenn kein passender Eintrag oder kein eindeutiger Eintrag in der DeviceMapping.xml gefunden werden kann. Die DeviceMapping.xml wird während der OS Installation hergenommen, um von den Hardwareeigenschaften (MAC oder UUID) auf den späteren Computernamen und Workgroup/Domain zu verweisen.

Die ersten Troubleshooting Schritte …

(1) Die Voraussetzung für einen Eintrag in der DeviceMapping.xml ist: Die Eigenschaft des Computerobjektes muss „PXE fähig“ markiert haben – er muss jedoch nicht unbedingt PXE aktiviert sein!

(2) Wo liegt die DeviceMapping.xml? Die Datei ist im folgenden Verzeichnis abgelegt: \\%EmpirumServer%\Configurator$\Empirum\Configurator\Values
Folgendes sollte geprüft werden: Ist die Datei aktuell bzw. so aktuell wie die letzte Änderung? Geschieht die OS Installation an einem SubDepot, so gilt dies für das SubDepot! Hier muss ggf. der DepotSync betrachtet werden, wenn die Datei am HauptServer anders bzw. vollständig ist. Ergo zuerst die Datei auf dem HauptServer und anschließend auf dem SubDepot prüfen.

(3) Ist die MAC-Adresse / UUID in der DeviceMapping.xml zu finden und nur einmal (1x) vorhanden? Dazu die Datei mittels eines Editors öffnen und darin nach den Werten (Computername, MAC, UUID) des Computerobjektes suchen.

(4) Falls der Computer, die MAC-Adresse oder die UUID nicht in der DeviceMapping.xml zu finden ist: „Empirum-Backend Task Queue Host (64 bit)“ Dienst prüfen, da er für die Erstellung der Datei zuständig ist. Ist der Dienst gestartet und läuft – funktioniert der Dienst einwandfrei? Die Log-Datei zum BTQH64 Dienst befindet sich hier: „C:\ProgramData\Matrix42\Logs\BackendTaskQueueHost64\BackendTaskQueueHost64.log“

Wird die MAC-Adresse oder UUID mehrfach gefunden, dann diese Informationen (Computernamen) nutzen und in der EMC an den Computerobjekten nachschauen.

Löschen doppelter UUIDs aus der Empirum Datenbank

Doppelte UUIDs aus der Empirum Datenbank können wie folgt gelöscht werden:
Empirum bzw. Matrix42 Management Console starten, Konfiguration, Boot Konfiguration – im Menü unter: Extras, Ungültige UUID’s
Suchen und Löschen der doppelten Einträge per Auswahl und Papierkorb Symbol. Bitte beachte die Hinweise, wenn ein Eintrag nicht gelöscht werden kann. Der Hinweis zeigt an, welche Computernamen die gleiche UUID eingetragen haben. Anhand der letzten Inventarisierung o.ä. kann man erörtern, welches das aktuelle Computerobjekt ist.

Wenn die zuvor genannten Hilfestellungen alle nicht geholfen haben …

Weitere Infos am Client (vor der Windows Installation)

Wenn die Meldung erscheint gelangt man direkt in das Log per Tastenkombination „STRG+L„. In der Log-Datei sucht man am besten nach „ComputerIdentification.ResolveComputername„. Nachfolgend ein beispielhafter Auszug:

[INFO] [PeAgent.CopyDeviceMappingXmlFileFromServer] Retries at copying DeviceMapping XML file: 10
[INFO] [PeAgent.CopyDeviceMappingXmlFileFromServer] Copying DeviceMapping XML file (retry 0/10): Values\DeviceMapping.xml
[INFO] [ComputerIdentification.ResolveComputerName] SMBIOS UUID: 4c4c4544-004a-5710-8038-c8c04f335831
[INFO] [ComputerIdentification.ResolveComputerName] Physical addresses: 90B11C147953
[INFO] [ComputerIdentification.MapDevice] Solved computer name 'LABPC001' in domain 'IMAGOVERUM' for SMBIOS UUID '4c4c4544-004a-5710-8038-c8c04f335831'
[INFO] [PeAgent.ResolveComputerName] Resolve computer name: LABPC001 in domain IMAGOVERUM
[INFO] [PeAgent.CopyDeviceMappingXmlFileFromServer] Finished copying DeviceMapping.xml from the Empirum Server.

Weitere Infos am Client (nach der Windows Installation) …

ALT-TAB zum Wechseln in den Hintergrund und anmelden als Admin.
Höchstwahrscheinlich muss dieser Vorgang 2x getätigt werden, da man beim ersten Versuch durch einen Neustart schnell wieder abgemeldet wird.
Nun findet man die entsprechende Log-Datei im %Programdata%\Matrix42\Logs\UAF Ordner.
Die Stelle, nach der man sucht, ist identisch zu den oben aufgeführten Meldungen.

UUID anstatt MAC Adressen bevorzugen

Die Eindeutigkeit ist mit der Nutzung von UUIDs anstatt MAC Adresse (siehe PXE Dienst im Empirum DBUtil) prinzipiell besser.
Wenn aus Gründen …

  • nur die MAC Adresse bekannt bzw. einfacher zu pflegen ist
  • nur die MAC Adresse eindeutig ist, weil es mehrere Hardware mit identischer UUID gibt
  • die MAC Adresse genutzt wird, …

gelten trotzdem die gleichen Regeln – Eindeutigkeit bei den MAC Adressen am Computerobjekt!

Falls man mehrere Notebooks mit einem externen USB zu Ethernet Netzwerkanschluß installieren möchte, muss man bei Bedarf die Netzwerkadresse am bereits installierten Gerät anpassen, falls die MAC-Adresse das führende Merkmal für die PXE-Installation ist.

Der Beitrag Empirum: Failed to copy a sufficient DeviceMapping.xml erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-failed-to-copy-a-sufficient-devicemapping-xml/feed/ 0
Windows LAPS und Empirum WinPE https://www.wpm-blog.de/windows-laps-und-empirum-winpe/ https://www.wpm-blog.de/windows-laps-und-empirum-winpe/#respond Wed, 28 Jun 2023 18:35:48 +0000 https://www.wpm-blog.de/?p=2871 Sicherheit, lokale Client Berechtigungen und Buzzwords wie „Lateral Movement“ sind in aller Munde. Ein wirksamer Baustein dem etwas entgegenzusetzen ist, jedem Client ein individuelles Kennwort zu geben und dies im besten Falle sogar zyklisch zu … Weiterlesen

Der Beitrag Windows LAPS und Empirum WinPE erschien zuerst auf Workplace Management Blog.

]]>
Sicherheit, lokale Client Berechtigungen und Buzzwords wie „Lateral Movement“ sind in aller Munde. Ein wirksamer Baustein dem etwas entgegenzusetzen ist, jedem Client ein individuelles Kennwort zu geben und dies im besten Falle sogar zyklisch zu ändern. Microsoft bietet schon sehr lange die Local Administrator Password Solution an. Diese Lösung besteht aus einer DLL die in Zusammenarbeit mit Gruppenrichtlinien, für jeden Computer in einem definierten Intervall ein individuelles Kennwort aushandelt und dies zentral im Active Directory speichert. Bis vor kurzem gab es nur das Microsoft LAPS, das wie zuvor beschrieben aus einer DLL (oder MSI Installation) und Gruppenrichtlinienobjekte das jeweilige Kennwort im lokalen Active Directory (AD) speichert. Mit den Windows April Updates (2023) für Windows 10 und 11 wurde Windows LAPS aktiviert.

LAPS und deren Unterschiede

Der Unterschied im Namen ist gering „Microsoft LAPS“ (alt, Legacy LAPS) und „Windows LAPS“ (neu), die Möglichkeiten unterscheiden sich jedoch enorm. Der ganz klare Vorteil ist, Windows LAPS ist nun Bestandteil des Betriebssystems. Die weiteren Vorteile sind die Integration in die moderne Verwaltung.
Die Einstellungen können nun nicht mehr nur aus Gruppenrichtlinien (GPOS) kommen und das Kennwort kann nun auch verschlüsselt im Azure Active Directory (AAD) gespeichert werden. Wer tiefer in die Materie und Möglichkeiten eintauchen möchte, dem lege ich die folgenden Seiten ans Herz:
https://learn.microsoft.com/de-de/windows-server/identity/laps/laps-overview

Active Directory Berechtigungen

Wer das LAPS Kennwort im Active Directory speichert, sollte auch weitere Aspekte berücksichtigen, damit dies auch entsprechend abgesichert wird. Neben der spärlichen Vergabe der Benutzer die auf die LAPS Felder Zugriff haben, sollte man auch den Benutzer ins Auge fassen, der das Computerkonto erstellt. Weiteres dazu kann man hier finden.

Zusammenspiel mit Empirum

Im Zusammenspiel mit Empirum sind ein paar Dinge zu beachten, wenn man das Maximum an Sicherheit herausholen möchte.

DomainJoin Variablen

Die Variablen und somit der Benutzer für den Domain-Join sollte bestenfalls nur für den Zeitpunkt der Betriebssysteminstallation zugewiesen sein. Dies kann über eine separate Konfigurations- oder Zuweisungsgruppe geschehen, in dem der Computer nur für die Betriebssysteminstallation zugeordnet ist.

Windows LAPS

Will man die Vorteile von Windows LAPS nutzen, sollte man darüber nachdenken eine Windows 10 bzw. 11 Quelle für die Betriebssysteminstallation einzubinden, die das April oder besser Mai 2023 Update beinhaltet. Alternativ kann man auch das Windows Update in seine Quellen integrieren.

Reinstallation von Computern

Gerade bei Tests oder im Client Lifecycle kommt es vor, dass vorhandene Computer mit dem gleichen Namen nochmals installiert werden. Wurde das Computerobjekt vor der Neu-Installation nicht aus dem Verzeichnisdienst (AD/AAD) gelöscht, kann es dauern bis das LAPS neu erstellt und gespeichert wird, da das „Ablaufdatum“ vom Verzeichnisdienst vorgegeben wird. Etwas was mir diesbezüglich schon länger durch den Kopf ging, hat ein mir bekannter Administrator als WinPE Paket umgesetzt.

Das WinPE Paket zusätzlich der detaillierten Erläuterungen und Einstellmöglichkeiten findet ihr in seinem github Repository: https://github.com/htcfreek/PreOS-ResetLapsPassword.

Wem das nicht reicht, so wird er dort auch fündig hinsichtlich einer GUI für das Windows LAPS Kennwort: https://github.com/htcfreek/SimpleLapsGui

Ein großes Kompliment für diese Erweiterung von meiner Seite!

Microsoft LAPS Benutzer

Für all diejenigen, für die Microsoft LAPS nichts neues ist, sollten sich mit der Co-Existenz, den Änderungen und neuen Möglichkeiten auseinandersetzen. Man muss jedoch sehr achtsam mit den Begrifflichkeiten und Funktionen umgehen, da die ähnlichen Worte und Begriffe einen schon gerne einmal verwirren.

Der Beitrag Windows LAPS und Empirum WinPE erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/windows-laps-und-empirum-winpe/feed/ 0
Empirum SubDepot Paket und lokaler Agenten Benutzer https://www.wpm-blog.de/empirum-subdepot-paket-und-lokaler-agenten-benutzer/ https://www.wpm-blog.de/empirum-subdepot-paket-und-lokaler-agenten-benutzer/#respond Sat, 10 Apr 2021 16:33:00 +0000 https://www.wpm-blog.de/?p=2742 Das Matrix42 SubDepot Paket löscht und erstellt den Empirum-Agenten Benutzer bei jeder Installation und Aktualisierung. Nutzt man einen lokalen Benutzer für den Empirum-Agenten und für diesen Benutzer explizite Berechtigungen vergeben, verwaisen diese mit jedem Update … Weiterlesen

Der Beitrag Empirum SubDepot Paket und lokaler Agenten Benutzer erschien zuerst auf Workplace Management Blog.

]]>
Das Matrix42 SubDepot Paket löscht und erstellt den Empirum-Agenten Benutzer bei jeder Installation und Aktualisierung. Nutzt man einen lokalen Benutzer für den Empirum-Agenten und für diesen Benutzer explizite Berechtigungen vergeben, verwaisen diese mit jedem Update des SubDepot Paketes. Die Setup.inf ist bereits dafür ausgelegt, diesen lokalen Benutzer nicht bei jeder Ausführung des SubDepot Paketes zu löschen und neu anzulegen.

Variable USER_UPDATE

Eine Variable steuert, wie das Paket sich verhalten soll. Die nachfolgende Zeile in der Setup.inf verrät, was man machen muss.
If „%VM_SUBDEPOT_USER_UPDATE%“ != „0“ Then „Set:DeleteUser2“ EndIf

Erstellen der Variable

Erstellt man unterhalb der Variablendefinition „SUBDEPOT“ eine Variable mit dem Namen „USER_UPDATE“ (Typ: Zahl oder Text), so kann man steuern, was bei einem „Update“ geschehen soll. Setzt man die Variable explizit auf „0“, so wird der Benutzer nicht bei jedem Update gelöscht und neu angelegt

Möchte man die vorgenannte Funktion nutzen, so erstellt man die Variable „USER_UPDATE“ vom Typ Zahl in der Variablendefinition: SUBDEPOT.
Dazu wählt man in der Matrix42 Management Console, Administration, Extras, Variablendefinitionen … aus und navigiert zur vorhandenen Variablendefinition „SUBDEPOT“. Durch einen Doppelklick oder der Auswahl und Bearbeiten, landet man in den Eigenschaften der Variablengruppe SUBDEPOT. Hier fügt man die Variable mit einem Klick auf das „+“ Symbol hinzu. Wer einen vorgefertigten Beschreibungstext haben möchte: 0 – Don not delete user | 1 – Delete and create user

Zuweisung des Wertes

Anschließend setzt man diese Variable für einen Computer, eine Konfigurations- oder Zuweisungsgruppe. Weitergehende Informationen zur Übernahme des Wertes für untergeordnete Objekte findet man hier.

Der Beitrag Empirum SubDepot Paket und lokaler Agenten Benutzer erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-subdepot-paket-und-lokaler-agenten-benutzer/feed/ 0
Empirum WinPE – Windows Installation https://www.wpm-blog.de/empirum-winpe-windows-installation/ https://www.wpm-blog.de/empirum-winpe-windows-installation/#comments Wed, 06 Nov 2019 21:39:04 +0000 https://www.wpm-blog.de/?p=2426 Die Zutatenliste für eine erfolgreiche Windows Installation mittels des Empirum WinPE PreBoot Support besteht aus: Empirum WinPE PXE-Image, ein importiertes Windows Betriebssystem, diversen sogenannten Empirum PreOS Paketen, gesetzten Variablen und einem Computer. Zutaten zusammenführen Die … Weiterlesen

Der Beitrag Empirum WinPE – Windows Installation erschien zuerst auf Workplace Management Blog.

]]>
Die Zutatenliste für eine erfolgreiche Windows Installation mittels des Empirum WinPE PreBoot Support besteht aus: Empirum WinPE PXE-Image, ein importiertes Windows Betriebssystem, diversen sogenannten Empirum PreOS Paketen, gesetzten Variablen und einem Computer.

Zutaten zusammenführen

Die Zutaten habt ihr bestenfalls mit Hilfe der zuvor getätigten Beschreibungen bereits vorbereitet. In diesem Blog-Eintrag geht es darum, die letzten Schritte vorzunehmen.
Nun werden die Zutaten in der Management Console (EMC), von der rechten Seite zur Mitte, in einer Konfigurations- oder Zuweisungsgruppe zusammengeführt:

  • PreOS Pakete bzw. die erstellte UND-Klasse zuweisen
  • WinPE PXE-Image zuweisen
  • Betriebssystem zuweisen
  • Agent-Template zuweisen
  • die Variablen auf die Gruppe setzen und übertragen

Variablen setzen

Die Variablen übernehmen die Definition der kundenspezifischen Windows Installation. Die zu setzenden Variablen(gruppen) heißen identisch wie die genutzten PreOS Pakete.
Am besten geht man die Liste der zugewiesenen Pakete namentlich durch und stellt die für sich passenden Werte ein. Viele Variablen sind bereits vorbelegt und können auf den vordefinierten Werten belassen werden.

Somit konzentriere ich mich hier auf die meines Erachtens wichtigen Werte für eine Windows Installation in deutscher Sprache inklusive Domain Join.

  • DiskPartitioning\PreferFastDisk
  • WindowsInstallation\LocalUserName
  • WindowsInstallation\LocalUserPassword
  • WindowsInstallation\LocalUserDisplayName
  • WindowsInstallation\SetupUILanguage
  • WindowsInstallation\InputLocale
  • WindowsInstallation\SystemLocale
  • WindowsInstallation\UILanguage
  • WindowsInstallation\UserLocale
  • DomainJoin\DomainJoinCredentialsUser
  • DomainJoin\DomainJoinCredentialsPassword

Zusätzlich sind die nachfolgenden Variablen, die nicht so lauten wie die zugewiesenen Pakete, wichtig anzusehen bzw. zu setzen:

  • FQDN – WindowsInstallation, DomainJoin
  • ORGANIZATIONAL_UNIT (optional) – DomainJoin
  • TIMEZONE – WindowsInstallation
  • MX42_AGENT_PUSH_PACKAGE_FOLDER\Windows – EmpirumAgentSetup

Aktivieren

Anschließend wird das Computerobjekt der Gruppe hinzugefügt und aktiviert. Beim Aktivieren für eine WinPE basierte Windows Installation braucht keine „Betriebssystemkonfiguration (OS.INI)“ mehr erstellt werden. Diese Aufgabe übernehmen die PreOS Packages samt der gesetzten Variablen.

Et voilà

Nun den Computer vom Netzwerk booten lassen und nach ca. 20 min ist das frisch installierte Windows fertig angerichtet!

Besonderheiten

Bis zu diesem Punkt wurde beschrieben, dass sich die PreOS Pakete wie herkömmliche Software Pakete verhalten. Es gibt (Stand Oktober 2019 – WinPE 1.6.6) jedoch ein paar Besonderheiten:

  • es werden alle zugewiesenen Pakete ausgeführt, nicht nur die aktuellste/höhere Version
  • mittels einer Verteilungsoption „Uninstall“ kann die Verarbeitung von Paketen nicht verhindert werden
  • PreOS Pakete, die vor dem DiskPartitioning Paket ausgeführt werden, werden aus dem SWDepot-Log gelöscht und der Status bleibt „undefiniert = gelb“

Der Beitrag Empirum WinPE – Windows Installation erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-winpe-windows-installation/feed/ 6
Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/ https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/#comments Sun, 26 Oct 2014 14:54:09 +0000 https://www.wpm-blog.de/?p=1379 Schlägt eine Installation eines Empirum Paketes fehl, so wird dies in der Management Console mit dem Status „Failed“ im SWDepotLog und im Status versehen. Im erweiterten ErrorLog kann man ggf. noch den Fehlercode oder einen … Weiterlesen

Der Beitrag Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle erschien zuerst auf Workplace Management Blog.

]]>
Schlägt eine Installation eines Empirum Paketes fehl, so wird dies in der Management Console mit dem Status „Failed“ im SWDepotLog und im Status versehen. Im erweiterten ErrorLog kann man ggf. noch den Fehlercode oder einen kleinen Hinweis auf den möglichen Fehler bekommen. Doch häufig benötigt man den Zugriff auf die komplette Log Datei der Installation. Diese wiederum liegt lokal auf dem Computer. Warum?

Hintergrund

Im Standard der Empirum Paket Vorlagen werden diese detaillierten Log Dateien von extern aufgerufenen Setup Routinen wie MSI und Unattended im %WINDIR%\Temp Ordner abgelegt. Schlägt eine Installation fehl, werden diese Log Dateien mit den Fehlern vorgehalten (nicht gelöscht) damit das Problem näher erörtert werden kann. Wenn nun Computer ausgeschaltet sind oder der Zugriff auf den Computer nicht sichergestellt ist (Notebook Benutzer, Firewall, etc.) kann derzeit jedoch keine weiterführende bzw. zeitnahe Analyse bezüglich des Problems stattfinden.

Idee

Ich habe mir dazu ausgedacht, dass im Fehlerfalle diese Log Dateien zusätzlich in das Log Verzeichnis des Agenten kopiert werden und dieser überträgt die Dateien auf den zentralen EmpirumServer. Dieser ist immer erreichbar und der Zugriff kann zentral gesteuert werden. Die Synchronisierung der Log Dateien wird über den EmpirumAgenten sichergestellt, da diese in einem Unterverzeichnis von C:\EmpirumAgent\Log abgelegt werden.

Hinweis: Es werden nur *.log Dateien vom EmpirumAgenten automatisch übertragen.

Umsetzung

Die nachfolgenden Beispiele sind ggf. auf die eigene Umgebung und das Agenten-Verzeichnis anzupassen.

Notwendige Setup.inf Anpassung

Dazu wurde folgende Änderung bzw. zusätzlichen Zeilen in der Setup.inf erstellt:

[Environment]
MSILogFileName=MSI_%ProductName%.%Version%.%Revision%.log
MSILogFile=%Temp%\%MSILogFileName%
ErrorMsgSyncDir=C:\EmpirumAgent\Log\InstallErrors.CU\%Computername%

[AbortMSIInst]
CALLHIDDEN %COMSPEC% /C MD "%ErrorMsgSyncDir%"
COPY "%MSILogFile%" "%ErrorMsgSyncDir%\%MSILogFileName%"
ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
Abort

[AbortMSIUnInst]
-Abort
-ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
-COPY "%MSILogFile%" "%ErrorMsgSyncDir%\%MSILogFileName%"
-CALLHIDDEN %COMSPEC% /C MD "%ErrorMsgSyncDir%"

Anpassung in der Management Console

Der Zugriff auf das zentrale Log Verzeichnis eines Computers kann über einen „Rechtsklick“ auf den Computer geschehenDie Konfiguration wird über die Management Console, Extras, Eigenschaften unter „Externe Programme“ vorgenommen.

  • Zentrales Log Verzeichnis
  • explorer \\%EmpirumServer%\configurator$\Log\InstallErrors.CU\%Computername%

Das gezeigte Beispiel nutzt die EmpirumServer Variable. Hier muss ggf. der zentrale EmpirumServer eingetragen werden und das Support-Personal zum Lesen berechtigt werden.

Bereinigung

Die zyklische Bereinigung des zentralen Log Verzeichnisses muss derzeit von Hand durchgeführt werden.

Der Beitrag Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/feed/ 9
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
Integration von Updates in Windows 7 SP1 Quellen https://www.wpm-blog.de/integration-von-updates-in-windows-7-sp1-quellen/ https://www.wpm-blog.de/integration-von-updates-in-windows-7-sp1-quellen/#comments Mon, 26 Aug 2013 18:05:01 +0000 https://www.wpm-blog.de/?p=1060 Beim Installieren von Windows 7 in Unternehmensnetzwerken wird das Windows 7 mit dem Service Pack 1 genutzt. Die Installation von Windows 7 Service Pack 1 benötigt jedoch mittlerweile etwas mehr als 100 Microsoft Updates um … Weiterlesen

Der Beitrag Integration von Updates in Windows 7 SP1 Quellen erschien zuerst auf Workplace Management Blog.

]]>
Beim Installieren von Windows 7 in Unternehmensnetzwerken wird das Windows 7 mit dem Service Pack 1 genutzt. Die Installation von Windows 7 Service Pack 1 benötigt jedoch mittlerweile etwas mehr als 100 Microsoft Updates um aktuell zu sein. Die Installation der Updates wiederum dauert nach der eigentlichen Betriebssysteminstallation nochmals mehr als eine Stunde. Somit kommt immer häufiger die Frage nach der Integration von Updates in die Installationsquellen auf.

Um die Betriebssystemquellen bzw. Installation aktuell zu haben, muss die in den Windows 7 Installationsquellen enthaltene „install.wim“ aktualisiert werden. Dazu gibt es grob gesagt zwei Methoden.

  1. Man „mounted“ die install.wim Datei (ein Image) mit den Microsoft WAIK bzw. WADK Hilfsmitteln und integriert die Updates (zumeist *.msu oder *.cab Dateien) und „dismounted“ die Datei anschließend wieder.
  2. Man führt eine Windows 7 Installation durch, aktualisiert sie nach eigenem „Gusto“, generalisiert die Installation und erstellt davon ein Image (install.wim).

Beide Methoden sind im Internet mehrfach erläutert und erklärt. Nachfolgend möchte ich die Methode der Integration der Updates in die „install.wim“ erklären, für die jedoch „keine Gewähr“ übernommen wird!

Ich habe es mir möglichst einfach gemacht und nutzte Hilfsmittel, in Form von Tools aus dem Internet. Natürlich kann man auch komplett auf die Werkzeuge von Microsoft „bauen“.

1. Schritt – Zusammenstellen der Updates

Damit ich nicht zu lange nach den benötigten Updates nach Windows 7 SP1 suchen musste, habe ich mich dem Windows Updates Downloader und der aktuellen Update Liste bedient.

Die aktuelle Update Liste für die entsprechende Windows Version samt Architektur (x86/x64) integriert man über das grüne „+“ Symbol neben dem „Update List“ Auswahlfeld.

Hier habe ich die „Non-Security Updates“ und „Security Updates“ komplett ausgewählt und herunterladen. Die Dateien werden in dem „Download Folder“ angegebenen Pfad in entsprechende Unterordner abgelegt.

2. Schritt – Integrieren der Updates in die install.wim Datei.

Vor der Integration der Updates habe ich die aktuell genutzten Betriebssystemquellen aus dem entsprechenden Unterverzeichnis von \\%EmpirumServer%\EmpInst$\SYS\Win7\<Architektur>\pro\1  auf den lokalen Computer heruntergeladen.

Zur Integration der Updates habe ich mir dann wiederum dem „Win Toolkit“ (http://www.wincert.net/forum/files/) bedient. Darin habe unter „Main“, „Basic“, den „All-In-One Integrator“ gestartet.

Im nachfolgenden Dialog habe ich zum lokalen Ordner der Betriebssystemquellen und darin wiederum in den VistaDVD Ordner navigiert (Browse: Browse DVD) und das enthaltene Betriebssystem ausgewählt (Select bzw. Doppelklick).

Im nachfolgenden Dialog wechselt man dann auf den Reiter „Basic“, „Updates + Languages“ und fügt über das große grüne „+“ Symbol am linken Rand die Updates zur Integration hinzu. Hierbei habe ich zuerst die die Dateien aus dem „Non Security Updates“ Ordner und dann die Dateien aus dem „Security Updates“ Ordner ausgewählt.

Hinweis: Bei beiden Vorgängen habe ich die Updates zum Internet Explorer 10 ausgelassen, da ich diesen auch nicht in die Quellen integriert habe. Desweiteren kam es zu einer Meldung bzgl. des Updates KB2533552, dass dieser nicht hinzugefügt werden kann. Dieses Update habe ich somit auch ausgelassen.

Der letzte Schritt im „Win Toolkit“ ist „Start“ (oben links) zu wählen. Jetzt beginnt der mounten, Updates integrieren, dismount Vorgang. Dieser Ablauf dauert ca. eine Stunde.

3. Schritt – Bereitstellen der aktualisierten Quellen in Empirum

Ist der zuvor beschriebene Vorgang abgeschlossen und „Win Toolkit“ beendet, kopiert man die aktualisierten Quellen wieder auf den EmpirumServer. Es ist jedoch besser, man erstellt ein neues Verzeichnis parallel zum Verzeichnis „1“ oder ähnlich und fügt ggf. das Datum der Aktualisierung hinzu (Beispiel „1_20130823“).

Was muss Empirum seitig getan werden, damit diese Quellen genutzt werden können?

Import

Update (21.10.2013): Beim Einsatz von Empirum v15 und neuer muss vor dem Import die Datei „EmpirumPackageData.xml“ aus dem Versionsordner gelöscht werden.

Die Quellen müssen in Empirum „importiert“ bzw. bekannt gemacht werden. Dazu die EMC starten, Konfiguration, OS-Installer – Reiter „Import“ auswählen. Im Menü unter „Software“, „Liste von der Festplatte lesen“ auswählen und die abgelegten Quellen einbinden.

Betriebssystemvorlage

Im nächsten Schritt öffnet man die zuletzt genutzte Betriebssystemvorlage, wechselt bei „Allgemein“ auf den Reiter „Sprache“ und wählt bei „Betriebssystem“, „Version“ die neu eingebundenen Quellen aus (Beispiel: „1_20130823“).

Zur Sicherheit speichert man diese Betriebssystemkonfiguration unter einem neuen Namen („Datei“, „Speichern unter …“), damit die produktiv genutzte Betriebssystemkonfiguration unverändert bleibt!

Betriebssystemkonfiguration zuordnen und testen

Jetzt kann man die neu erstelle Betriebssystemkonfiguration einem Computer zuordnen und die Installation testen. Verläuft die Installation reibungslos und erfolgreich, kann man die Installation mittels „Windows Updates“ auf Vollständigkeit prüfen und ggf. weitere Windows Updates herunterladen und nach dem oben genannten Verfahren in die „install.wim“ integrieren.

In meinem Fall standen am Ende nur noch die .NET Framework 3.5 SP1 Updates und einige wenige andere Updates aus. Mit diesem Resultat war ich nach dem überschaubaren Aufwand sehr zufrieden. Dies spart die Installation von ca. 100 Updates und über eine Stunde bei der Betriebssysteminstallation.

Wie sind Eure Erfahrung mit integrierten Updates? Schreibt doch mal!

In Kürze werde ich auch noch schreiben, wie ich mit den Updates für das .NET Framework 3.5 SP1 verfahren bin.

Der Beitrag Integration von Updates in Windows 7 SP1 Quellen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/integration-von-updates-in-windows-7-sp1-quellen/feed/ 18
Setup.inf – Datei pro Benutzer kopieren https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/ https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/#comments Mon, 06 May 2013 17:19:44 +0000 https://www.wpm-blog.de/?p=909 Häufig steht man vor der Aufgabe in einem Empirum Paket pro Benutzer eine Datei zu kopieren, um benutzerspezifische Einstellungen vorab vorzunehmen. Wie kann dies in der Setup.inf vorgenommen werden und worauf sollte man achten? Wenn … Weiterlesen

Der Beitrag Setup.inf – Datei pro Benutzer kopieren erschien zuerst auf Workplace Management Blog.

]]>
Kopieren pro BenutzerHäufig steht man vor der Aufgabe in einem Empirum Paket pro Benutzer eine Datei zu kopieren, um benutzerspezifische Einstellungen vorab vorzunehmen. Wie kann dies in der Setup.inf vorgenommen werden und worauf sollte man achten?

Wenn man nicht weiß, in welcher Datei sich die Einstellung niederschlägt bzw. in welcher Datei die Anpassung vorgenommen werden, kann man die Änderung mittels des PackageWizards und dem Differenzanalyseverfahren (Diff) festhalten.

Variante 1 – Diff bzw. Differenzanalyseverfahren

Das bedeutet, man startet den PackageWizard und wählt den Punkt „Systemanalyse vor und nach der Installation …“ und führt den PreScan durch. Ist der PreScan abgeschlossen, führt man seine Änderung der Einstellung durch bzw. kopiert eine Datei manuell in das Benutzerverzeichnis. Anschließend führt man den PostScan durch. Ist der PostScan erfolgreich abgeschlossen, führt man den PackageWizard Assistenten bis zum Ende durch. Kopieren Sie die Datei nicht auf den EmpirumServer. Wenn man den Haken bei Datei mit dem PackageEditor öffnen wählt, kann man sich die kommenden Schritte sparen.

Nun kann man die gerade erzeugte Setup.inf Datei öffnen. Geben Sie dazu %TEMP% im Windows Explorer ein. Hiermit landet man direkt im temporären Verzeichnis. Hier sollte ein Verzeichnis mit der Herstellerbezeichnung (aus der Eingabe im PackageWizard) vorhanden sein. Darunter befindet sich ein Verzeichnis mit dem Softwarenamen, dann der Version und dann „Install„. Im „Install“ Verzeichnis befindet sich die gerade erstellte Setup.inf.
Jetzt können Sie den Kopierbefehl, als auch die dazugehörige Datei in Ihr ggf. bereits vorhandenes Paket einfügen bzw. übernehmen.

Variante 2 – Empirum Kopierflag CLIENT (pro Benutzer):

Ergänzen der Setup.inf wie folgt. Eintragen eines Sektionsaufrufes unterhalb von [Product] in der passenden Reihenfolge. Vorteilhaft ist es, wenn man den benutzerspezifischen Teil nach der eigentlichen Installation des Programmes ausführt, hier mit Set:Product symbolisiert. Zusätzlich muss die benutzerspezifische Datei (hier: Freecommander.ini) im Ordner (hier: APPDATA\Freecommander) des Programmes unter „Source“ (hier: Packages\<Hersteller>\<Softwarename>\<Version>\) abgelegt werden.

Wichtig: Der Sektion „Benutzereinstellungen“ nicht das Flag „CLIENT“ hinzufügen, sonst wird die Datei nicht im Maschinenteil lokal kopiert!

Kopierflags

Die Datei wird in diesem Falle bei einer Deinstallation auch wieder vom Computer entfernt. Ist dies nicht gewünscht, da dann Einstellungen nicht zu einer neu installierten Version übernommen werden, so kann zu den vorhandenen Flags CLIENT ALWAYS auch noch das DONTDELETE hinzugefügt werden. Ein weiterer Blog Artikel zum Kopierbefehl kann hier eingesehen werden, alle Kopierflags sind hier aufgeführt.

ALWAYS

Das Flag ALWAYS überschreibt eine gegebenenfalls existierende Datei. Bei benutzerspezifischen Einstellungen sollte man das Flag ALWAYS immer setzen, da die installierten Programme zumeist eine vordefinierte Einstellungsdatei einrichten und diese hat dann das Datum der Installation der Software und die eigene Einstellungsdatei hätte ggf. ein älteres Datum und würde im Standard nicht installiert/kopiert werden. Mit ALWAYS stellt man somit sicher, dass die eigene Datei mit Einstellungen eine gegebenenfalls vorhandene Datei überschreibt!

[Product]
...
;---Beispiel für eine Installation, diese Zeile nicht übernehmen! 
#Set:Product 
...
#Benutzereinstellungen 
...

[Benutzereinstellungen]
1:APPDATA\Freecommander\Freecommander.ini, %APPDATA%, CLIENT ALWAYS, 0

Variante 3 – Empirum Kopierbefehl copy

Ergänzen der Setup.inf wie folgt. Eintragen zweier Sektionsaufrufe unterhalb von [Product] in der passenden Reihenfolge. Vorteilhaft ist es, wenn man den benutzerspezifischen Teil nach der eigentlichen Installation des Programmes ausführt, hier mit Set:Product symbolisiert. Die Sektion „BenutzereinstellungenMachine“ kopiert die Einstellungsdatei (hier wurde eine config.xml Datei angenommen) auf den Computer zur lokalen Ablage. Die Sektion „BenutzereinstellungenClient“ kopiert die Datei dann pro Benutzer in das angegebene Verzeichnis. Zusätzlich muss die benutzerspezifische Datei im Ordner des Programmes unter „Source“ (hier: Packages\<Hersteller>\<Softwarename>\<Version>) abgelegt werden.

[Product]
...
;---Beispiel für eine Installation, diese Zeile nicht übernehmen!
#Set:Product 
...
 #BenutzereinstellungenMachine, MACHINE 
#BenutzereinstellungenClient, CLIENT 
...

[BenutzereinstellungenMachine]
;---kopiert die Einstellungsdatei im Maschinenteil auf den Computer 
-DEL "%APP%\Config.xml"
Copy "%SRC%\Config.xml" "%APP%\Config.xml"

;---Alternative für einen anderen lokalen Ablageort der Konfigurationsdatei 
;-DEL "%WINDIR%\EmPack\%DeveloperName%\%ProductName%\%Version%\Config.xml" 
;Copy "%SRC%\Config.xml" "%WINDIR%\EmPack\%DeveloperName%\%ProductName%\%Version%\Config.xml"

[BenutzereinstellungenClient] 
;---kopiert die Einstellungsdatei im Benutzerteil von der lokalen Ablage in das benutzerspezifische Verzeichnis 
Copy "%APP%\Config.xml" "%AppData%\<Hersteller>\Config.xml"

;---Bei einem alternativen lokalen Ablageort der Konfigurationsdatei 
;Copy "%WINDIR%\EmPack\%DeveloperName%\%ProductName%\%Version%\Config.xml" "%AppData%\<Hersteller>\Config.xml"

;---Falls bei einer Deinstallation auch die Einstellungen wieder entfernt werden sollen. 
;---Achtung, somit werden Einstellungen nicht in eine neue Version übernommen, da die Config.xml beim Deinstallieren gelöscht wird. 
-DEL "%AppData%\Config.xml"

Setup.exe Aufruf

Als letztes ist es wichtig, dass dem Paket beim Einbinden in das SoftwareDepot auch mitgeteilt wird, das ein Benutzertzeil ausgeführt werden muss. Dies wird auf dem Reiter „Prüfung“ im Feld „Befehl“ vorgenommen. Weitere Informationen dazu sind in diesem Artikel vermerkt.

Der Beitrag Setup.inf – Datei pro Benutzer kopieren erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/feed/ 5
Empirum Kopierbefehl und Kopierflags https://www.wpm-blog.de/empirum-kopierbefehl-und-kopierflags/ https://www.wpm-blog.de/empirum-kopierbefehl-und-kopierflags/#respond Mon, 10 Dec 2012 18:30:56 +0000 https://www.wpm-blog.de/?p=556 Die Kopierfunkion in der Setup.inf von Empirum bietet viele Möglichkeiten. Ich möchte heute die eine Reihe der Möglichkeiten erläutern. Wichtig ist im ersten Schritt mindestens die folgenden Variablen der Setup.inf zu kennen. %SRC% entspricht dem … Weiterlesen

Der Beitrag Empirum Kopierbefehl und Kopierflags erschien zuerst auf Workplace Management Blog.

]]>
Die Kopierfunkion in der Setup.inf von Empirum bietet viele Möglichkeiten. Ich möchte heute die eine Reihe der Möglichkeiten erläutern.

Wichtig ist im ersten Schritt mindestens die folgenden Variablen der Setup.inf zu kennen.

  • %SRC% entspricht dem Source-Directory (SrcDir=) – das Verzeichnis „auf Höhe“ des Install Verzeichnisses bzw. unter dem Versionverzeichnis. %SRC% = <Hersteller>\<Softwarename>\<Version>.
  • %APP% entspricht dem %ApplicationDir% aus der Sektion [Application], zumeist das Zielverzeichnis für eine Installation.

Syntax

Hier nun die Syntax für den Kopierbefehl:
1:Quelldatei,Zielverzeichnis,Kopierflag,Größe

Beispiel

Diese Zeile:
1:WinCmd.exe, ,NORMAL, 123456
kopiert die Datei WinCmd.exe mit der Größe 123456 aus dem %SRC% Verzeichnis in das %ApplicationDir% Verzeichnis.

Quelldatei

Die Quelldatei wird am dem Verzeichnis %SRC% angegeben.

Zielverzeichnis

Ist beim Zielverzeichnis nichts angegeben, wird %ApplicationDir% gesetzt.

Kopierflag

Das einfachste Kopierflag ist NORMAL.

Dieses Kopierflag sorgt dafür, dass die aktuellste Datei im Ziel (auf dem Clientcomputer) „landet“. Ist bereits eine aktuellere Datei auf dem Computer als in der Quelle, so wird die Datei nicht vom Server (Empirum Paket) überschrieben.

Empirum bietet eine Fülle an Kopierflags.
Hier führe ich die häufigst genutzten Befehle auf. Eine komplette Übersicht ist jedoch hier wieder zu finden.

  • NORMAL – Die Datei wird nur kopiert, wenn sie neuer ist als das Ziel.
  • ALWAYS – Die Datei wird immer kopiert.
  • CLIENT – Die Datei wird im Benutzerteil/Benutzerkontext kopiert.
  • DONTDELETE – Die Datei wird beim Deinstallieren des Paketes nicht gelöscht.
  • SHAREDDLL – Der Zähler bei gemeinsam genutzten DLLs auch hoch und runtergezählt.
  • USEFILENAME – Die Datei wird ohne den Quellpfad in das Ziel kopiert.
  • WINDOWS32 – nur bei Windows 32bit Betriebssystemen ausführen
  • WINDOWS64 – nur bei Windows 64bit Betriebssystemen ausführen

Es können auch mehrere Kopierflags mit einem Leerzeichen getrennt angegeben werden.

Größe

Die Größe bestimmt, wie sich in einem Paket mit Empirum Kopierbefehlen der Fortschrittsbalken verhält. Man kann die Größe auch auf „0“ setzen, dann wird die Größe ignoriert.

Der Beitrag Empirum Kopierbefehl und Kopierflags erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-kopierbefehl-und-kopierflags/feed/ 0
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