<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>You searched for machine flag - Workplace Management Blog</title>
	<atom:link href="https://www.wpm-blog.de/search/machine+flag/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>https://www.wpm-blog.de/</link>
	<description>... ideas and solutions making workplace management easier</description>
	<lastBuildDate>Sun, 24 Nov 2024 17:00:52 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.15</generator>
	<item>
		<title>Software in der Systemsteuerung verstecken</title>
		<link>https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/</link>
					<comments>https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Sun, 09 Jul 2023 18:00:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Setup.inf]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2879</guid>

					<description><![CDATA[<p>Installiert man eine Software, wird diese anschließend in der Systemsteuerung unter Programme oder neuerdings unter Einstellungen, Apps, Installiert Apps angezeigt. Dies dient normalerweise dazu, dass man ein installierte Software anpassen oder deinstallieren kann. In einer &#8230; <a href="https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/">Software in der Systemsteuerung verstecken</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Installiert man eine Software, wird diese anschließend in der Systemsteuerung unter Programme oder neuerdings unter Einstellungen, Apps, Installiert Apps angezeigt. Dies dient normalerweise dazu, dass man ein installierte Software anpassen oder deinstallieren kann. In einer verwalteten oder neudeutsch &#8222;gemanagten&#8220; Umgebung wollen wir dies zum einen nicht, zum anderen kommt es beim Einsatz von Matrix42 Empirum ggf. dazu, das eine Software doppelt angezeigt wird.<span id="more-2879"></span></p>
<h3>Hintergrund</h3>
<p>Damit man eine Software mit Matrix42 Empirum verteilen kann, benötigt man ein Software-Paket. Dies muss im Falle von Matrix42 Empirum ein gewisses Format haben und ist am Ende eine Steuerdatei bzw. ein Skript mit dem Namen Setup.inf. Diese Setup.inf wird auch vom Matrix42 Package Wizard ein Paket erstellt, wenn man sich für die Installation einer MSI oder EXE, die unattended installiert werden kann, entscheidet. Der Vorteil ist, dass die Setup.inf neben der Fehler- bzw. Erfolgsbehandlung auch weitere Aufgaben übernehmen kann, die für diese Software nötig ist. Beispiele: Löschen der Desktop-Verknüpfung, Installation einer VCRedist vorab, Kopieren einer Datei danach, uvm.</p>
<h3>Warum nun doppelte Einträge?</h3>
<p>Die eben genannte Setup.inf ist im Ursprung eine Installationsroutine für Programme, die sich eben nicht &#8222;unattended&#8220; bzw. &#8222;silent&#8220; installieren lassen. Wenn man nun innerhalb der Setup.inf eine MSI oder EXE installiert, die selbst eine Installationsroutine mitbringt, haben wir eben zwei Installationsroutinen. Beide Installationsroutinen tragen sich in der Registry ein, womit sie dann in den oben genannten Dialogen erscheinen.</p>
<h3>Bei MSI Paketen ist dies nicht der Fall!</h3>
<p>Erstellt man mit dem Matrix42 Package Wizard ein Paket auf der Grundlage von MSI Quellen passiert das zumeist nicht &#8211; warum? In der MSI.inf Vorlage wird dem MSI Aufruf standardmäßig der Parameter ARPSYSTEMCOMPONENT=1 angehängt. Dieser MSI Parameter sorgt dafür, das die zu installierende Software anschließend mit dem Flag SYSTEMCOMPONENT versehen wird, welches die Anzeige in der Systemsteuerung bzw. unter Einstellungen unterdrückt wird: <a href="https://learn.microsoft.com/en-us/windows/win32/msi/arpsystemcomponent" target="_blank" rel="noopener">https://learn.microsoft.com/en-us/windows/win32/msi/arpsystemcomponent</a></p>
<h3>Was passiert da?</h3>
<p>Die Software bzw. die Anzeige in der Systemsteuerung bzw. unter Einstellungen wird zumeist über die Registry sichergestellt. Dazu legen die Installationsroutinen Einträge in den folgenden Registry Zweigen ab &#8230;<br />
64bit Programme bzw. Installationsroutinen:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</p>
<p>32bit Programme bzw. Installationsroutinen:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall</p>
<p>Erstellt man nun in einem Zweig einer entsprechenden Software einen Eintrag: <strong>SYSTEMCOMPONENT</strong> vom Typ: <strong>REG_DWORD</strong> und setzt dessen Wert: <strong>1</strong>, so wird diese Software anschließend nicht mehr angezeigt.</p>
<h3>Empirum Inventory</h3>
<p>Dieses verstecken der Software bezieht sich nur auf die Anzeige direkt am Computer! Das Empirum Inventory erfasst trotz alledem beide Einträge, was man auch eher als Vorteil sehen sollte.</p>
<h3>Unatteded.inf Anpassung</h3>
<p>In der Setup.inf können wir diesen Wert nach der Installation durch Empirum auch selbsttätig setzen und löschen. Dazu sind die folgenden Anpassungen in der unattended.inf notwendig. Anpassen des Reg:Product Aufrufes unter [Product]. Der wahrscheinlich vorhandene Parameter ,DONTDELETE ist zu entfernen.</p>
<pre>[Product]
...
#Reg:Product
...</pre>
<p>Die Reg:Product Sektion ist entsprechend der Software anzupassen&#8230;</p>
<pre>[Reg:Product]
;32bit - oder [Setup] Platform Wert entsprechend setzen!
;HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\&lt;SoftwareName&gt;,SystemComponent,0x00010001,1
;64bit
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&lt;SoftwareName&gt;,SystemComponent,0x00010001,1</pre>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/">Software in der Systemsteuerung verstecken</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum Setup.inf &#8211; SoftwareDepotDistributionFlags</title>
		<link>https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/</link>
					<comments>https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Wed, 05 Jul 2017 19:39:48 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Software Management]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=1877</guid>

					<description><![CDATA[<p>Ich hatte die Tage die Aufgabe ein Paket so zu modifizieren, dass es sich bei der Reinstallation bzw. beim einmaligen Erzwingen anders verhält als im Standard. Dabei fiel mir gleich die Variable SoftwareDepotDistributionFlags ein, die &#8230; <a href="https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/">Empirum Setup.inf &#8211; SoftwareDepotDistributionFlags</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ich hatte die Tage die Aufgabe ein Paket so zu modifizieren, dass es sich bei der Reinstallation bzw. beim einmaligen Erzwingen anders verhält als im Standard. Dabei fiel mir gleich die Variable SoftwareDepotDistributionFlags ein, die ich jedoch bis dato nicht genutzt hatte. <span id="more-1877"></span>In der Matrix42 Online Hilfe fand ich Hinweise zur Nutzung und Auswertung der entsprechenden <a href="https://helpfiles.matrix42-web.de/2024_DE/M42_WebDocu.htm#WM/UEM/SWM/SETUP/Referenz/Sections/Options/SETUP_Section_26_IF_Abfrage_Requirements.htm#BitAnd_BitOr_BitXOr" target="_blank" rel="noopener">SoftwareDepotDistributionFlags</a> Variable. So &#8222;gestärkt&#8220; machte ich mich an das Werk. Doch nach kurzer Zeit stellte sich etwas Ernüchterung ein, da es nicht sofort so funktioniert hat wie ich es mir vorgestellt hatte.</p>
<p>Dann habe ich angefangen mir den Wert der SoftwareDepotDistributionFlags Variable durch Logging zu erarbeiten &#8230;</p>
<p>Nach dem Logging, der anschließenden Bestätigung durch den Support (Danke an Hr. Zinn) und weitere erfahrene Empirum Nutzer habe ich die nachfolgende Tabelle erstellt, die Euch bei der Nutzung hoffentlich schneller zum Ziel bringt als mich ursprünglich. In der Nachbetrachtung hat mich am meisten zum Stolpern gebracht, dass in der Hilfe vom bitweisen Vergleich mit Dezimal Werten gesprochen wird und dann die aufgeführte Tabelle Hex Werte enthält!</p>
<p>Anbei die von mir zusammengestellte Tabelle mit den Verteilbefehlen aus der DDC, den dazugehörigen Dezimal Werten für den bitweisen Vergleich sowie dem Verteilbefehl aus der deutschen Oberfläche.</p>
<table>
<tbody>
<tr>
<td><strong>Verteilbefehl DDC</strong></td>
<td><strong>SoftwareDistributionFlags<br />
(Dezimalwert)</strong></td>
<td><strong>Verteilbefehl<br />
aus der deutschen Oberfläche</strong></td>
</tr>
<tr>
<td>INSTALL</td>
<td>1</td>
<td>Installieren</td>
</tr>
<tr>
<td>UPDATE</td>
<td>2</td>
<td>Erneuern</td>
</tr>
<tr>
<td>FORCE</td>
<td>4</td>
<td>Immer Erzwingen</td>
</tr>
<tr>
<td>UNINSTALL</td>
<td>8</td>
<td>Deinstallieren</td>
</tr>
<tr>
<td>REVOKE</td>
<td>16</td>
<td>Ablehnen möglich</td>
</tr>
<tr>
<td>FORCEONCEMACHINE</td>
<td>32</td>
<td>Maschinenteil erzwingen</td>
</tr>
<tr>
<td>FORCEONCECLIENT</td>
<td>64</td>
<td>Benutzerteil erzwingen</td>
</tr>
<tr>
<td>AFTERFORCE</td>
<td>128</td>
<td>Erzwingen (Nach Ablauf des Zeitplaners)</td>
</tr>
<tr>
<td>AFTERREVERSE</td>
<td>256</td>
<td>Umkehren (Nach Ablauf des Zeitplaners)</td>
</tr>
<tr>
<td>HIDE</td>
<td>512</td>
<td>Nicht anzeigen</td>
</tr>
<tr>
<td>REINSTALL</td>
<td>1024</td>
<td>Reinstallation mit vorheriger Deinstallation</td>
</tr>
<tr>
<td>OFFLINE</td>
<td>2048</td>
<td>Lokal cachen</td>
</tr>
<tr>
<td>IGNOREMTF</td>
<td>8192</td>
<td>Installationszeitraum ignorieren (ist bei einem Push immer gesetzt!)</td>
</tr>
</tbody>
</table>
<h3>Arbeiten mit den Werten in der Setup.inf</h3>
<p>Setup.inf Beispiele:</p>
<pre>;---Abfragen eines gesamten Verteilbefehls (Reinstallation per Pull/Push ohne vorherige Deinstallation)
 If BitXor (%SoftwareDepotDistributionFlags%, 99) == "0" | BitXor (%SoftwareDepotDistributionFlags%, 8291) == "0" Then "ReInstall" Else "EverythingElse" EndIf

;---Abfragen einer einzelnen Verteiloption
 If BitAnd (%SoftwareDepotDistributionFlags%, 32) != "0" then "ForceOnceMachine_is_set" else "ForceOnceMachine_is_not_set" endif</pre>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/">Empirum Setup.inf &#8211; SoftwareDepotDistributionFlags</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Setup.inf &#8211; Datei pro Benutzer kopieren</title>
		<link>https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/</link>
					<comments>https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Mon, 06 May 2013 17:19:44 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=909</guid>

					<description><![CDATA[<p>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 &#8230; <a href="https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/">Setup.inf &#8211; Datei pro Benutzer kopieren</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2013/04/Copy-v2_100x100.jpg?x39343"><img decoding="async" loading="lazy" class="alignleft size-full wp-image-938" title="CopyPerUser_Medium" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2013/04/Copy-v2_100x100.jpg?x39343" alt="Kopieren pro Benutzer" width="100" height="100" /></a>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?</p>
<p><span id="more-909"></span></p>
<p>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.</p>
<h2>Variante 1 &#8211; Diff bzw. Differenzanalyseverfahren</h2>
<p>Das bedeutet, man startet den <strong>PackageWizard</strong> und wählt den Punkt <strong>&#8222;Systemanalyse vor und nach der Installation &#8230;&#8220;</strong> und führt den PreScan durch. Ist der <strong>PreScan</strong> <strong>abgeschlossen</strong>, führt man seine <strong>Änderung der Einstellung</strong> durch bzw. <strong>kopiert eine Datei manuell</strong> in das Benutzerverzeichnis. Anschließend führt man den PostScan durch. Ist der <strong>PostScan</strong> 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.</p>
<p>Nun kann man die gerade erzeugte Setup.inf Datei öffnen. Geben Sie dazu <strong>%TEMP%</strong> im Windows Explorer ein. Hiermit landet man direkt im temporären Verzeichnis. Hier sollte ein Verzeichnis mit der <strong>Herstellerbezeichnung</strong> (aus der Eingabe im PackageWizard) vorhanden sein. Darunter befindet sich ein Verzeichnis mit dem <strong>Softwarenamen</strong>, dann der <strong>Version</strong> und dann &#8222;<strong>Install</strong>&#8222;. Im &#8222;Install&#8220; Verzeichnis befindet sich die gerade erstellte <strong>Setup.inf</strong>.<br />
Jetzt können Sie den Kopierbefehl, als auch die dazugehörige Datei in Ihr ggf. bereits vorhandenes Paket einfügen bzw. übernehmen.</p>
<h2>Variante 2 &#8211; Empirum Kopierflag CLIENT (pro Benutzer):</h2>
<p>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 &#8222;Source&#8220; (hier: Packages\&lt;Hersteller&gt;\&lt;Softwarename&gt;\&lt;Version&gt;\) abgelegt werden.</p>
<div class="grey-box"><strong>Wichtig:</strong> Der Sektion &#8222;Benutzereinstellungen&#8220; nicht das Flag &#8222;CLIENT&#8220; hinzufügen, sonst wird die Datei nicht im Maschinenteil lokal kopiert!</div>
<h2>Kopierflags</h2>
<p>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 <a title="Empirum Kopierbefehl und Kopierflags" href="https://www.wpm-blog.de/empirum-kopierbefehl-und-kopierflags/">hier</a> eingesehen werden, alle Kopierflags sind <a title="Kopierflags" href="https://helpfiles.matrix42-web.de/2024_DE/M42_WebDocu.htm#WM/UEM/SWM/SETUP/Referenz/Sections/Options/SETUP_Section_24_Options_Name.htm#CopyFlags" target="_blank" rel="noopener">hier</a> aufgeführt.</p>
<h2>ALWAYS</h2>
<p>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!</p>
<pre>[Product]
...
;---Beispiel für eine Installation, diese Zeile nicht übernehmen! 
#Set:Product 
...
#Benutzereinstellungen 
...

[Benutzereinstellungen]
1:APPDATA\Freecommander\Freecommander.ini, %APPDATA%, CLIENT ALWAYS, 0</pre>
<h2>Variante 3 &#8211; Empirum Kopierbefehl copy</h2>
<p>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 &#8222;BenutzereinstellungenMachine&#8220; kopiert die Einstellungsdatei (hier wurde eine config.xml Datei angenommen) auf den Computer zur lokalen Ablage. Die Sektion &#8222;BenutzereinstellungenClient&#8220; kopiert die Datei dann pro Benutzer in das angegebene Verzeichnis. Zusätzlich muss die benutzerspezifische Datei im Ordner des Programmes unter &#8222;Source&#8220; (hier: Packages\&lt;Hersteller&gt;\&lt;Softwarename&gt;\&lt;Version&gt;) abgelegt werden.</p>
<pre>[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%\&lt;Hersteller&gt;\Config.xml"

;---Bei einem alternativen lokalen Ablageort der Konfigurationsdatei 
;Copy "%WINDIR%\EmPack\%DeveloperName%\%ProductName%\%Version%\Config.xml" "%AppData%\&lt;Hersteller&gt;\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"</pre>
<h2><span style="font-weight: bold;">Setup.exe Aufruf</span></h2>
<p>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 &#8222;Prüfung&#8220; im Feld &#8222;Befehl&#8220; vorgenommen. Weitere Informationen dazu sind in <a title="Einbinden eines Software-Paketes in Empirum (Basis)" href="https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-basi/">diesem</a> Artikel vermerkt.</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/">Setup.inf &#8211; Datei pro Benutzer kopieren</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Registry ändern mit REG Dateien</title>
		<link>https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/</link>
					<comments>https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Wed, 06 Mar 2013 18:17:15 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Paketierung]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=852</guid>

					<description><![CDATA[<p>Bei Empirum bzw. Matrix42 Workplace Management Implementierungen oder Unterstützungen bekommen ich gerne Installationsroutinen und dann noch eine *.reg Datei vom Kunden angeboten. &#8222;Die muss nach der Installation noch dazugefügt werden &#8211; fertig, ganz einfach&#8220;. So &#8230; <a href="https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/">Registry ändern mit REG Dateien</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bei Empirum bzw. Matrix42 Workplace Management Implementierungen oder Unterstützungen bekommen ich gerne Installationsroutinen und dann noch eine *.reg Datei vom Kunden angeboten. &#8222;Die muss nach der Installation noch dazugefügt werden &#8211; fertig, ganz einfach&#8220;. <span id="more-852"></span>So oder so ähnlich sind dann meist die Aussagen. Folgendes sollte man sich dann selbst vergewissern bzw. abstimmen.<br />
Sind in der *.reg Datei ausschließlich nur HKLM (HKEY_LOCAL_MACHINE) Änderungen kann man sich fast noch dazu verleiten lassen, die Datei zum richtigen Zeitpunkt per CALLHIDDEN regedit /s &lt;%SRC%\Datei.reg&gt; zu importieren (in einer nicht REG: Sektion !). Der Nachteil ist dann jedoch, dass diese Einstellung(en) mit Hilfe dieser einen Datei bei der Deinstallation nicht rückgängig gemacht werden kann. Wenn bei einer Deinstallation diese Änderungen in der Registry verbleiben können und es &#8222;keinen&#8220; stört, kann man diesen Weg bestreitet. Man muss sich jedoch dieser Sache bewußt sein.</p>
<p>Das einfache Importieren von *.reg Dateien mit HKCU (HKEY_CURRENT_USER) Einträgen ist dagegen schon fast &#8222;fahrlässig&#8220;. Die Einstellungen werden ggf. nur für den gerade angemeldeten Benutzer getätigt, wenn es in der Setup.inf nicht richtig eingebunden ist. Dann bekommt der &#8222;EmpirumAgent&#8220; diese Einstellungen gesetzt, davon hat jedoch keiner etwas. Wenn nun die *.reg Datei HKCU Einträge beinhaltet, so muss diese im Benutzerteil (Sektion mit CLIENT &#8222;geflagged&#8220;) importiert werden. Dies kann jedoch bei vorhandenen Group-Policies (GPOs), die den Registry Editor verbietet, zu Problemen führen. Darüberhinaus sind die gleichen Nachteile vorhanden, wie zuvor beschrieben.</p>
<p>Wie bekommt man nun die *.reg Einträge zuverlässig gesetzt und somit in die REG: Sektion der Setup.inf?</p>
<p>Dazu gibt es zwei Methoden:<br />
1. Erstellen der Setup.inf per Differenzmethode<br />
2. Importieren der *.reg Datei in die Setup.inf per PackageEditor</p>
<p>Beides ist bereits in <a title="Empirum Paket – Registry ändern" href="https://www.wpm-blog.de/empirum-paket-registry-aendern/">diesem</a> Blogeintrag beschrieben.</p>
<div class="grey-box"><strong>Hinweis: </strong>Wenn man die Reg:Product Sektion zum Hinzufügen oder von Einstellungen nutzt, so darf die Reg:Product Sektion nicht mit Client aufgerufen werden.<br />
&#8211; Korrekt: Reg:Product<br />
&#8211; Nicht korrekt: Reg:Product, Client</div>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/">Registry ändern mit REG Dateien</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Setup.inf Abarbeitung</title>
		<link>https://www.wpm-blog.de/setup-inf-abarbeitung/</link>
					<comments>https://www.wpm-blog.de/setup-inf-abarbeitung/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Mon, 03 Dec 2012 22:43:57 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=518</guid>

					<description><![CDATA[<p>Wie an anderer Stelle bereits erläutert geht es mir darum, dass man keine &#8222;Angst&#8220; davor hat Software-Pakete zu erstellen und nach und nach durch mehr Erfahrung oder Anspruch die Software-Pakete zu verbessern. Im ersten Schritt &#8230; <a href="https://www.wpm-blog.de/setup-inf-abarbeitung/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/setup-inf-abarbeitung/">Setup.inf Abarbeitung</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Wie an anderer Stelle bereits erläutert geht es mir darum, dass man keine &#8222;Angst&#8220; 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.<span id="more-518"></span></p>
<p>Die Empirum Setup.inf Skriptsprache ermöglicht einem jedoch weitere Möglichkeiten.</p>
<ul>
<li>Vornehmen von benutzerspezifischen Einstellungen</li>
<li>Kopieren von Dateien pro Benutzer</li>
<li>Abfragen von Werten auf dem Zielcomputer und &#8222;reagieren&#8220; im Software-Paket, wie z.B. Prozessor-Architektur, Registrierungseinträge, Dateien, Dateiversionen, offene Prozesse, uvm.</li>
<li>Nutzen von Variablen aus der EMC und steuern der Installation</li>
<li>uvm.</li>
</ul>
<p>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.</p>
<h3>Gehen wir zuerst auf die Abfolge in der Setup.inf ein.</h3>
<p>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.</p>
<p>Das <strong>Semikolon (;)</strong> sagt aus, dass diese Zeile nicht verarbeitet wird und ein <strong>Kommentar</strong> darstellt.</p>
<p>Das <strong>Hash Zeichen (#)</strong> oder von manchem auch Lattenzaun genannt, ist gleichzusetzen mit einem <strong>GOSUB</strong> 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.</p>
<h3>Installationsabfolge</h3>
<p>Es wird die Sektion [Product] als &#8222;Hauptprogramm&#8220; ausgeführt und die dort angegebenen Sektionen der Reihe nach (von oben nach unten) angesprungen bzw. verarbeitet.</p>
<ol>
<li>Die erste Zeile ohne Kommentar ist der Aufruf der #Set:Product Zeile. Hiermit wird die [Set:Product] Sektion angesprungen.</li>
<li>Es wird &#8222;Es geht los&#8220; ausgegeben.</li>
<li>Die Datei Datei.exe wird in das Verzeichnis &#8222;%ProgramFiles%\Hersteller Software\&#8220; kopiert. Ist kein Ziel nach der Datei.exe angegeben, dann enspricht das Ziel dem Wert von ApplicationDir=.</li>
<li>Jetzt ist die Sektion [Set:Product] fertig und es wird die Zeile</li>
<li>#Reg:OnUninstallProduct, DELETE angesprungen. Diese wird jedoch nicht verarbeitet, da diese das Flag &#8222;DELETE&#8220; besitzt, was aussagt, dass die Sektion nur bei der Deinstallation ausgeführt wird.</li>
<li>Jetzt wird die Zeile #Reg:Product, DONTDELETE angesprungen. Diese wird ausgeführt, und das nur bei der Installation, da die Sektion das Flag &#8222;DONTDELETE&#8220; besitzt.</li>
<li>Es wird der Registry Eintrag Version = 2 unter HKLM\Software\Hersteller\Software vom Typ REG_SZ gesetzt.</li>
<li>Anschließend wird die Sektion [INI:Product] und danach</li>
<li>[Security:Product] angesprungen. In beiden Fällen gibt es nichts zu tun.</li>
<li>Als letztes, obwohl es nicht unter [Product] aufgeführt ist, wird die Sektion [Shell:Product] ausgeführt.</li>
</ol>
<p>Die Installation ist fertig, es gibt eine Verknüpfung auf dem Desktop, dass das Programm &#8222;Datei.exe&#8220; startet.</p>
<h3>Deinstallationsabfolge</h3>
<p>Die Deinstallation wird in umgekehrter Reihenfolge verarbeitet und startet somit von unten in der [Product] Sektion.</p>
<ol>
<li>Ä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.</li>
<li>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 &#8222;DELETE&#8220; gesetzt haben.</li>
<li>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.</li>
<li>Nun wird als letztes die Sektion [Set:Product] verarbeitet.</li>
<li>Hier wird nun der Kopiervorgang &#8222;1:&#8230;&#8220; rückgängig gemacht und die Datei gelöscht. Bestimmten Befehlen muss ein &#8222;-&#8220; vorangestellt werden, damit diese bei der Deinstallation ausgeführt werden.</li>
</ol>
<p>Die Deinstallation ist nun abgeschlossen.</p>
<p>Wenn man sich das selbst einmal anschauen möchte, so kann man den Empirum Package Editor starten, in die &#8222;Erweiterte Ansicht&#8220; wechseln und die Setup.inf im Einzelschrittmodus durchlaufen.</p>
<h3>Auszug aus einer Setup.inf</h3>
<pre>...
[Product]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv &lt;Variable&gt;
#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</pre>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/setup-inf-abarbeitung/">Setup.inf Abarbeitung</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wpm-blog.de/setup-inf-abarbeitung/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Minified using Disk
Database Caching using Disk

Served from: www.wpm-blog.de @ 2026-11-14 21:41:36 by W3 Total Cache
-->