<?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 setup.inf+vorlage - Workplace Management Blog</title>
	<atom:link href="https://www.wpm-blog.de/search/setup.inf%2Bvorlage/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:07:34 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.7</generator>
	<item>
		<title>Reboot Werte &#8211; Empirum Setup.inf</title>
		<link>https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/</link>
					<comments>https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Sun, 21 Apr 2024 18:14:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Setup.inf]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2960</guid>

					<description><![CDATA[<p>Gerne bekomme ich die Frage gestellt: Warum fordert mein Empirum Paket einen Neustart an, obwohl ich Reboot=0 in der Setup.inf gesetzt habe? Dieser Frage möchte ich im heutigen Beitrag heute nachgehen. Reboot Möglichkeiten Fangen wir &#8230; <a href="https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/">Reboot Werte &#8211; Empirum Setup.inf</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Gerne bekomme ich die Frage gestellt: Warum fordert mein Empirum Paket einen Neustart an, obwohl ich Reboot=0 in der Setup.inf gesetzt habe? Dieser Frage möchte ich im heutigen Beitrag heute nachgehen.<span id="more-2960"></span></p>
<h3>Reboot Möglichkeiten</h3>
<p>Fangen wir vorne an. Es gibt in der Empirum Setup.inf mindestens zwei Möglichkeiten einen Neustart aus dem Paket heraus anzufordern. Wie das Ganze dann vom Empirum UEM Agenten dann verarbeitet wird, liegt dann zusätzlich an den Agenten Einstellungen, dem Agent-Template.<br />
In der [Application] Sektion gibt es den Paramter Reboot=[Wert von 1 bis 5] für die Anforderung eines Neustarts. Zusätzlich kann man im Verlauf der Setup.inf mit dem Befehl SetReboot [Wert] eine Reboot-Anforderung setzen.</p>
<h3>Wo ist der Unterschied?</h3>
<p>In der [Application] Sektion setzt man einen Wert für die Installation und Deinstallation, ganz gleich, wie der Verlauf des Paketes ist. Mit dem Befehl SetReboot wiederum kann man fallweise eine Neustart-Anforderung platzieren. Dies kann man sich z.B. bei Paketen basierend auf der MSI Vorlage ansehen. Falls sich ein MSI Paket mit einem ReturnCode 3010 beendet (erfolgreich, jedoch Neustart notwendig), dann wird in der Sektion [RebootRequired] ein SetReboot 1 ausgeführt.</p>
<h3>Welchen Wert nutzen?</h3>
<p>Wie oben bereits geschrieben, gibt es Werte von 0 bis 5 mit unterschiedlicher Ausprägung und Funktion. Dabei bedeutet der Wert 0 nicht, dass dieses Paket keinen Neustart benötigt, wie zumeist angenommen. Der Wert 0 steht vielmehr für den &#8222;Automatikmodus&#8220;. Kann zum Beispiel eine Datei im Paketablauf (Ablauf der Setup.inf) nicht ersetzt oder gelöscht werden, fordert beim Wert 0 das Software-Paket trotzdem einen Reboot einen, um beim Neustart, wenn die Datei nicht in Benutzung ist, zu ersetzen oder zu löschen. Möchte man einen Neustart des Paketes unterbinden, so muss man Reboot=2 setzen. Dagegen ist der Wert 1, wie man es sich schon denken konnte, eine direkte Anforderung eines Neustarts. Neben den genannten Werten, wir dann noch häufig der Wert 5 genutzt. Dieser bestimmt, dass nach der Beendigung dieses Paketes ein Neustart angefordert wird (wie bei 1), jedoch auch keine weiteren Pakete zur Ausführung kommen. Die weiteren Pakete werden dann nach dem ausgeführten Reboot durchgeführt.</p>
<p>Wer einen Neustart in gewisser Weise erzwingen mag, kann sich auch meinen Beitrag zum <a href="https://www.wpm-blog.de/systemshutdown-vs-setreboot/">SystemShutdown</a> anlesen.</p>
<h3>Komplette Übersicht</h3>
<p>Da nun die Eigenschaften für 3 und 4 unter den Tisch gefallen sind, möchte ich diese zur Vollständigkeit hier auch noch erläutern:</p>
<ul>
<li>0 &#8211; startet das System nach der Installation neu, wenn ein Neustart erforderlich ist, weil z.B. Dateien überschrieben/gelöscht werden müssen, die in Benutzung sind.</li>
<li>1 &#8211; startet das System in jedem Fall neu</li>
<li>2 &#8211; startet das System nicht neu</li>
<li>3 &#8211; abmelden des Benutzers</li>
<li>4 &#8211; Herunterfahren (kein Neustart)</li>
<li>5 &#8211; nach der Installation kein weiteres Paket installiert und zwingend ein Neustart durchgeführt. Dies entspricht dem Verhalten der Option &#8222;Installation weiterer Pakete nicht fortsetzen&#8220; in den Paketeigenschaften</li>
</ul>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/">Reboot Werte &#8211; Empirum Setup.inf</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/reboot-werte-empirum-setup-inf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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; Reparatur Unattended Setup</title>
		<link>https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/</link>
					<comments>https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Sun, 02 Jul 2023 17:46:31 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Setup.inf]]></category>
		<category><![CDATA[Unattended]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2877</guid>

					<description><![CDATA[<p>Vor einiger Zeit hatte ich eine Serie begonnen, die unattended.inf Paketvorlage zu verbessern. Dazu hatte ich bereits zwei Blog Beiträge geschrieben. Leider hatte mich die mangelnde Zeit etwas vom Pfad abgebracht, diese Serie weiter zu &#8230; <a href="https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/">Empirum Setup.inf &#8211; Reparatur Unattended Setup</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vor einiger Zeit hatte ich eine Serie begonnen, die unattended.inf Paketvorlage zu verbessern. Dazu hatte ich bereits zwei Blog Beiträge geschrieben. Leider hatte mich die mangelnde Zeit etwas vom Pfad abgebracht, diese Serie weiter zu vervollständigen. Diesem will ich nun nachkommen. <span id="more-2877"></span>Wer diese Beiträge noch nicht gelesen hatte, dem stelle ich diese Beiträge hier nochmals vor:</p>
<ul>
<li>https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/</li>
<li>https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/</li>
</ul>
<h3>Reparatur Logik</h3>
<p>Das Resultat wird, je nach Betrachtung, nicht das Optimum darstellen. Meines Erachtens ist dies jedoch schon ein gutes Stück weiter als das Original. Wir betreiben also etwas Tuning :). In diesem Beitrag soll es um die Reparatur gehen.<br />
Das Reparatur-Handling hilft uns &#8230;</p>
<ul>
<li>für die Reparatur einer Software durch Deinstallation und Neuinstallation</li>
<li>falls die Software zuvor anderweitig ggf. manuell installiert wurde, damit diese zuvor deinstalliert wird</li>
<li>falls die Software durch das Matrix42 Patch-Management vielleicht schon auf eine andere Version angehoben wurde</li>
</ul>
<h3>Grober Ablauf</h3>
<p>Die Reparatur setzt grob auf folgenden Ablauf:<br />
1) Erkennung, ob diese Software ggf. auch in einer anderen Version bereits installiert ist.<br />
2) Falls ja, entfernen dieser Installation.<br />
3) Anschließend wird mit dem &#8222;normalen Installationsablauf&#8220; fortgefahren.</p>
<h3>Anpassungen</h3>
<p>Der nachfolgende Code-Schnipsel kann in die unattended.inf übernommen werden, oder ihr wartet noch die nächsten zwei Artikel ab und übernehmt dann eine gesamte unattended.inf. Was wird noch folgen? Erkennung und Abfangen von geöffneten Programmen, sowie &#8222;verstecken&#8220; der originären Installation in der Systemsteuerung unter &#8222;Programme&#8220;.</p>
<p>Falls ihr diesen Schnipsel nutzt &#8230;</p>
<p>In der [Product] Sektion muss vor die Installation die<br />
#CheckExistingInstallation, DONTDELETE<br />
eingebaut werden.</p>
<p>Die Erkennung bzw. das Deinstallationsprogramm hinter der Variablen &#8222;VM_UnInstCMD&#8220; muss angepasst werden.</p>
<h3>Code-Schnipsel</h3>
<pre>[CheckExistingInstallation]
;---setzen der Variable mit dem Deinstallationsprogramm
Set VM_UnInstCMD=%ProgramFilesDirx86%\My Program\unins000.exe
;---falls das Deinstallationsprogramm vorhanden ist, dann springe in die Sektion zu Deinstallation
If DoesFileExist ("%VM_UnInstCMD%") == "1" Then "DoUninstallBeforeInstall" EndIf

[DoUninstallBeforeInstall]
;---führe die Deinstallation durch und warte zur Sicherheit 3 Sekunden
-Call "%VM_UnInstCMD%" /S
Sleep 3000
;---Wurde die Deinstallation erfolgreich durchgeführt und ist die Deinstallationsroutine entfernt worden? Falls nicht, melde einen Fehler.
If DoesFileExist ("%VM_UnInstCMD%") == "1" Then "ErrorOnUninstallBeforeInstall" EndIf

[ErrorOnUninstallBeforeInstall]
ErrorLogMsg %ErrorText% %ErrorLevel% %CallingText% %VM_UnInstCMD%
Abort</pre>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/">Empirum Setup.inf &#8211; Reparatur Unattended Setup</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-reparatur-unattended-setup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum Paket &#8211; Deinstallation ohne Quellen</title>
		<link>https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/</link>
					<comments>https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Wed, 21 Oct 2020 19:38:33 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2656</guid>

					<description><![CDATA[<p>Die Deinstallation eines Empirum Paketes sollte komplett lokal, ohne weiteren Zugriff auf die Installationsquellen, möglich sein. Die Zuweisung und Installation einer höheren Version mit dem Setup.inf Standardwert AskUninstallOld=1 setzt das schon fast voraus. Von Haus &#8230; <a href="https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/">Empirum Paket &#8211; Deinstallation ohne Quellen</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Die Deinstallation eines Empirum Paketes sollte komplett lokal, ohne weiteren Zugriff auf die Installationsquellen, möglich sein. Die Zuweisung und Installation einer höheren Version mit dem Setup.inf Standardwert AskUninstallOld=1 setzt das schon fast voraus. Von Haus aus bringen die meisten Installer bereits ihre Deinstallationsroutine, in Form einer uninstall.exe im jeweiligen Programmverzeichnis, mit. Warum jetzt dieser Beitrag?<span id="more-2656"></span></p>
<h3>Unattended Uninstallation Dialog</h3>
<p>Wenn Du beim Nutzen des Package Wizards zum Erstellen einer &#8222;Unattended&#8220; sprich &#8222;Silent&#8220; Installation einer EXE an den Dialog zur Deinstallation kommst, kannst Du das &#8222;Basis Verzeichnis&#8220; nicht anpassen. In das Eingabefeld für das Deinstallationsprogramm kannst Du den Aufruf &#8222;C:\Program Files (x86)\My Program\unins000.exe&#8220; eintragen und den Assistenten erfolgreich beenden.</p>
<h3>Deinstallation schlägt fehl</h3>
<p>Die Tests zur Deinstallation des Programms im Rahmen der Paketierung schlagen fehl. Warum?</p>
<h3>Fehlersuche / Behebung</h3>
<p>Um herauszufinden, warum der Fehler auftritt, müssen wir uns die Abfolge der Befehle zur Deinstallation der Software in unserem erstellten Paket ansehen. Ein Blick in die Sektion [Set:Deinstallation] der Setup.inf, die für die Deinstallation zuständig ist, bringt den Fehler schnell zum Vorschein. Hier wird versucht, den folgenden Befehl auszuführen:</p>
<pre>-Call "<strong>%Src%\C:</strong>\Program Files (x86)\My Program\unins000.exe" /S</pre>
<p>Der Teil &#8222;%SRC%\C:\&#8230;&#8220; sieht nicht nur seltsam aus, sondern kann auch nicht funktionieren. Angepasst, sollte der Aufruf wie folgt ausschauen:</p>
<pre>-Call "C:\Program Files (x86)\My Program\unins000.exe" /S</pre>
<p>oder besser noch</p>
<pre>-Call "%ProgramFilesDirx86%\My Program\unins000.exe" /S</pre>
<p>Mit diesen Anpassungen sollte die Deinstallation nun erfolgreich durchgeführt werden.</p>
<h3>Anpassen der Vorlage</h3>
<p>Damit die Anpassung nicht immer wieder im erstellten Paket vorgenommen werden muss, passt man die Vorlage &#8222;Unattended.inf&#8220; (Empirum\Configurator\Packages\Matrix42\Packaging Center\&lt;Version&gt;\Templates) an. Dazu entfernt man aus der nachfolgenden Zeile:</p>
<pre>-Call "%Src%\{UnattDeInst}" {UnattDeInstPar}</pre>
<p>das %SRC%\ und macht daraus:</p>
<pre>-Call "{UnattDeInst}" {UnattDeInstPar}</pre>
<p>&nbsp;</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/">Empirum Paket &#8211; Deinstallation ohne Quellen</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-paket-deinstallation-ohne-quellen/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>ErrorLevel Abfrage bei Unattended Installationen</title>
		<link>https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/</link>
					<comments>https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Mon, 19 Oct 2020 19:33:23 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2652</guid>

					<description><![CDATA[<p>Matrix42 liefert eine Setup.inf Vorlage mit, die für &#8222;Silent&#8220; Installationen von EXE Dateien genutzt werden kann. Diese Vorlage ist jedoch meines Erachtens sehr &#8222;rudimentär&#8220; und an einer Stelle sogar gefährlich bis falsch. In den kommenden &#8230; <a href="https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/">ErrorLevel Abfrage bei Unattended Installationen</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Matrix42 liefert eine Setup.inf Vorlage mit, die für &#8222;Silent&#8220; Installationen von EXE Dateien genutzt werden kann. Diese Vorlage ist jedoch meines Erachtens sehr &#8222;rudimentär&#8220; 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 &#8222;Luft&#8220; nach oben, da jeder noch ein paar andere Vorstellungen, Vorlieben, etc. hat. Doch halten wir es Mal wie mit einer Fahrt in den Urlaub &#8211; &#8222;der Weg ist das Ziel&#8220;.<span id="more-2652"></span></p>
<h3>Welche Datei meine ich denn nun genau?</h3>
<p>Es geht um die Unattended.inf im Empirum\Configurator\Packages\Matrix42\Packaging Center\&lt;Version&gt;\Templates Ordner. Diese wird bei der Auswahl &#8222;Unattended&#8220; im Verlaufe des &#8222;Package Wizards&#8220; herangezogen.</p>
<h3>Erfolgsüberprüfung</h3>
<p>Nach dem &#8222;silent&#8220; Aufruf einer EXE Datei, wird eine, wie ich sie nenne, &#8222;Erfolgsüberprüfung&#8220; durchgeführt. Denn jede Setup.inf, die nicht mit einem &#8222;Abort&#8220; 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 &#8222;Success&#8220; zurückmelden und die Software ist nicht installiert.</p>
<h3>ErrorLevel Abfrage in der Vorlage</h3>
<p>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:</p>
<pre>If "%ErrorLevel%" &lt;&gt; "0" Then "SET:InstallationError" EndIf</pre>
<p>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.</p>
<h3>Anpassung</h3>
<p>Diese Anpassung setzt automatisch eine Neustart-Anforderung für dieses Paket und wertet den Rückgabewert von 3010 nicht als Fehler.</p>
<pre>If "%ErrorLevel%" == "3010" Then "RebootRequired" EndIf
If "%ErrorLevel%" &lt;&gt; "0" &amp; "%ErrorLevel%" &lt;&gt; "3010" Then "SET:InstallationError" EndIf

[RebootRequired]
SetReboot 1
-SetReboot 1</pre>
<p>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.</p>
<h3>ErrorLevel oder gibt es auch andere Methoden</h3>
<p>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 ;-).</p>
<p>&nbsp;</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/">ErrorLevel Abfrage bei Unattended Installationen</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-errorlevel-abfrage-bei-unattended-installationen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum WinPE Paket &#8211; DriverIntegration Ersatz</title>
		<link>https://www.wpm-blog.de/empirum-winpe-paket-driverintegration-ersatz/</link>
					<comments>https://www.wpm-blog.de/empirum-winpe-paket-driverintegration-ersatz/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Tue, 01 Jan 2019 13:51:56 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[OS Installer]]></category>
		<category><![CDATA[Treiber]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[WinPE]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=2132</guid>

					<description><![CDATA[<p>Das Empirum WinPE Paket, das ich hier vorstelle ist dazu gedacht das Matrix42 Paket &#8222;DriverIntegration&#8220; zu ersetzen. Mein Paket heißt PrepareDRVbyModel_Packages, da mein erstes WinPE Paket die Treiber aus der EmpInst Verzeichnis Struktur holt. Was &#8230; <a href="https://www.wpm-blog.de/empirum-winpe-paket-driverintegration-ersatz/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-winpe-paket-driverintegration-ersatz/">Empirum WinPE Paket &#8211; DriverIntegration Ersatz</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Das Empirum WinPE Paket, das ich hier vorstelle ist dazu gedacht das Matrix42 Paket &#8222;DriverIntegration&#8220; zu ersetzen. Mein Paket heißt PrepareDRVbyModel_Packages, da mein <a href="https://www.wpm-blog.de/erstes-empirum-preos-paket-und-anpassung/" target="_blank" rel="noopener">erstes WinPE Paket</a> die Treiber aus der EmpInst Verzeichnis Struktur holt. Was macht das originale Matrix42 DriverIntegration Paket? <span id="more-2132"></span>Es sucht in einer drivers.ini nach dem Hersteller und Model und kopiert abhängig davon die Treiber nach C:\EmpirumAgent\Drivers. In diesem Verzeichnis sucht die automatisierte Windows Installation (WindowsInstallation Paket) nach nicht bekannten Treibern. Dies kann man in der unattend.xml im WindowsInstallation Paket Verzeichnis sehen. Jetzt kommt wahrscheinlich der längste Beitrag, den ich bis dato geschrieben habe &#8230;</p>
<h3>PrepareDRVbyModel_Packages</h3>
<p>Mein Ersatz bietet (meines Erachtens:)) einige Vorteile und weicht in den nachfolgenden Punkten von dem Matrix42 Grundgedanken ab:</p>
<ul>
<li>es ist &#8222;gesprächiger&#8220; und man kann eher nachvollziehen, was es macht (siehe Screenshots am Ende des Beitrages)</li>
<li>der Ablageort der Treiber kann angepasst werden vom Standard: Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers</li>
<li>der Ablageort der Drivers.ini kann angepasst werden vom Standard: Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers</li>
<li>es kann festgelegt werden, ob die WinPE Installation weitergehen soll, auch wenn kein Eintrag in der drivers.ini, Treiber, etc. gefunden wurde.</li>
</ul>
<h3>Übersicht dieses Beitrages</h3>
<ul>
<li>Import der OS-Packages</li>
<li>Kurze Einführung: Hardware Model zu Treiber/Software Zuordnung per drivers.ini</li>
<li>Möglichkeiten mit PrepareDRVbyModel_Packages</li>
<li>Einführung PostOSInstallation Paket</li>
<li>Download</li>
<li>Fehlersuche</li>
<li>Screenshots</li>
</ul>
<h3>Import der OS-Packages</h3>
<p>Zuerst ist es notwendig, die zusätzlichen OS-Package über das Software-Depot zu importieren. Danach muss die Reihenfolge arrangiert werden, damit die richtige Abarbeitung während der OS-Installation gewährleistet ist:</p>
<ul>
<li>&lt;WinPE-D-2PXE&gt; (optional aber empfohlen)</li>
<li>DiskPartitioning</li>
<li>&lt;PrepareDRVbyModel_Packages&gt;</li>
<li>WindowsInstallation</li>
<li>PxeOffAndReboot</li>
<li>DomainJoin</li>
<li>&lt;PostOSInstallation&gt; (optional aber empfohlen)</li>
<li>EmpirumAgentSetup</li>
</ul>
<h3>Hardware Model zu Treiber/Software Zuordnung</h3>
<p>Die Zuordnung Model zu Treiber geschieht wie bei dem Paket der Matrix42 über die drivers.ini Datei. Diese ist im Standard unter Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers abgelegt.</p>
<p>Aufbau der Drivers.ini<br />
[&lt;WMI Manufacturer&gt;]<br />
&lt;WMI Model&gt;=&lt;Ordner, *.ZIP, *.cab unterhalb von Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers&gt;</p>
<p>z.B.<br />
[Dell Inc.]<br />
OptiPlex 7010=DellOptiplex7010<br />
;alternativ OptiPlex 7010=DellOptiplex7010.zip<br />
;alternativ OptiPlex 7010=DellOptiplex7010.cab</p>
<h3>Möglichkeiten mit PrepareDRVbyModel_Packages</h3>
<p>Nachfolgend sind die Möglichkeiten erläutert, die sich aufgrund der Anpassung und Erweiterung ergeben. Diese Möglichkeiten können über die Variablen in der Management Console gesteuert werden. Die aufgeführten Variablen sind alle unter der Variablen Sammlung &#8222;PrepareDRVbyModel_Packages&#8220; zu finden.</p>
<p><strong>DriversAreMandatory:</strong><br />
Das Matrix42 Paket drehte sich bis vor kurzem solange in der Schleife bis ein Treiber in der drivers.ini gefunden wurde.<br />
Dies ist für eine produktive Umgebung, den Dienstleister etc. gut so.<br />
Wenn man jedoch einen Computer ohne spezifische Treiber installieren will (zum Test), dann muss man im Matrix42 Falle einen drivers.ini Eintrag erzeugen mit einem Verweis auf ein leeres Verzeichnis.<br />
Dieses Verhalten wurde mit dem DriverIntegration 2.6 Pakete verändert &#8211; man kann es jedoch nicht steuern.</p>
<p>Variablenwerte:<br />
0, WinPE fährt mit der WindowsInstallation fort, auch wenn kein Treiber in der drivers.ini gefunden wurde.<br />
1, Matrix42 Standardverhalten &#8211; das System läuft in der Schleife und führt die WindowsInstallation nicht fort.<br />
Somit kann man für eine produktive Struktur (Konfigurationsgruppe) sicherstellen, dass die Installation nur mit bekannten Hardware-Typen durchgeführt wird.</p>
<p><strong>DriversRootPath:</strong><br />
Die Idee, den DriversRootPath anpassbar zu machen, hatte mehrere Gründe:<br />
Selektive Synchronisation der Treiber: Hiermit kann man die Treiber direkt unter Packages\Drivers ablegen und mit einem angepassten &#8222;ESubDepot_Packages&#8220; SyncJob diese für bestimmte Standorte auslassen und mit einem selbsterstellten ESubDepot_PackagesDrivers diese separat synchronisieren lassen.<br />
Treiber-Update Softwarepakete: Durch eine Erweiterung der Ablage um eine Setup.inf, DPInst.exe und xml kann man eine Aktualisierung der Treiber auf bestehenden Systemen durchführen und mass dazu die Treiber nicht mehrmals ablegen. Dies werde ich in einem späteren Beitrag nochmals aufgreifen.</p>
<p>Variablenwerte:<br />
&#8222;leer&#8220; bedeutet Matrix42 Standardwert:Matrix42\OsPackages\Drivers, das entspricht Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers<br />
Kommentar:<br />
Hinweis: Man kann in der drivers.ini auch Teilpfade angeben.<br />
Für eine Kopie eines Ordners zum Beispiel: OptiPlex 7010=Dell\Optiplex7010\1.0\PNP<br />
Für die Nutzung einer ZIP Datei zum Beispiel: OptiPlex 7010=Dell\Optiplex7010\1.0\PNP\Optiplex7010.zip<br />
Wichtig: Der Pfad wird ab dem Packages Ordner angegeben!</p>
<p><strong>DriversINIPath:</strong><br />
Die Idee hierbei war, dass man eine zweite drivers.ini Datei, unabhängig von einer produktiv genutzten, einsetzen kann.<br />
Darin kann man Einträge für eine bekannte Hardware auf einen anderen Pfad, ZIP, etc. setzen und somit vorab bzw. parallel testen.<br />
Somit kann für eine bestimmte Konfigurationsgruppe ggf. der Wert: Matrix42\OsPackages\Drivers\Test sein.<br />
In diesem Ordner muss dann die alternative drivers.ini abgelegt sein.</p>
<p>Variablenwerte:<br />
&#8222;leer&#8220; bedeutet Matrix42 Standardwert:Matrix42\OsPackages\Drivers, das entspricht Empirum\Configurator\Packages\Matrix42\OsPackages\Drivers<br />
Wichtig: Der Pfad wird ab dem Packages Ordner angegeben!</p>
<p>Perfekt funktioniert PrepareDRVbyModel_Packages mit dem PostOsInstallation Paket von mir. Das genannte Paket prüft ob es eine C:\EmpirumAgent\Drivers\HWspecificSW\Setup.inf gibt und führt diese aus.</p>
<h3>Möglichkeiten des PostOsInstallation</h3>
<p>Das PostOSInstallation Paket ist einfach und ruft eine abgelegt PostOSInstall.bat auf.<br />
<strong>Hinweis:</strong> Diese Datei solltet ihr vor der ersten Benutzung einsehen und anpassen!<br />
Die Batch Datei hat heute mindestens drei Funktionen:</p>
<ul>
<li>Es importiert eine von dem PrepareDRVbyModel_Packages Paket erstellte Registry Datei, die ähnliche Werte in die Registry schreibt (HKLM\Matrix42\Installer), wie die EPE Installation.</li>
<li>Es passt die durch Matrix42 vorgegebenen Firma, Benutzer, Support etc. Informationen in der Registry an, die man bei der EPE Installation in der Betriebssystemvorlage angegeben hat.</li>
<li>Es führt eine Setup.inf aus dem C:\EmpirumAgent\Drivers\HWspecificSW Ordner aus, falls diese vorhanden ist. Somit kann man wieder im &#8222;Hardware-Profil&#8220; Treiber per PNP und per EXE/MSI installieren.</li>
</ul>
<p>Somit ist die PostOSInstall.bat eine Art Ersatz für die EmpirumAgent.bat/UEMAgent.bat.</p>
<div class="grey-box"> [Update am 27.08.2019] Die Version 1.5 unterstützt nun auch die Drivers.json Datei, die per WinPEDriverAssistant erstellt wird. Es werden auch Intel NUCs erkannt und ASUS Motherboards. Beide zuletzt genannte Typen werden vom DriverIntegration Paket nicht unterstützt. Bei der Nutzung des PostOSInstallation Paketes, die darin enthaltene PostOsInstall.bat anpassen! </div>
<h3>Download</h3>
<p>Empirum WinPE PreOS Package zum optimierten Treiberhandling.</p>
<p><a  data-e-Disable-Page-Transition="true" class="download-link" title="" href="https://www.wpm-blog.de/download/2260/?tmstv=1767782245" rel="nofollow" id="download-link-2260" data-redirect="false" >
	PrepareDRVbyModel_Packages 1.5	(423 Downloads	)
</a>
<br />
<span style="display: inline !important; float: none; background-color: transparent; color: #000000; cursor: text; font-family: 'Open Sans',sans-serif; font-size: 17px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 28.9px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">MD5 Hash der Downloaddatei: 175D4CD2FD119A371EDDA21211D6C0C761A7A50F</span></p>
<p><a  data-e-Disable-Page-Transition="true" class="download-link" title="Version 1.1" href="https://www.wpm-blog.de/download/2141/?tmstv=1767782245" rel="nofollow" id="download-link-2141" data-redirect="false" >
	PrepareDRVbyModel_Packages 1.1	(450 Downloads	)
</a>
<br />
MD5 Hash der Downloaddatei: 0D3415555E6197DC510B02E946D96C5169FD8529</p>
<h3>Los geht&#8217;s</h3>
<p><strong>Schritt 1:</strong><br />
Zuweisen der Pakete für eine Konfigurationsgruppe:</p>
<ul>
<li>&lt;WinPE-D-2PXE&gt; (optional aber empfohlen)</li>
<li>DiskPartitioning</li>
<li>PrepareDRVbyModel_Packages</li>
<li>WindowsInstallation</li>
<li>PxeOffAndReboot</li>
<li>DomainJoin</li>
<li>PostOSInstallation (optional aber empfohlen)</li>
<li>EmpirumAgentSetup</li>
<li>Betriebssystem (per Variable oder aus dem rechten Baum)</li>
<li>WinPE (Bootkonfiguration)</li>
<li>Agent-Template</li>
</ul>
<p><strong>Schritt 2:</strong><br />
Setzen der Variablen für die oben genannten Pakete (siehe hierzu ggf. auch das <a href="https://helpfiles.matrix42-web.de/2024_DE/M42_WebDocu.htm#WM/Manuals/OSI_WinPE_HowTo.htm%3FTocPath%3DUnified%2520Endpoint%2520Management%7CHandb%25C3%25BCcher%7C-%2520OS%2520Installer%7C_____5" target="_blank" rel="noopener">WinPE Dokument der Matrix42</a>).<br />
Zuordnung des Betriebssystems</p>
<p><strong>Schritt 3:</strong><br />
Zuweisen eines Computers</p>
<p><strong>Schritt 4:</strong><br />
Aktivieren von PXE und Software (OS.INI ist nicht notwendig!)<br />
Achtung:nicht während einer aktiven WinPE Phase den Computer nochmals aktivieren (dies kann ab WinPE 1.4.11 wieder getan werden).</p>
<p>Rückmeldungen sind willkommen!</p>
<h3>Fehlersuche:</h3>
<ul>
<li>Erster Anlauf: In der Management Console auf dem entsprechenden Computer das PXE-Log ansehen</li>
<li>Informationen zum Ablauf der OS-Packages befinden sich in Empirum\EmpInst\Wizard\OS\Auto\&lt;MAC8&gt; oder &lt;UUID&gt;\debug_Matrix42.Platform.Service.Host.log.<br />
Suchen nach [wpm-blog und darunter sollten weitere Informationen zu finden sein &#8230;</li>
</ul>
<h3>Beispielhafte Screenshots:</h3>
<p>DriversAreMandatory = 0 und keine passende Zuordnung/Treiber in drivers.ini gefunden<br />
<a href="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_0_DriverNotFound.png?x39343"><img decoding="async" loading="lazy" class="size-full wp-image-2129 alignnone" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_0_DriverNotFound.png?x39343" alt="" width="560" height="137" srcset="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_0_DriverNotFound.png 560w, https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_0_DriverNotFound-300x73.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></a></p>
<p>DriversAreMandatory = 1 und keine passende Zuordnung/Treiber in drivers.ini gefunden<br />
<a href="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverNotFound.png?x39343"><img decoding="async" loading="lazy" class="size-full wp-image-2131 alignnone" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverNotFound.png?x39343" alt="" width="532" height="154" srcset="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverNotFound.png 532w, https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverNotFound-300x87.png 300w" sizes="(max-width: 532px) 100vw, 532px" /></a></p>
<p>DriversAreMandatory = 1, passende Zuordnung/Treiber in drivers.ini gefunden, abweichende DriversIniPath Variable, Treiber werden kopiert<a href="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverFound_DifferentVariables.png?x39343"><img decoding="async" loading="lazy" class="alignleft size-full wp-image-2130" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverFound_DifferentVariables.png?x39343" alt="" width="727" height="138" srcset="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverFound_DifferentVariables.png 727w, https://www.wpm-blog.de/wpmblog/wp-content/uploads/2019/01/Mandatory_1_DriverFound_DifferentVariables-300x57.png 300w" sizes="(max-width: 727px) 100vw, 727px" /></a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-winpe-paket-driverintegration-ersatz/">Empirum WinPE Paket &#8211; DriverIntegration Ersatz</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-winpe-paket-driverintegration-ersatz/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum &#8211; NTFS Berechtigungen setzen</title>
		<link>https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/</link>
					<comments>https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/#respond</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Sun, 19 Nov 2017 16:30:56 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=1893</guid>

					<description><![CDATA[<p>Die Empirum Setup.inf bietet die Möglichkeiten, neben der eigentlichen Installation eines Programmes, die Berechtigungen auf eine Datei oder Verzeichnis anzupassen. Somit ist alles was zur Installation und Nutzung eines Programmes gehört in der Setup.inf vereint. &#8230; <a href="https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/">Empirum &#8211; NTFS Berechtigungen setzen</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Die Empirum Setup.inf bietet die Möglichkeiten, neben der eigentlichen Installation eines Programmes, die Berechtigungen auf eine Datei oder Verzeichnis anzupassen. Somit ist alles was zur Installation und Nutzung eines Programmes gehört in der Setup.inf vereint.<span id="more-1893"></span></p>
<p>Die Anpassung der NTFS Berechtigung ist dann notwendig, wenn das paketierte Programm:</p>
<ul>
<li>in Laufzeit Änderungen im gleichen Verzeichnis vornimmt (INI+LOG Dateien, o.ä)</li>
<li>eine AutoUpdate Funktionen für sich selbst anbietet</li>
</ul>
<h2>Wo und wie wird die Berechtigungsvergabe vorgenommen?</h2>
<p>Die &#8222;Wo&#8220; Frage ist recht einfach beantwortet. Dafür gibt es die [Security:Product] Sektion. Die Security:Product Sektion muss nach der Installation durchgeführt werden, damit der Ordner oder die Dateien bereits vorhanden sind. In den Standard Inf Vorlagen ist dies auch der Fall.</p>
<h3>Kommen wir zur &#8222;Wie&#8220; Frage &#8230;</h3>
<p>Um die Berechtigung zu setzen, gibt für Windows 2000 und neuer den Befehl FileDaclEx.Add. Der Befehl ist in der Setup.inf wie folgt aufgebaut:<br />
FileDaclEx.Add (&lt;Datei&gt;, &lt;Name&gt;, &lt;Operation&gt;, &lt;Rechte&gt;, &lt;Vererbung&gt;)</p>
<p>Will man nun der Gruppe der lokalen Benutzer, der im Standard alle Domänen Benutzer angehören Vollzugriff gewähren, dann sieht der Befehl wie folgt aus:</p>
<pre>FileDaclEx.Add ("%App%", "%$LocalUsers%", GRANT, ALL, SUB_CONTAINERS_AND_OBJECTS_INHERIT)</pre>
<p>Will man jedoch nicht so freizügig mit den Berechtigungen umgehen und der Gruppe lediglich Ändern Berechtigungen geben, dann wird der Befehl etwas komplexer, da es für Ändern (Change) keine einzelne Berechtigung gibt. Die Berechtigung &#8222;Ändern&#8220; entspricht den nachfolgenden Teil-Berechtigungen: TRAVERSE LIST_DIRECTORY READ_ATTRIBUTES READ_EA ADD_FILE ADD_SUBDIRECTORY WRITE_ATTRIBUTES WRITE_EA DELETE READ_DAC EXECUTE</p>
<p>Das sieht in der Windows 10 Oberfläche nicht viel anders aus, wenn man mal in den Sicherheitseinstellungen unter Erweitert nachschaut.</p>
<p><a href="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2017/11/Windows-Explorer-NTFS-Change.png?x39343"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-1896" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2017/11/Windows-Explorer-NTFS-Change.png?x39343" alt="Windows Explorer NTFS Change" width="596" height="173" srcset="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2017/11/Windows-Explorer-NTFS-Change.png 596w, https://www.wpm-blog.de/wpmblog/wp-content/uploads/2017/11/Windows-Explorer-NTFS-Change-300x87.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></a></p>
<p>Wie sieht nun ein solcher Befehl in der Praxis aus? Hier ein paar Beispiele:</p>
<pre>FileDaclEx.Add ("%App%", "%$LocalUsers%", GRANT, TRAVERSE LIST_DIRECTORY READ_ATTRIBUTES READ_EA ADD_FILE ADD_SUBDIRECTORY WRITE_ATTRIBUTES WRITE_EA DELETE READ_DAC, SUB_CONTAINERS_AND_OBJECTS_INHERIT)

FileDaclEx.Add ("%ProgramFiles%\%Developername%", "%$LocalUsers%", GRANT, TRAVERSE LIST_DIRECTORY READ_ATTRIBUTES READ_EA ADD_FILE ADD_SUBDIRECTORY WRITE_ATTRIBUTES WRITE_EA DELETE READ_DAC, SUB_CONTAINERS_AND_OBJECTS_INHERIT)

FileDaclEx.Add ("%App%\Application.ini", "%$LocalUsers%", GRANT, TRAVERSE LIST_DIRECTORY READ_ATTRIBUTES READ_EA ADD_FILE ADD_SUBDIRECTORY WRITE_ATTRIBUTES WRITE_EA DELETE READ_DAC, SUB_CONTAINERS_AND_OBJECTS_INHERIT)</pre>
<p>Wenn ihr diese Anforderung häufiger habt, so könnt ihr einen der obigen Befehle in eure Paketierungsvorlagen (Template.inf, MSI.inf, Unattend.inf) einbauen und bei Bedarf den Kommentar (;) wegnehmen und den Befehl den Anforderungen nach anpassen.</p>
<h2>Ist das alles?</h2>
<p>Weiterführende Informationen, da die Security:Sektion noch mehr kann als NTFS Berechtigungen zu setzen:</p>
<ul>
<li>Welche Befehle darüber hinaus zur Verfügung stehen und welche andere Berechtigungen ihr setzen könnt, findet ihr in der Online Hilfe unter &#8222;<a href="https://helpfiles.matrix42-web.de/2017_DE/M42_WebDocu.htm#WM/PWM/SWM/SETUP/Referenz/Sections/Options/SETUP_Section_43_Security_Name.htm%3FTocPath%3DUnified%2520Endpoint%2520Management%7CEmpirum%7C-%2520Client%2520Software%2520-%7CSETUP%7CTechnische%2520Referenz%7CDie%2520Abschnitte%2520der%2520Setup.inf%7C%255BOptions%255D%7C_____17" target="_blank">Security:Product</a>&#8222;.</li>
<li>Welche Benutzer bzw. Gruppen per Variable und somit sprachunabhängig zur Verfügung stehen findet ihr am Ende der Tabelle &#8222;<a href="https://helpfiles.matrix42-web.de/2017_DE/M42_WebDocu.htm#WM/PWM/SWM/SETUP/Referenz/Sections/SETUP_Section_12_Environment.htm#EnvironmentVariables%3FTocPath%3DUnified%2520Endpoint%2520Management%7CEmpirum%7C-%2520Client%2520Software%2520-%7CSETUP%7CTechnische%2520Referenz%7CTabellen%7C_____7" target="_blank">Vordefinierte Umgebungsvariablen</a>&#8220; der Online-Hilfe.</li>
</ul>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/">Empirum &#8211; NTFS Berechtigungen setzen</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-ntfs-berechtigungen-setzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum Treiberintegration – einfacher gemacht!</title>
		<link>https://www.wpm-blog.de/empirum-treiberintegration-einfacher-gemacht/</link>
					<comments>https://www.wpm-blog.de/empirum-treiberintegration-einfacher-gemacht/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Mon, 16 Mar 2015 21:17:58 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[OS Installer]]></category>
		<category><![CDATA[Treiber]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=1100</guid>

					<description><![CDATA[<p>Heute möchte ich meine aktuelle und erprobte Idee zur einfacheren Treiberintegration und Hardwareprofilhandling erläutern. Stand heute muss man die Treiber für Netzwerk und Grafikkarte über den Hardwareassistenten in den OS-Installer integrieren und für alle weiteren &#8230; <a href="https://www.wpm-blog.de/empirum-treiberintegration-einfacher-gemacht/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-treiberintegration-einfacher-gemacht/">Empirum Treiberintegration – einfacher gemacht!</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Heute möchte ich meine aktuelle und erprobte Idee zur einfacheren Treiberintegration und Hardwareprofilhandling erläutern. Stand heute muss man die Treiber für Netzwerk und Grafikkarte über den Hardwareassistenten in den OS-Installer integrieren und für alle weiteren Geräte die Treiber über den Hardwareassistenten unter Sonstiges (Sonstige Hardware). <span id="more-1100"></span>Dann muss man nochmals die gerade eingebundenen Treiber einem neu erstellten Hardwareprofil zuordnen. Dieser Vorgang kann sehr aufwändig sein und ist nochmals aufwändiger, wenn man ein und die gleiche Hardware in mehrere unabhängige Empirum Systeme integrieren muss (wie z.B. Test, QA und Produktion). Zusätzlich gibt es immer wieder die Frage, wie man mit Software verfährt die nur für diese Hardware bzw. diesen Hardwaretypen gilt.</p>
<p>Das im Anhang zusammengestellte Verfahren aus Skripten erweitert den OS-Installer bzw. die Installation von Computern.</p>
<p>Meines Erachtens bietet dies dann:</p>
<ul>
<li>Einfachere Integration von einer Vielzahl von Treibern.</li>
<li>Einfachere Aktualisierung der Treiber in der Test und Integrations-Phase</li>
<li>Schnellere Einbindung neuer Hardwaretypen</li>
<li>Einfachere Übernahme in einer andere Empirum Installation (Test, QA, Produktion)</li>
<li>Einfache Installation von hardwarespezifischen Treibern und Software per EXE und MSI.</li>
</ul>
<h2>Vorbereitungen</h2>
<h3>Verzeichnisse und Skripte</h3>
<p>Was ist vorzubereiten, was wurde angepasst und was ist in der Download Datei?</p>
<ul>
<li>End_winvista.eis Script</li>
<li>Vorlage (Template) für ein Hardwareprofil mit div.Logik</li>
<li>Batch-Datei zur Installation von hardwarespezifischer Software je Hardwareprofil nach der OS-Installation</li>
</ul>
<h3>Angepasstes End_winvista.eis Script</h3>
<p>Die angepasste „end_winvista.eis“ prüft, ob im Hardwareprofil-Ordner ein PnP Ordner vorhanden ist. Wenn dieser existiert, wird der Pfad zum PnP Ordner zu den Plug &amp; Play-Pfaden für die OS-Installation hinzugefügt. Das bedeutet, dass dieser Ordner während der Windows Installation nach passenden Treibern durchsucht wird. Es ist zu prüfen, ob bereits Änderungen an der End_winvista.eis (Empirum\Empinst\Wizard\Scripts2\Custom) durchgeführt wurden. Wenn dies der Fall ist sind die Änderungen zusammenzuführen (die beigefügten Zeilen werden dann angehängt).</p>
<p>Hinweis: Zwei Aufrufe in der End_winvista.eis sind Empirum Versions abhängig. Nur die Zeilen der eingesetzten Empirum Version aktivieren!</p>
<h3>Batch Datei für den Aufruf nach der OS-Installation</h3>
<ul>
<li>Installation des .NET Framework 3.5 SP1 oder 4.0 und ggf. weiterer Hotfixe (optional)</li>
<li>Aufruf einer Setup.inf, falls vorhanden, zur Installation weiterer Treiber und Software (siehe Hardwareprofil)</li>
<li>Installation des Internet Explorers (optional)</li>
<li>Schreiben von Hardware und OS-Installations Informationen in die Registry für die spätere Verwendung (optional &#8211; nicht enthalten)</li>
<li>Aufruf der von Matrix42 gelieferten EmpirumAgent.bat</li>
</ul>
<p>Kopieren der Empirum\Configurator\User\PostOSInstallation_W&lt;OS&gt;&lt;Architektur&gt;.bat in den Empirum\Configurator\User Ordner. Einige Treiber und zusätzliche Software setzen das .NET Framework voraus, weshalb es hier direkt installiert wird. Hier wird entweder das .NET Framework über ein vorhandenes Paket installiert, oder separat. Wenn ein Paket vorliegt, wird der Aufruf zur Installation des .NET Framework 4.0 adaptiert, ansonsten verfährt man wie bei .NET Framework 3.5 aufgezeigt. Die Quellen dazu müssen in diesem Fall noch integriert werden, wie in der „Missing Files.txt“ Datei angegeben.</p>
<p>Die Installation des Internet Explorers und des .NET Framework Paketes sind nicht zwingend erforderlich. Gerade das Paket für den Internet Explorer muss selbst beigesteuert werden.</p>
<h3>EmpirumAgent.bat</h3>
<p>Beim Aufruf zur Installation des Empirum-Agenten in der EmpirumAgent.bat wird an die Zeile ein /X8 zur Unterdrückung des Neustarts angefügt. Dies sorgt für einen zuverlässigeren Ablauf der Skripte.</p>
<pre>Call \\%EmpirumServer%\Configurator$\User\Setup.exe \\%EmpirumServer%\Configurator$\Packages\matrix42\EmpirumAgent\%EmpirumVersion%\Install\Setup.inf /S1 /X8</pre>
<h3>Betriebssystemvorlage</h3>
<p>In der bzw. den genutzten Betriebssystemvorlagen wird der „Abschließende Befehl“ angepasst. Hier wird nun, je nach Betriebssystem die oben erstelle PostOSInstallation_W&lt;OS&gt;&lt;Architektur&gt;.bat aufgerufen. Wenn Sie keine unterschiedlichen Installationen hinsichtlich des Betriebssystems an dieser Stelle durchführen, können Sie auch nur eine PostOSInstallation_W7.bat o.ä. erstellen.</p>
<h2>Vorgehensweise und Ablauf</h2>
<p>Was ist nun bei einer Einbindung eines neuen Hardwaretyps zu tun?</p>
<ul>
<li>Einbinden der Netzwerkkarte, wie gehabt (optional)</li>
<li>Einbinden der Grafikkarte, wie gehabt (optional)</li>
<li>Erstellen eines Hardwareprofils mit der Angabe eines Ordner (letztes Feld) (Wichtig! – Namen merken!)</li>
<li>Kopieren der Vorlage in den erstellten Hardwareprofilordner</li>
<li>Ablegen der weiteren PnP Treiber in den Hardwareprofilordner\PnP</li>
<li>Einbinden von Treiber bzw. Softwareinstallationen per EXE/MSI (Ablage in HWspecificSW und anpassen der HWspecificSW\Setup.inf)</li>
</ul>
<h3>Erstellen eines Hardwareprofils</h3>
<p>Der erste Schritt ist die Erstellung eines Hardwareprofils in der Management Console, unter Konfiguration, OS-Installer, Hardware, Hardwareprofil. <a title="Anlegen eines neuen Computertypen und Zuweisen von sonstigen Treibern " href="https://helpfiles.matrix42-web.de/2024_DE/M42_WebDocu.htm#WM/UEM/OSI/Hardware/Hardwareprofil/OSI_HW_H_Neue_Computertypen.htm%3FTocPath%3DMatrix42%20Workspace%20Management%7CPhysical%20(Empirum)%7CMatrix42%20Management%20Console%7CKonfiguration%7COS%20Installer%7CHardware%7CHardwareprofil%7C_____1" target="_blank" rel="noopener">Matrix42 Hilfe</a> bis Punkt 14 durchführen.</p>
<h3>Wo befindet sich das Hardwareprofilverzeichnis?</h3>
<p>Anschließend wird der Ordner des erstellten Hardwareprofils mit den weiteren Treibern und ggf. Aufrufen versehen. Das Verzeichnis für das Hardwareprofil befindet sich je nach Architektur des Betriebssystems in den hier angegebenen Pfaden.</p>
<ul>
<li>X86 = Empirum\Empinst\DRV\Win7\HWMisc</li>
<li>X64 = Empirum\Empinst\DRV\Win7\x64\HWMisc</li>
</ul>
<h3>Hardwareprofil</h3>
<p>Es liegt eine Vorlage für ein Hardwareprofilordner in Empirum\Empinst\DRV\Win7\&lt;Architektur&gt;\HWMisc\_Template vor, damit alle Skripte zusammen funktionieren. Bitte jeweils für x86/x64 die Datei „Missing Files.txt“ in „HWspecificSW\VCRe100“ beachten, da hier ggf. noch die notwendigen Dateien abgelegt werden müssen. Nachfolgend ist die Wirkungsweise und Nutzung der Verzeichnisse und Skripte im Hardwareprofil erläutert. Es kann auch ohne die VCRedist100 Dateien getestet werden.</p>
<h3>PNP Verzeichnis</h3>
<p>Wie zuvor beschrieben, dient das PNP Verzeichnis zur Ablage mehrerer Verzeichnisse mit Treibern die während der OS-Installation durchsucht werden.  Das heißt, hier können weitere Verzeichnisse erstellt werden, die dann wiederum die notwendigen Plug &amp; Play (kurz PnP) Treiber beinhalten. Dieses Verzeichnis kann auch mit einer Zusammenstellung von <a title="DoubleDriver Homepage" href="http://www.boozet.org/dd.htm" target="_blank" rel="noopener">DoubleDriver</a> befüllt werden, dass zuvor mit Hilfe eines Backups von einem vorhandenen System erstellt wurde. Eine andere Methode ist es die DriverPacks, DriverKits, SCCM Driver Packages, o.ä. die Hersteller wie Dell, Fujitsu, HP, uvm. bereitstellen, entpackt in den PnP Ordner abzulegen.</p>
<h3>Install\Setup.inf</h3>
<p>Die Setup.inf im Install Ordner sorgt für das Kopieren des HWspecifcSW Ordners nach %WinDir%\HWspecifiSW, damit er nach der OS-Installation zur Verfügung steht. In meinem Falle wird die Setup.inf des HWspecifSW Ordners durch die PostOSInstallation_W&lt;OS&gt;&lt;Architektur&gt;.bat aus Empirum\Configurator\User aufgerufen. Zusätzlich kann hier bereits eine VCRedist Installation stattfinden, da dies von immer mehr Grafikkartentreibern vorausgesetzt wird.</p>
<p>Aufgrund dessen, dass im Hardwareprofilordner ein Install Ordner mit einer Setup.inf liegt, bedarf es der Anpassung der End_Winvista.eis (siehe oben). Matrix42 erstellt für jeden Treiberordner in dem sich eine Install\Setup.inf befindet einen Installationsbefehl (Früher: EmpirumJob=Yes) und nimmt diesen Ordner nicht in die PnP Pfade mit auf.</p>
<h3>HWspecificSW Verzeichnis</h3>
<p>In diesem Verzeichnis werden Treiber und Software für diesen Hardwaretyp abgelegt, die mittels einer EXE oder MSI installiert werden. Die Durchführung der Installation(en) findet nach der OS-Installation und vor der EmpirumAgent Installation im Kontext des lokalen Administrators statt. Beispielhafte Aufrufe dazu befinden sich in der HWspecificSW\Setup.inf Datei. Es bietet sich an, für die Treiber ggf. nochmals Unterverzeichnisse zu erstellen. Wird kein Treiber oder sonstige hardwarespezifische Installation nach der OS-Installation mehr benötigt, kann dieser Ordner auch weggelassen werden. Wenn die PostOSInstallation_W&lt;OS&gt;&lt;Architektur&gt;.bat keine Setup.inf im %WinDir%\HWspecificSW findet, wird auch keine Installation durchgeführt.</p>
<h2>Weitere Optimierung</h2>
<h3>PostDelaySeconds</h3>
<p>Falls die PostDelaySeconds Variable noch nicht als Betriebssystemvariable in der Empirum Management Console vorhanden ist, so sollte diese noch erstellt und auf den Standardwert 180 gesetzt werden.</p>
<p>Empirum Management Console starten, im Menü unter  &#8222;Extras, Variablendefinition&#8220;</p>
<ul>
<li>Variable: PostDelaySeconds</li>
<li>Variablentyp: Betriebssystem</li>
<li>Kontrollelement: Zahl</li>
<li>Null-Wert erlauben: Ja</li>
<li>Standardwert: 180</li>
</ul>
<p>Falls der Wert trotz Standardwert nicht in die Variablendateien der Computer eingetragen wird, so hilft ein Setzen der Variable auf die oberste Konfigurationsgruppe und Aktivierung der &#8222;Zwangsvererbung&#8220;.</p>
<h2>Fertig</h2>
<p>Das sollten alle Schritte sein, damit die &#8222;Rädchen&#8220; ineinander greifen. Diese Methode kann auch für Windows 8, 8.1 übernommen werden.</p>
<p>Viel Spaß und einfache Umsetzung wünsche ich Euch!</p>
<p>Benötigte Dateien für den oben genannten Ablauf: <a  data-e-Disable-Page-Transition="true" class="download-link" title="Version 1.0" href="https://www.wpm-blog.de/download/1537/?tmstv=1767782245" rel="nofollow" id="download-link-1537" data-redirect="false" >
	TreiberFramework	(3000 Downloads	)
</a>
</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-treiberintegration-einfacher-gemacht/">Empirum Treiberintegration – einfacher gemacht!</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-treiberintegration-einfacher-gemacht/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle</title>
		<link>https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/</link>
					<comments>https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Sun, 26 Oct 2014 14:54:09 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<category><![CDATA[Softwareverteilung]]></category>
		<category><![CDATA[Workplace Management]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=1379</guid>

					<description><![CDATA[<p>Schlägt eine Installation eines Empirum Paketes fehl, so wird dies in der Management Console mit dem Status &#8222;Failed&#8220; im SWDepotLog und im Status versehen. Im erweiterten ErrorLog kann man ggf. noch den Fehlercode oder einen &#8230; <a href="https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/">Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle</a> erschien zuerst auf <a rel="nofollow" href="https://www.wpm-blog.de">Workplace Management Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Schlägt eine Installation eines Empirum Paketes fehl, so wird dies in der Management Console mit dem Status &#8222;Failed&#8220; 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?<span id="more-1379"></span></p>
<h3>Hintergrund</h3>
<p>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.</p>
<h3>Idee</h3>
<p>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.</p>
<div class="grey-box"><strong>Hinweis:</strong> Es werden nur *.log Dateien vom EmpirumAgenten automatisch übertragen.</div>
<h3>Umsetzung</h3>
<p>Die nachfolgenden Beispiele sind ggf. auf die eigene Umgebung und das Agenten-Verzeichnis anzupassen.</p>
<h3><strong>Notwendige Setup.inf Anpassung</strong></h3>
<p>Dazu wurde folgende Änderung bzw. zusätzlichen Zeilen in der Setup.inf erstellt:</p>
<pre>[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%"</pre>
<h3><strong>Anpassung in der Management Console</strong></h3>
<p>Der Zugriff auf das zentrale Log Verzeichnis eines Computers kann über einen „Rechtsklick“ auf den Computer geschehen<strong>. </strong>Die Konfiguration wird über die Management Console, Extras, Eigenschaften unter „Externe Programme“ vorgenommen.</p>
<ul>
<li><span style="line-height: 1.8;">Zentrales Log Verzeichnis</span></li>
<li><span style="line-height: 1.8;">explorer \\%EmpirumServer%\configurator$\Log\InstallErrors.CU\%Computername%</span></li>
</ul>
<p>Das gezeigte Beispiel nutzt die EmpirumServer Variable. Hier muss ggf. der zentrale EmpirumServer eingetragen werden und das Support-Personal zum Lesen berechtigt werden.</p>
<h3>Bereinigung</h3>
<p>Die zyklische Bereinigung des zentralen Log Verzeichnisses muss derzeit von Hand durchgeführt werden.</p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/">Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle</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/einfacherer-zugriff-auf-detaillierte-fehlerprotokolle/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Empirum &#8211; Software Paketierung Selbststudium</title>
		<link>https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/</link>
					<comments>https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/#comments</comments>
		
		<dc:creator><![CDATA[Jochen]]></dc:creator>
		<pubDate>Mon, 08 Sep 2014 21:29:53 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Empirum]]></category>
		<category><![CDATA[Paketierung]]></category>
		<category><![CDATA[Software Management]]></category>
		<category><![CDATA[Softwarepaket]]></category>
		<category><![CDATA[Softwareverteilung]]></category>
		<category><![CDATA[Workplace Management]]></category>
		<guid isPermaLink="false">https://www.wpm-blog.de/?p=1317</guid>

					<description><![CDATA[<p>Im Laufe der Zeit habe ich nun bereits einige Artikel veröffentlicht, die sich immer wieder um die Software Paketierung bzw. Software Verteilung mit Empirum (Matrix42 Physical Workspace Management, UEM &#8211; Unified Endpoint Management, Client-Management) drehen. &#8230; <a href="https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/">Weiterlesen</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/">Empirum &#8211; Software Paketierung Selbststudium</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/EmpSwManagement.ico?x39343"><img decoding="async" class="alignleft size-full wp-image-997" title="EmpSwManagement" src="https://www.wpm-blog.de/wpmblog/wp-content/uploads/2013/04/EmpSwManagement.ico?x39343" alt="Empirum Software Management" /></a>Im Laufe der Zeit habe ich nun bereits einige Artikel veröffentlicht, die sich immer wieder um die Software Paketierung bzw. Software Verteilung mit Empirum (Matrix42 Physical Workspace Management, UEM &#8211; Unified Endpoint Management, Client-Management) drehen. Damit man die einzelnen Artikel einfacher für ein Selbststudium nutzen kann, habe hier einmal alle Artikel mit dem Bezug zur Software Paketierung und Verteilung zusammengefasst, somit eine Art Anleitung zur &#8222;Empirum Paketierung&#8220;. Da die Seitenlinks recht selbst sprechend sind, habe ich mir jetzt auch nicht mehr die Mühe gemacht, diese nochmals &#8222;hübsch&#8220; aufzubereiten. Für die regelmäßigen Leser gibt es hier nichts Neues &#8211; für alle anderen eine &#8222;interne&#8220; Link-Sammlung.</p>
<p>Los geht&#8217;s!</p>
<p>Diese Linksammlung ist auf dem Stand: 07.04.2020</p>
<p><span id="more-1317"></span></p>
<h3>Generelles</h3>
<ul>
<li><a href="https://www.wpm-blog.de/software-paketierung-repaketierung/">Software-Paketierung / Repaketierung</a></li>
<li><a href="https://www.wpm-blog.de/aufwand-zur-erstellung-eines-softwarepaketes/">Aufwand zur Erstellung eines Softwarepaketes</a></li>
<li><a href="https://www.wpm-blog.de/verzeichnisse-und-freigaben-des-empirum-servers/">Verzeichnisse und Freigaben des Empirum Servers</a></li>
<li><a href="https://www.wpm-blog.de/softwareverteilung-mit-empirum-von-matrix42/">Softwareverteilung mit Empirum von Matrix42</a></li>
<li><a href="https://www.wpm-blog.de/wissenswertes-zum-installationskontext/">Wissenswertes zum Installationskontext</a></li>
</ul>
<h3>Erstes Paket erstellen und verteilen</h3>
<ul>
<li><a href="https://www.wpm-blog.de/softwarepakete-erstellen-und-verfeinern/">Softwarepakete erstellen und verfeinern</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-erstellen-msi/">Empirum Paket erstellen &#8211; MSI</a></li>
<li><a href="https://www.wpm-blog.de/aufgepasst-im-package-wizard-msi/">Aufgepasst im Package Wizard – MSI</a></li>
<li><a href="https://www.wpm-blog.de/platform-eigenschaft-empirum-setup-inf/">Platform Eigenschaft &#8211; Empirum Setup.inf</a></li>
<li><a href="https://www.wpm-blog.de/empirum-setup-inf-platform-wert-tabelle/">Empirum Setup.inf &#8211; Platform Wert Tabelle</a></li>
<li><a href="https://www.wpm-blog.de/setup-inf-abarbeitung/">Setup.inf Abarbeitung</a></li>
<li><a href="https://www.wpm-blog.de/erste-setup-inf-anpassungen/">Erste Setup.inf Anpassungen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-in-das-softwaredepot-einfuegen/">Aufgepasst beim Einfügen eines Paketes in das SoftwareDepot</a></li>
<li><a href="https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-basi/">Einbinden eines Software-Paketes in Empirum (Basis)</a></li>
</ul>
<h3>Paketierung &#8211; Erweitert</h3>
<ul>
<li><a href="https://www.wpm-blog.de/umgebungsvariablen/">Umgebungsvariablen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-setup-inf-variablen/">Empirum Setup.inf – Variablen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-versionen/">Empirum Paket Versionen &#8211; Früher an später denken?</a></li>
<li><a href="https://www.wpm-blog.de/empirum-kopierbefehl-und-kopierflags/">Empirum Kopierbefehl und Kopierflags</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-registry-aendern/">Empirum Paket &#8211; Registry ändern</a></li>
<li><a href="https://www.wpm-blog.de/registry-aendern-mit-reg-dateien/">Registry ändern mit REG Dateien</a></li>
<li><a href="https://www.wpm-blog.de/setup-inf-datei-pro-benutzer-kopieren/">Setup.inf &#8211; Datei pro Benutzer kopieren</a></li>
<li><a href="https://www.wpm-blog.de/empirum-setup-inf-skript-vorzeitig-verlassen/">Empirum Setup.inf Skript vorzeitig verlassen</a></li>
<li><a href="https://www.wpm-blog.de/reboot-werte-empirum-setup-inf/">Neustart oder nicht</a></li>
<li><a href="https://www.wpm-blog.de/systemshutdown-vs-setreboot/">SystemShutdown vs. SetReboot</a></li>
<li><a href="https://www.wpm-blog.de/empirum-uebernehmen-von-vorhandenen-installationen/">Empirum &#8211; Übernehmen von vorhandenen Installationen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-und-for-next-schleife/">Empirum und For &#8211; Next Schleife</a></li>
<li><a href="https://www.wpm-blog.de/empirum-ntfs-berechtigungen-setzen/">Empirum &#8211; NTFS Berechtigungen setzen</a></li>
<li><a href="https://www.wpm-blog.de/verknuepfungen-links-erstellen/">Verknüpfungen / Links erstellen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/">Empirum Setup.inf &#8211; SoftwareDepotDistributionFlags</a></li>
<li><a href="https://www.wpm-blog.de/dialog-zum-schliessen-von-programmen/">Schließen von geöffneten Programmen</a></li>
<li><a href="https://www.wpm-blog.de/software-in-der-systemsteuerung-verstecken">Verstecken von Software in der Systemsteuerung</a></li>
<li><a href="https://www.wpm-blog.de/setup-inf-sektionen-mehrfach-aufrufen/">Empirum Sektionen mehrfach aufrufen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/">Unattended Paket &#8211; ErrorLevel Abfrage verbessern</a></li>
<li><a href="https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/">Unattended Paket &#8211; Reparatur Funktion einbauen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/">Unattended Paket &#8211; Deinstallation ohne Quellen</a></li>
</ul>
<h3>Software-Management</h3>
<ul>
<li><a href="https://www.wpm-blog.de/empirum-paket-in-das-softwaredepot-einfuegen/">Empirum – Paket in das SoftwareDepot einfügen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-in-das-softwaredepot-einfuegen/">Aufgepasst beim Einfügen eines Paketes in das SoftwareDepot</a></li>
<li><a href="https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-basi/">Einbinden eines Software-Paketes in Empirum (Basis)</a></li>
<li><a href="https://www.wpm-blog.de/einbinden-eines-software-paketes-in-empirum-erweitert/">Einbinden eines Software-Paketes in Empirum (Erweitert)</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paketeigenschaft-erlaube-deinstallation/">Empirum Paketeigenschaft &#8211; Erlaube Deinstallation</a></li>
<li><a href="https://www.wpm-blog.de/erweiterte-paketvoraussetzungen/">Erweiterte Paketvoraussetzungen</a></li>
</ul>
<h3>Paketierung &#8211; Besonderes zur Verteilung</h3>
<ul>
<li><a href="https://www.wpm-blog.de/empirum-paket-versionen/">Empirum Paket Versionen</a></li>
<li><a href="https://www.wpm-blog.de/softwarepakete-updateverhalten-verteilen-von-neuen-versionen/">Softwarepakete-Updateverhalten Verteilen von neuen Versionen</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-registry-softwaredepot-version/">Empirum Paket &#8211; Registry, SoftwareDepot, Version</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-revision/">Empirum Paket &#8211; Revision</a></li>
<li><a href="https://www.wpm-blog.de/empirum-paket-revisionserhoehung-bei-grossen-installationen/">Empirum Paket &#8211; Revisionserhöhung bei großen Installationen</a></li>
<li><a href="https://www.wpm-blog.de/definition-des-zeitplaners/">Definition des Zeitplaners</a></li>
</ul>
<h3>Anpassen der Paketierungsvorlagen</h3>
<ul>
<li><a href="https://www.wpm-blog.de/anpassung-paketierungsvorlage-einleitung/">Anpassung Paketierungsvorlage &#8211; Einleitung</a></li>
<li><a href="https://www.wpm-blog.de/anpassung-paketierungsvorlage-kopfdaten/">Anpassung Paketierungsvorlage &#8211; Kopfdaten</a></li>
<li><a href="https://www.wpm-blog.de/anpassung-paketierungsvorlage-msi-paket/">Anpassung Paketierungsvorlage &#8211; MSI Paket</a></li>
<li><a href="https://www.wpm-blog.de/anpassung-paketierungsvorlage-empirum-paket-informationen-in-der-registry/">Anpassung Paketierungsvorlage &#8211; Empirum Paket Informationen in der Registry</a></li>
<li><a href="https://www.wpm-blog.de/anpassung-paketierungsvorlage-lokaler-setup-inf-ablageort/">Anpassung Paketierungsvorlage &#8211; lokaler Setup.inf Ablageort</a></li>
</ul>
<p>Der Beitrag <a rel="nofollow" href="https://www.wpm-blog.de/empirum-software-paketierung-selbststudium/">Empirum &#8211; Software Paketierung Selbststudium</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-software-paketierung-selbststudium/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Page Caching using Disk: Enhanced 
Minified using Disk
Database Caching 51/91 queries in 0.032 seconds using Disk

Served from: www.wpm-blog.de @ 2026-01-07 11:37:25 by W3 Total Cache
-->