You searched for Set:+Product - Workplace Management Blog https://www.wpm-blog.de/ ... ideas and solutions making workplace management easier Sun, 24 Nov 2024 16:29:01 +0000 de hourly 1 https://wordpress.org/?v=6.1.7 Empirum Setup.inf – Variablen https://www.wpm-blog.de/empirum-setup-inf-variablen/ https://www.wpm-blog.de/empirum-setup-inf-variablen/#respond Tue, 07 Nov 2023 16:22:05 +0000 https://www.wpm-blog.de/?p=2888 In der Empirum Setup.inf sollte man vorrangig Variablen anstatt absoluter Werte nutzen. Dies hilft, um auf verschiedene Betriebssystem-Versionen und Sprachen passend zu reagieren. Somit kann das erstellte Paket, im besten Falle, viele Jahre problemlos genutzt … Weiterlesen

Der Beitrag Empirum Setup.inf – Variablen erschien zuerst auf Workplace Management Blog.

]]>
In der Empirum Setup.inf sollte man vorrangig Variablen anstatt absoluter Werte nutzen. Dies hilft, um auf verschiedene Betriebssystem-Versionen und Sprachen passend zu reagieren. Somit kann das erstellte Paket, im besten Falle, viele Jahre problemlos genutzt werden bzw. relativ problemlos eine Nachfolgeversion paketiert werden. Die Empirum Hilfe bietet eine große Tabelle an Variablen, aber am Ende nutzt man zumeist immer wieder die Gleichen. Neben den Variablen, die Empirum in der Setup.inf bietet kann man jederzeit auch auf die Umgebungsvariablen des Systems zurückgreifen.

Variablen

Nachfolgend sollten die meistgenutzten Variablen aufgeführt sein. Falls ihr eine Variable häufig nutzt, die hier nicht aufgeführt ist, so lasst es mich wissen.

Variable Erklärung / Beispiel
%Developername% Wert der in der [Application] Sektion angegeben ist (z.B.: Adobe)
%ProductName% Wert der in der [Application] Sektion angegeben ist (z.B.: Reader)
%Version% Wert der in der [Application] Sektion angegeben ist (z.B.: 23.0)
%Revision% Wert der in der [Application] Sektion angegeben ist (z.B.: 0)
%Src% Verzeichnis parallel zum Install Verzeichnis (SrcDir=.. ein Verzeichnis „zurück“ von dem Ablageort der Setup.inf).
%App% Das Verzeichnis, dass unter ApplicationDir= in der [Application] Sektion angegeben ist.
%ProgramFiles% oder %ProgramFilesDir% Beispiel: C:\Program Files
%ProgrammFiles(x86)% oder%ProgramFilesDirx86% Beispiel: C:\Program Files (x86)
%AppData% Beispiel: C:\Users\<Benutzername>\AppData\Roaming
%LocalAppData% Beispiel: C:\Users\<Benutzername>\AppData\Local
%WinDir% C:\Windows
%CommonPrograms% Verzeichnis, in dem die Startmenü\Programme Verknüpfungen aller Benutzer abgelegt sind.
%CommonDesktop% Verzeichnis, in dem die Desktop Verknüpfungen aller Benutzer abgelegt sind.
%UserPrograms% Verzeichnis, in dem die Startmenü\Programme Verknüpfungen des angemeldeten Benutzer abgelegt sind.
%UserDesktop% Verzeichnis, in dem die Desktop Verknüpfungen des angemeldeten Benutzer abgelegt sind.
%Programdata% oder %AllUsersProfile% Gemeinsames Programmverzeichnis, z.B.: C:\ProgramData
%WindowsUser% der angemeldete Windows Benutzer, ähnlich der Variable %Username%
%Computername% Name des Computers
%ComSpec% cmd.exe

Beispiele

Del "%CommonDesktop%\WinSCP.lnk"

Del "%CommonPrograms%\TotalCommander Repair und Uninstall.lnk"

Deltree "%ProgramFiles%\WinSCP"

Callhidden %ComSpec% /C Echo %%date%% %%time%% [Set:Product] Install or repair >>"%App%\Debug.log"

Copy "%Src%\filezilla.xml" "%App%\FileZilla.xml"

Copy "%App%\filezilla.xml" "%AppData%\FileZilla\FileZilla.xml"

Der Beitrag Empirum Setup.inf – Variablen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-setup-inf-variablen/feed/ 0
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 und For – Next Schleife https://www.wpm-blog.de/empirum-und-for-next-schleife/ https://www.wpm-blog.de/empirum-und-for-next-schleife/#respond Thu, 17 Sep 2015 17:51:17 +0000 https://www.wpm-blog.de/?p=1632 Wenn man in einem Empirum Script bzw. Paket wiederholt die gleichen Befehle ausführen möchte, sollte man sich die For … Next Schleife näher ansehen. Mit dem For … Next Konstrukt kann man für eine definierte … Weiterlesen

Der Beitrag Empirum und For – Next Schleife erschien zuerst auf Workplace Management Blog.

]]>
Wenn man in einem Empirum Script bzw. Paket wiederholt die gleichen Befehle ausführen möchte, sollte man sich die For … Next Schleife näher ansehen. Mit dem For … Next Konstrukt kann man für eine definierte Anzahl immer wieder die gleiche Setup.inf Sektion ausführen. In der aufgerufenen Sektion arbeitet man dann wiederum mit Variablen, die man im besten Falle mit dem Zähler verbindet.

Es gibt jedoch Besonderheiten bei diesem Befehl. Die For … Next Schleife wird beim Install als auch beim Uninstall ausgeführt und benötigt kein „-„. Beim Uninstall zählt die For Schleife jedoch „umgekehrt“. Dies ist in der Hilfe so nicht näher erläutert. Anbei findet Ihr die Erläuterung aus der Matrix42 Hilfe, als auch ein Empirum Setup.inf Ausschnitt mit zwei Beispielen.

Auszug aus der Online Hilfe

For <Var>,<LB>,<UB>,<Inc>,<Abschnitt>

Führt eine FOR-Schleife aus. Die Zählvariable ist <Var> wird von der Untergrenze <LB> zur Obergrenze <UB> in <Inc> Schritten hoch gezählt. Jedes Mal wird der Abschnitt <Abschnitt> aufgerufen. Die Zahlen dürfen auch negativ sein sowie Ober- und Untergrenze vertauscht werden (Abwärtsschleife). Wird <Inc> leer gelassen, wird 1 bzw. -1 angenommen.

Beispiel: For Counter,1,3,,UpSection

Setup.inf Beispiel

[Environment]
VALUE1=Hello
VALUE2=World
VALUE3=!

[Product]
#Set:Installation, DONTDELETE
#Set:Deinstallation, DELETE

[SET:Installation]
FOR counter,1,5,,ECHOCounter
FOR counter,1,3,,ECHOValues

[ECHOCounter]
ECHO Installation : %Counter%
-ECHO DeInstallation : %Counter%

[ECHOValues]
SET EchoVALUE=%%Value%Counter%%%
ReplaceEnv EchoValue
ECHO %EchoValue%

[SET:Deinstallation]
;--This counts from 5 to 1 during UNINSTALL!
FOR counter,1,5,,ECHOCounter
-ECHO FOR counter,1,5,,ECHOCounter

;--This counts from 1 to 5 during UNINSTALL!
FOR counter,5,1,-1,ECHOCounter
-ECHO FOR counter,5,1,-1,ECHOCounter

Der Beitrag Empirum und For – Next Schleife erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-und-for-next-schleife/feed/ 0
UAC Meldungen bei der Reinstallation von MSI Paketen https://www.wpm-blog.de/uac-meldungen-bei-msi-paketen/ https://www.wpm-blog.de/uac-meldungen-bei-msi-paketen/#comments Tue, 09 Dec 2014 19:14:27 +0000 https://www.wpm-blog.de/?p=1444 Seit geraumer Zeit kann es zu UAC Meldungen bei der Reinstallation von MSI Paketen kommen. Ich habe auch schon die Meldung bekommen das es auch bei Installationen passiert ist. Was ist der Hintergrund und wie … Weiterlesen

Der Beitrag UAC Meldungen bei der Reinstallation von MSI Paketen erschien zuerst auf Workplace Management Blog.

]]>
Seit geraumer Zeit kann es zu UAC Meldungen bei der Reinstallation von MSI Paketen kommen. Ich habe auch schon die Meldung bekommen das es auch bei Installationen passiert ist. Was ist der Hintergrund und wie kann sich behelfen.

MS14-049

Microsoft hat im Oktober 2014 einen Patch unter der Bulletin ID MS14-049 veröffentlicht. Dieser Patch schließt eine Lücke im Windows Installer Dienst: „Vulnerability in Windows Installer Service Could Allow Elevation of Privilege“. Damit einhergehend werden für MSI Installationen neue Hash Werte ermittelt bzw. erstellt. Dies führt bei einer Reinstallation einer bereits installierten MSI Installation zu Problemen.

Mögliche Abhilfen

Whitelisting der Installation

Microsoft hat direkt Methoden zur Erstellung von Whitelist Einträgen, pro getätigter MSI Installation die repariert werden soll, angeboten. Bei dem Einsatz einer Softwareverteilung und einer Fülle an getätigter Software Installationen bereitet das keinen Spaß.
Die Informationen dazu wurden hier veröffentlicht.

Patch zur Behebung des UAC Problems

Im November wiederum wurde dann ein Hotfix veröffentlicht, der mit Hilfe eines Registry Keys generell die UAC Meldungen bei einem nicht vorhandenen MSI Hash Wert unterbinden soll.
Dieser Hotfix samt Vorgehensweise ist hier veröffentlicht.

Die Vorgehensweise mit dem nachgelagerten Hotfix scheint eine sinnvolle Behebung bzw. Umgehung der Problematik zu sein. Doch auch diese Umgehung scheint nach Rückmeldungen nicht zu 100% zu funktionieren.

Deinstallation des MS14-049

Letztendlich bleibt einem bei allen oben getroffenen Maßnahmen und keinem Erfolg (UAC Meldung erscheint trotz aller Maßnahmen) nur noch die Deinstallation des Patches.
Dies wiederum kann auch per Empirum geschehen. Dazu habe ich unten eine beispielhafte Deinstallationsroutine angehängt.

Ich drücke Euch die Daumen!

[Product]
#CheckWUSA, DONTDELETE
#Set:Product, DONTDELETE

[CheckWUSA]
Set VM_WUSA=%HKLM,"SYSTEM\CurrentControlSet\Services\wuauserv","Start"%
If "%VM_WUSA%" == "4" Then "EnableWUSA" EndIf

[EnableWUSA]
CallHidden sc config "wuauserv" start= demand error= ignore

[Set:Product]
SET QFE=2918614
Addmeter -1
DEL "%TEMP%\qfe.txt"
Callhidden %comspec% /C ECHO %sysdate% %systime% - Searching for installed hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log"
Callhidden %comspec% /C wmic.exe qfe >"%TEMP%\qfe.txt"
If DoesTextInFileExist ("%QFE%", "%TEMP%\qfe.txt") == "1" Then "UninstallQFE" ELSE "QFEnotExist" EndIf

[UninstallQFE]
Callhidden %comspec% /C ECHO %sysdate% %systime% - Installed hotfix found: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log"
Callhidden %comspec% /C ECHO %sysdate% %systime% - Uninstall hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log"
CallHidden sc config "wuauserv" start= demand error= ignore
Callhidden wusa /uninstall /kb:%QFE% /quiet /norestart
Set WusaError=%ErrorLevel%
IF %wusaError% == "3010" Then "RebootRequired" EndIf
Callhidden %comspec% /C ECHO %sysdate% %systime% - ErrorLevel: %WusaError% >>"%WINDIR%\TEMP\qfe_uninstall.log"
Callhidden %comspec% /C wmic.exe qfe >"%TEMP%\qfe.txt"
If DoesTextInFileExist ("%QFE%", "%TEMP%\qfe.txt") == "1" Then "SET:InstallationError" EndIf
Callhidden %comspec% /C ECHO %sysdate% %systime% - Successfully uninstalled hotfix: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log"
DEL "%TEMP%\qfe.txt"

[QFEnotExist]
Callhidden %comspec% /C ECHO %sysdate% %systime% - The following hotfix is not installed: %qfe% >>"%WINDIR%\TEMP\qfe_uninstall.log"

[RebootRequired]
SetReboot 1

[SET:InstallationError]
Callhidden %comspec% /C ECHO %sysdate% %systime% - Failed uninstall hotfix: %qfe% >>"%WINDIR%\TEM\qfe_uninstall.log"
ErrorLogMsg %ErrorText% %WusaError% %CallingText% wusa /uninstall /kb:%QFE% /quiet
Abort

Setup.inf Beispiel zur Hotfix Deinstallation als Datei: MSHotfix_Uninstall (952 Downloads )

Der Beitrag UAC Meldungen bei der Reinstallation von MSI Paketen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/uac-meldungen-bei-msi-paketen/feed/ 1
SSD Festplatten Erkennung im Script https://www.wpm-blog.de/ssd-festplatten-erkennung-im-script/ https://www.wpm-blog.de/ssd-festplatten-erkennung-im-script/#respond Wed, 29 Jan 2014 19:41:07 +0000 https://www.wpm-blog.de/?p=1206 Wenn man auf für Computer mit einer eingebauten SSD Festplatte in Abläufen wie einer Softwareverteilung etwas spezielles machen möchte, so ist es notwendig dies per Script (wie z.B. der Empirum Setup.inf, einer Batch Datei, etc.) … Weiterlesen

Der Beitrag SSD Festplatten Erkennung im Script erschien zuerst auf Workplace Management Blog.

]]>
Wenn man auf für Computer mit einer eingebauten SSD Festplatte in Abläufen wie einer Softwareverteilung etwas spezielles machen möchte, so ist es notwendig dies per Script (wie z.B. der Empirum Setup.inf, einer Batch Datei, etc.) auszulesen bzw. zu überprüfen und dann die abhängigen Änderungen durchzuführen.

SSD Erkennung per Tool

Dazu muss man das Rad nicht neu erfinden. Es gibt bereits fertige Tools wie dieses hier. An dieser Stelle ist auch beschrieben bzw. auf einen Microsoft Artikel verwiesen, welche Kriterien alles für eine SSD Erkennung herangezogen werden.

Wie nutze ich das Tool?

Der Aufruf geschieht wie folgt:
IsSSD.exe <Laufwerksbuchstabe>, z.B.: IsSSD.exe C:

Wie nutze ich es in der Empirum Setup.inf?

Hier ein Beispiel:

[Set:Product]
CALL "%SRC%\IsSSD.exe" C:
IF "%ErrorLevel%" == "1" THEN "IsSSD" Else "IsNoSSD" EndIf

[IsSSD]
Echo SSD installed!

[IsNoSSD]
Echo No SSD installed!

Wie nutze ich es in einer Batch Datei?

Auch dazu ein kleines Beispiel:

:Begin_SSD_Check
IsSSD.exe C:
IF "%ERRORLEVEL%" == "1" goto Hdd_is_SSD
Echo Hdd is not a SSD Drive!
Goto End_SSD_Check
:Hdd_is_SSD
Echo Hdd is a SSD Drive!
:End_SSD_Check

Gutes gelingen und viel Spaß damit!

Der Beitrag SSD Festplatten Erkennung im Script erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/ssd-festplatten-erkennung-im-script/feed/ 0
Empirum Paket – Revisionserhöhung bei „großen“ Installationen https://www.wpm-blog.de/empirum-paket-revisionserhoehung-bei-grossen-installationen/ https://www.wpm-blog.de/empirum-paket-revisionserhoehung-bei-grossen-installationen/#respond Fri, 01 Nov 2013 17:05:32 +0000 https://www.wpm-blog.de/?p=1147 Ein Software-Paket größeren Umfangs wurde bereits verteilt und es steht jetzt jedoch noch ein kleineres Update aus. Nun kann man entweder ein weiteres Fix Paket schnüren und zusätzlich verteilen, oder das ursprüngliche Paket anpassen und … Weiterlesen

Der Beitrag Empirum Paket – Revisionserhöhung bei „großen“ Installationen erschien zuerst auf Workplace Management Blog.

]]>
Ein Software-Paket größeren Umfangs wurde bereits verteilt und es steht jetzt jedoch noch ein kleineres Update aus. Nun kann man entweder ein weiteres Fix Paket schnüren und zusätzlich verteilen, oder das ursprüngliche Paket anpassen und mittels Revisionserhöhung nochmals verteilen. Für ersteres spricht, dass weniger Dateien nochmals über die „Leitung“ gehen, für zweiteres, dass man auch für Neuinstallationen nur ein Paket zuweisen muss.

Zweiteres kann man über die Logik der Revisionserhöhung realisieren. Möchte bei einem bereits verteilten Paket mit einer MSI oder Unattended Installation nun noch ein paar Dateien oder Registry Einträge austauschen/hinzufügen, so kann man den nachfolgend erläuterten Mechanismus nutzen. Dieser Mechanismus ermöglicht, dass bei bereits vorhandenen Installationen mit der Revision=0 nur minimale Änderungen durchgeführt werden und bei Neuinstallationen, die komplette Installation zuzüglich der nachträglichen Änderung.

[Product]
#CheckRevisionChanges, DONTDELETE
...
;<Installationslogik MSI / Unattended>
;<z.B.: Set:Product>
;<z.B.: Set:Installation>
#DoMinorUpdate

[CheckRevisionChanges]
Set LocalRevision=%%HKLM,Software\%MachineKeyName%\Setup,Revision%%
ReplaceEnv LocalRevision
IF "%LocalRevision%" < "%Revision%" & "%LocalRevision%" <> "" THEN "OnlyDoRevisionUpdate" EndIf

[OnlyDoRevisionUpdate]
#DoMinorUpdate
Exit

[DoMinorUpdate]
;Examples / Beispiele
;#CopyAdditionalFiles
;#Reg:Changes

Der Beitrag Empirum Paket – Revisionserhöhung bei „großen“ Installationen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-paket-revisionserhoehung-bei-grossen-installationen/feed/ 0
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
Suchen und Ersetzen in der Registry https://www.wpm-blog.de/suchen-und-ersetzen-in-der-registry/ https://www.wpm-blog.de/suchen-und-ersetzen-in-der-registry/#comments Tue, 05 Mar 2013 17:39:09 +0000 https://www.wpm-blog.de/?p=847 Für Änderungen in der Registry gibt es seitens Empirum und dem Betriebssystem einige Möglichkeiten. Diese habe ich hier bereits erläutert. Die Sektion „REG:“ lässt nahezu keine Wünsche offen. Durch Einführung des ReplaceRegValue Befehls ist es … Weiterlesen

Der Beitrag Suchen und Ersetzen in der Registry erschien zuerst auf Workplace Management Blog.

]]>
Für Änderungen in der Registry gibt es seitens Empirum und dem Betriebssystem einige Möglichkeiten. Diese habe ich hier bereits erläutert. Die Sektion „REG:“ lässt nahezu keine Wünsche offen. Durch Einführung des ReplaceRegValue Befehls ist es auch möglich Änderungen vorzunehmen, ohne den gesamten Registry Eintrag zu kennen. Will man nun jedoch einen Wert ändern, ohne genau zu wissen, wo er in der Registry steht hilft eigentlich nur noch ein „Suchen und Ersetzen“. Mit einem älteren Windows Resource Kit gab es einmal ein „regfind“ Befehl, der neben dem Suchen auch das Setzen ermöglichte. Doch dieser Befehl arbeitet in den heutigen Umgebungen nicht zuverlässig genug. Die nachfolgende Möglichkeit arbeitet bereits sehr global, hat jedoch meines Erachtens den einzigen Nachteil, des es keine Einträge vom Typ REG_BINARY auffinden und ersetzen kann.

Die hier beschriebene Methode kann natürlich auch im Maschinenteil zur Anpassung von HKEY_LOCAL_MACHINE Einträgen genutzt werden. Dazu müssen jedoch Anpassungen vorgenommen werden.

[Set:Product]
#Set:User, CLIENT

[Set:User]
Set HKCURegTree = HKEY_CURRENT_USER\Software\Hersteller
Set HKCURegFile = "%TEMP%\hkcu.reg"
Set SearchString = "Alt"
Set ReplaceString = "Neu"
CALLHIDDEN regedit.exe /E %HKCURegFile% %HKCURegTree%
ReplaceTextFile (%HKCURegFile%, %SearchString%, %ReplaceString%, 0)
CALLHIDDEN regedit.exe /S %HKCURegFile%
If %ErrorLevel%<>0 Then Set:CUError EndIf
Del %HKCURegFile%
[Set:CUError]
ErrorLogMsg Error: %ErrorLevel% : Error changing Registry
Abort

Der Beitrag Suchen und Ersetzen in der Registry erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/suchen-und-ersetzen-in-der-registry/feed/ 2
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