You searched for if then - Workplace Management Blog https://www.wpm-blog.de/ ... ideas and solutions making workplace management easier Sun, 24 Nov 2024 17:00:52 +0000 de hourly 1 https://wordpress.org/?v=6.1.7 Empirum Setup.inf – Reparatur Unattended Setup https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/ https://www.wpm-blog.de/empirum-setup-inf-reparatur-unattended-setup/#respond Sun, 02 Jul 2023 17:46:31 +0000 https://www.wpm-blog.de/?p=2877 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 … Weiterlesen

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

]]>
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. Wer diese Beiträge noch nicht gelesen hatte, dem stelle ich diese Beiträge hier nochmals vor:

  • https://www.wpm-blog.de/empirum-paket-deinstallation-ohne-quellen/
  • https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/

Reparatur Logik

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.
Das Reparatur-Handling hilft uns …

  • für die Reparatur einer Software durch Deinstallation und Neuinstallation
  • falls die Software zuvor anderweitig ggf. manuell installiert wurde, damit diese zuvor deinstalliert wird
  • falls die Software durch das Matrix42 Patch-Management vielleicht schon auf eine andere Version angehoben wurde

Grober Ablauf

Die Reparatur setzt grob auf folgenden Ablauf:
1) Erkennung, ob diese Software ggf. auch in einer anderen Version bereits installiert ist.
2) Falls ja, entfernen dieser Installation.
3) Anschließend wird mit dem „normalen Installationsablauf“ fortgefahren.

Anpassungen

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 „verstecken“ der originären Installation in der Systemsteuerung unter „Programme“.

Falls ihr diesen Schnipsel nutzt …

In der [Product] Sektion muss vor die Installation die
#CheckExistingInstallation, DONTDELETE
eingebaut werden.

Die Erkennung bzw. das Deinstallationsprogramm hinter der Variablen „VM_UnInstCMD“ muss angepasst werden.

Code-Schnipsel

[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

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

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

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

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

Variable USER_UPDATE

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

Erstellen der Variable

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

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

Zuweisung des Wertes

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

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

]]>
https://www.wpm-blog.de/empirum-subdepot-paket-und-lokaler-agenten-benutzer/feed/ 0
ErrorLevel Abfrage bei Unattended Installationen https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/ https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/#respond Mon, 19 Oct 2020 19:33:23 +0000 https://www.wpm-blog.de/?p=2652 Matrix42 liefert eine Setup.inf Vorlage mit, die für „Silent“ Installationen von EXE Dateien genutzt werden kann. Diese Vorlage ist jedoch meines Erachtens sehr „rudimentär“ und an einer Stelle sogar gefährlich bis falsch. In den kommenden … Weiterlesen

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

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

Welche Datei meine ich denn nun genau?

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

Erfolgsüberprüfung

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

ErrorLevel Abfrage in der Vorlage

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

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

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

Anpassung

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

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

[RebootRequired]
SetReboot 1
-SetReboot 1

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

ErrorLevel oder gibt es auch andere Methoden

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

 

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

]]>
https://www.wpm-blog.de/empirum-errorlevel-abfrage-bei-unattended-installationen/feed/ 0
SystemShutdown vs. SetReboot https://www.wpm-blog.de/systemshutdown-vs-setreboot/ https://www.wpm-blog.de/systemshutdown-vs-setreboot/#respond Thu, 18 Jul 2019 18:42:07 +0000 https://www.wpm-blog.de/?p=2222 Vielleicht ist dem ein oder anderen schon der Neustart Dialog beim Installieren des EmpirumAgenten aufgefallen, der keine Möglichkeit hat den anstehenden Neustart zu verschieben? Wenn nicht, so schaut der Dialog aus: Damit sind wir auch … Weiterlesen

Der Beitrag SystemShutdown vs. SetReboot erschien zuerst auf Workplace Management Blog.

]]>
Vielleicht ist dem ein oder anderen schon der Neustart Dialog beim Installieren des EmpirumAgenten aufgefallen, der keine Möglichkeit hat den anstehenden Neustart zu verschieben?

Wenn nicht, so schaut der Dialog aus:

Damit sind wir auch schon mitten im Thema. Der SystemShutdown Befehl der Empirum Setup.inf gibt dem Benutzer einen Hinweis, dass ein Neustart ansteht, den der Benutzer je nach Parameter nicht umgehen kann. Darin unterscheidet sich der SystemShutdown gegenüber dem Reboot= bzw. SetReboot Befehl. Der SetReboot Befehl gibt die Neustart Anforderung an den Agenten weiter und ermöglicht somit dem Benutzer, dass dieser den Neustart, je nach Agenten Konfiguration, verschieben kann. Bei BIOS Updates oder Windows Feature Upgrades ist dies, nach der teilweise vorgenommenen Änderungen, nicht unbedingt gewünscht. An dieser Stelle kann der SystemShutdown eingesetzt werden, um dem Benutzer keine Wahl zu lassen, wann er den Computer neu starten möchte.

SystemShutdown <ShutdownText>, <Reboot>, <Force>, <Timeout in Seconds>, <Asynchron>
Befehl Bemerkung
<ShutdownText> Text für den Neustart Dialog
<Reboot> 0=Herunterfahren,
1=Herunterfahren+Neustarten
<Force> 1=die Applikation(en) mit Zwang beenden,
0=nicht forciert die Applikation(en) schließen
<Timeout in Seconds> Wartezeit in Sekunden, bevor der Dialog geschlossen wird.
<Asynchron> 0=synchon,
1=asynchron

Beispiel:

SystemShutdown In fünf Minuten erfolgt ein Neustart!/nBitte beenden Sie alle offenen Anwendungen, 1, 1, 300, 1
Befehl für das Auslösen eines „SystemShutdowns“ innerhalb der Setup.inf:
[Strings:07]
ShutdownTextDesc=Das BIOS Update erfordert einen Neustart des Computers.\nSpeichern Sie Ihre Daten und schließen Sie alle offenen Anwendungen.\n\nKlicken Sie 'OK' um den Computer neu zu starten.

[Strings:09]
ShutdownTextDesc=The BIOS update needs to restart your computer.\nSave your work and close all open applications.\n\nClick 'OK' to restart your computer.

[Set:FinishedBIOSUpdate]
If DoesProcessExist ("Explorer.exe") == "1" Then "UserIsLoggedOn" Else "NoUserIsLoggedOn" EndIf

[UserIsLoggedOn]
SystemShutdown %ShutdownTextDesc%, 1, 0, 600, 1

[NoUserIsLoggedOn]
SystemShutdown %ShutdownTextDesc%, 1, 0, 15, 1

Der Beitrag SystemShutdown vs. SetReboot erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/systemshutdown-vs-setreboot/feed/ 0
Empirum – Übernehmen von vorhandenen Installationen https://www.wpm-blog.de/empirum-uebernehmen-von-vorhandenen-installationen/ https://www.wpm-blog.de/empirum-uebernehmen-von-vorhandenen-installationen/#comments Wed, 16 Aug 2017 10:25:52 +0000 https://www.wpm-blog.de/?p=1884 Wenn man mit der Empirum Softwareverteilung nicht auf der „grünen Wiese“ beginnt, jedoch trotzdem die Zuweisung der Software anhand der Konfigurationsgruppen vornehmen möchte, läuft man Gefahr das eine Installation einer bereits vorhandenen Software startet. Gerade bei … Weiterlesen

Der Beitrag Empirum – Übernehmen von vorhandenen Installationen erschien zuerst auf Workplace Management Blog.

]]>
Wenn man mit der Empirum Softwareverteilung nicht auf der „grünen Wiese“ beginnt, jedoch trotzdem die Zuweisung der Software anhand der Konfigurationsgruppen vornehmen möchte, läuft man Gefahr das eine Installation einer bereits vorhandenen Software startet. Gerade bei größeren Software Installationen, wie einem Microsoft Office, SAP Client, Lotus Notes Client, o.ä. möchte man genau dies vermeiden. Auf der anderen Seite möchte man trotzdem die Konfigurationsgruppen und ihre Vorteile nutzen.

Szenario – Was ist zu beachten?

Dieses Szenario kommt vor, wenn zuvor die Software „von Hand“ oder einer zuvor eingesetzten Software-Management Lösung auf den Endgeräten installiert wurde und man sich nun für den Einsatz von Empirum entschieden hat. Jetzt kann man alle Geräte komplett neu installieren, oder eben die Endgeräte „wie sie sind“ in Empirum mittels der Verteilung des Empirum Agenten und des Empirum Inventorys in Empirum aufnehmen. Letzteres Verfahren spart zumindest erst einmal Zeit, jedoch muss man bei der Erstellung und Verteilung der weiteren Software-Pakete beachten, dass man ggf. nicht die gleiche Installationsgrundlage antrifft. Dies bedeutet wiederum ausgiebigere Tests und eine größere, oder andere Pilotgruppe.

Umsetzung in der Setup.inf

Wie ergänzt man nun sein Software-Paket, dass Microsoft Office eben nicht noch einmal installiert wird, wenn es zuvor schon anderweitig auf einem Endgerät installiert wurde? Diese Abfrage kann wie folgt umgesetzt werden. Natürlich kann man die Mehrsprachigkeit über die Strings Sektionen noch schöner handhaben ;-).

[Product]
#CheckAlreadyInstalled, DONTDELETE
;... eigentliche Installationsabfolge ...

[CheckAlreadyInstalled]
;*** Prüfen ob bereits Office 2010 manuell/anderweitig installiert wurde.
;*** Check existing Office 2010 Installation prior to Empirum Software-Distribution
IF DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-0019-0407-0000-0000000FF1CE},InstallDate") == "1" & DoesRegKeyExist ("HKLM,SOFTWARE\%MachineKeyName%\Setup,DisplayName") == "0" Then "AlreadyInstalled" EndIf

[AlreadyInstalled]
ErrorLogMsg %DeveloperName% %ProductName% %Version% ist bereits installiert ohne Empirum | is already installed without Empirum
Exit %DeveloperName% %ProductName% %Version% ist bereits installiert ohne Empirum | is already installed without Empirum

Der Beitrag Empirum – Übernehmen von vorhandenen Installationen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/empirum-uebernehmen-von-vorhandenen-installationen/feed/ 7
Empirum Setup.inf – SoftwareDepotDistributionFlags https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/ https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/#respond Wed, 05 Jul 2017 19:39:48 +0000 https://www.wpm-blog.de/?p=1877 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 … Weiterlesen

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

]]>
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. In der Matrix42 Online Hilfe fand ich Hinweise zur Nutzung und Auswertung der entsprechenden SoftwareDepotDistributionFlags Variable. So „gestärkt“ 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.

Dann habe ich angefangen mir den Wert der SoftwareDepotDistributionFlags Variable durch Logging zu erarbeiten …

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!

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.

Verteilbefehl DDC SoftwareDistributionFlags
(Dezimalwert)
Verteilbefehl
aus der deutschen Oberfläche
INSTALL 1 Installieren
UPDATE 2 Erneuern
FORCE 4 Immer Erzwingen
UNINSTALL 8 Deinstallieren
REVOKE 16 Ablehnen möglich
FORCEONCEMACHINE 32 Maschinenteil erzwingen
FORCEONCECLIENT 64 Benutzerteil erzwingen
AFTERFORCE 128 Erzwingen (Nach Ablauf des Zeitplaners)
AFTERREVERSE 256 Umkehren (Nach Ablauf des Zeitplaners)
HIDE 512 Nicht anzeigen
REINSTALL 1024 Reinstallation mit vorheriger Deinstallation
OFFLINE 2048 Lokal cachen
IGNOREMTF 8192 Installationszeitraum ignorieren (ist bei einem Push immer gesetzt!)

Arbeiten mit den Werten in der Setup.inf

Setup.inf Beispiele:

;---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

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

]]>
https://www.wpm-blog.de/empirum-setup-inf-softwaredepotdistributionflags/feed/ 0
Mit Empirum Windows 10 verteilen https://www.wpm-blog.de/mit-empirum-windows-10-verteilen/ https://www.wpm-blog.de/mit-empirum-windows-10-verteilen/#comments Fri, 28 Aug 2015 20:28:12 +0000 https://www.wpm-blog.de/?p=1619 Seit nun fast einem Monat ist Windows 10 offiziell freigegeben. Ich hatte bereits einen Artikel veröffentlicht, wie man mit Empirum Windows 10 Technical Preview verteilen kann. Noch vor der eigentlichen Veröffentlichung durch Microsoft hat Matrix42 bereits … Weiterlesen

Der Beitrag Mit Empirum Windows 10 verteilen erschien zuerst auf Workplace Management Blog.

]]>
Windows 10

Windows 10

Seit nun fast einem Monat ist Windows 10 offiziell freigegeben. Ich hatte bereits einen Artikel veröffentlicht, wie man mit Empirum Windows 10 Technical Preview verteilen kann. Noch vor der eigentlichen Veröffentlichung durch Microsoft hat Matrix42 bereits mit dem Update 1 für die Empirum Version 16 die Unterstützung für Windows 10 bekanntgegeben.

Empirum V16 Update 1

Das Update 1 für Empirum V16 wird auch Windows 10 Feature Pack genannt. Diese Version enthält bereits in allen Modulen die Unterstützung von Windows 10.

Windows 10 LTSB

Da sich Microsoft lange mit den LTSB Versionen zurückgehalten hat, sind diese SKUs noch nicht im Update 1 enthalten. Die Einbindung und Verteilung funktioniert trotz alledem. Hier muss man sich ggf. dem Trick mit der ImageInfo.ini bedienen, den ich im oben genannten Artikel bereits eingeführt habe. Dazu muss eine INI Datei mit dem Namen ImageInfo.ini bei den Betriebssystemquellen, im Verzeichnis (Empirum\EmpInst\SYS\Win10\<ServicePack>_{GUID}\<Sprache>) in dem auch die unattend.xml abgelegt ist, erstellt werden. Diese ImageInfo.ini sieht beispielhaft wie folgt aus:

[ImageInfo]
SKU=Windows 10 Enterprise 2015 LTSB

Diese ImageInfo.ini Datei wird, wenn vorhanden, von der end_winvista.eis Anpassung ausgelesen. Da sich jedoch die Variablen ab der Version 16 etwas geändert haben, muss hier in der end_winvista.eis eine Anpassung, gegenüber dem Artikel zur Empirum Version 15.1.9, vorgenommen werden. Die Anpassungen stehen unten auch zum Download bereit.

; ----------------------------------------------------------------------------
;SKU Override for non supported OS Versions
; ----------------------------------------------------------------------------
IFEXIST %E%%SysPath%\ImageInfo.ini THEN
READINI %E%%SysPath%\ImageInfo.ini ImageInfo SKU valueSKU 
IF "%valueSKU%"<>"" THEN
§ECHO_MSG="10 Custom script: end_winvista-[SKU Override] executed - ImageInfo.ini SKU value found"
GOSUB LINUX_ECHO

§SKU_LONG="%valueSKU%"
XMLSET %XMLWinPEPath%ImageInstall/OSImage/InstallFrom/MetaData[wcm:action="add"]/Key="/IMAGE/NAME"
XMLSET %XMLWinPEPath%ImageInstall/OSImage/InstallFrom/MetaData[wcm:action="add"]/Value="%SKU_LONG%"
§ECHO_MSG="10 Custom script: end_winvista-[SKU Override] SKU changed to: %SKU_LONG%"
GOSUB LINUX_ECHO
ENDIF
ENDIF
; ----------------------------------------------------------------------------

Windows 10 Treiberablage in Empirum

Wer die Release Notes zum Update 1 sorgfältig gelesen hat, hat festgestellt, dass die Windows 10 Treiber vorerst in der Windows 8 Struktur abgelegt werden. Dies sollte für den Großteil der Empirum Nutzer, die direkt von Windows 7 in Richtung 10 schielen kein Problem darstellen. Wenn man die Treibereinbindung über die Hardwareprofilverzeichnisse vornimmt, wie ich das in meinen anderen Artikel Empirum Treiberintegration – einfacher gemacht! erläutert habe, so kann man sich die Windows 10 Treiberstruktur auch analog zu den vorhandenen Treiberstrukturen befüllen. Die Einbindung der Treiber über die Empirum Management Console in die Win10 Verzeichnisstruktur wird von mir, als auch derzeit der Matrix42, nicht unterstützt!

Auch diese Anpassung geschieht über die end_winvista.eis.

Ich habe eine exemplarische und funktionierende end_winvista.eis Datei zum Download angehängt. Diese Datei funktioniert ab Empirum Version 16 und mit den Windows 10 Verzeichnissen und enthält somit beide oben genannten Anpassungen. Wenn man in der end_winvista.eis noch mehr Anpassungen durchgeführt hat, so sind die Änderungen zusammenzuführen.

Hier geht es zum Download:  end_winvista.eis.v16.0.1 (1963 Downloads )

 

Der Beitrag Mit Empirum Windows 10 verteilen erschien zuerst auf Workplace Management Blog.

]]>
https://www.wpm-blog.de/mit-empirum-windows-10-verteilen/feed/ 11
Windows 10 mit Empirum v15.1 installieren https://www.wpm-blog.de/windows-10-mit-empirum-v15-1-installieren/ https://www.wpm-blog.de/windows-10-mit-empirum-v15-1-installieren/#comments Mon, 23 Feb 2015 21:36:45 +0000 https://www.wpm-blog.de/?p=1523 Windows 10 scheint das Windows Betriebssystem zu werden, dass sich viele Nutzer wünschen. Es verbindet die klassische Bedienlogik inklusive eines Startmenues und die touchoptimierte Bedienung, die mit Windows 8 Einzug gehalten hat. Windows 10 verbindet … Weiterlesen

Der Beitrag Windows 10 mit Empirum v15.1 installieren erschien zuerst auf Workplace Management Blog.

]]>
Windows 10

Windows 10 scheint das Windows Betriebssystem zu werden, dass sich viele Nutzer wünschen. Es verbindet die klassische Bedienlogik inklusive eines Startmenues und die touchoptimierte Bedienung, die mit Windows 8 Einzug gehalten hat. Windows 10 verbindet nicht nur die unterschiedlichen Bedienphilosophien, sondern bietet auch immer die optimale Oberfläche bei Geräten die Tablet und Notebook in einem sind, wie ein Microsoft Surface, Lenovo Yoga, etc..

Windows 10

Die Quellen zum jeweils aktuell veröffentlichten Stand von Windows 10 gibt es entweder im MSDN Bereich oder hier. Wenn man die Windows 10 Preview jedoch auch in der eigenen Empirum Umgebung schon mal testen möchte, muss man beachten das es derzeit nicht offiziell supported wird.

Schnellschuss mit Empirum v15.1

Mit den aktuellen Quellen von Windows 10 kann man auch einen „Schnellschuss“ versuchen.
Dazu muss man zuvor die äquivalente Windows 8.1 Quelle (Architektur, Sprache, Edition) importieren und anschließend die gerade importierten Quellen mit den Windows 10 Quellen ersetzen. Anschließend kopiert man eine passende Windows 8.1 Betriebssystemvorlage und verweist auf die neu importierten Quellen.

Hintergrundinformationen

Wenn das nicht wie gewünscht funktioniert, kann es noch an anderen Parametern liegen.
Da ich bereits ab der ersten verfügbaren Windows 10 Quelle mit Empirum v15.1 experimentiere, habe ich an der ein oder anderen Stelle im System bereits Anpassungen vorgenommen.

Was habe ich alles getan?
1. Aktuelles WADK eingebunden
2. Die Windows 10 Betriebssystemquellen müssen in Empirum eingebunden werden
3. Die unbeaufsichtigte Installation muss mit der ggf. unbekannten SKU zurecht kommen.
4. Betriebssystemvorlage erstellen.

Aktuelles WADK importieren

Zur Sicherheit habe ich das aktuelle WADK auf dem EmpirumServer installiert.
Das aktualisierte WADK gibt es hier.
Wenn man die neuere Version installieren möchte, muss man beachten, dass man zuvor die Vorgängerversion deinstalliert.
Ansonsten erscheint ein Hinweis, dass man bereits die aktuelle Version installiert hätte.

Einbindung der Quellen

Die Windows 10 Quellen kann man entweder über den gleichen Weg einbinden, wie die Windows 8.1 Quellen mit dem damals zur Verfügung gestellten Preview.
Dann wird im OS-Installer auch Windows 10 als importierte Quelle angezeigt. Dazu muss man den Importkatalog, die Datenbank als auch die Importskripte erstellen und in die eigene Umgebung einbauen. Alternativ kann man ein weiteres Windows 8.1, der gleichen Architektur, Sprache und Edition importieren und nachträglich die Windows Quellen unterhalb des SYS Ordners gegen die von Windows 10 austauschen (siehe oben).

SKU (Windows Versions und Editions Information)

Nun haben die Windows 10 Quellen, die ich mir betrachtet habe immer wieder unterschiedliche SKUs besessen. Die Angabe der richtigen SKU sorgt für die komplett unbeaufsichtige Installation. Stimmt die in der unattend.xml hinterlegte SKU nicht mit den eingebundenen Quellen überein, bleibt der Installationsdialog stehen und fragt welche Version von Windows installiert werden soll. Die letzten Windows 10 Enterprise Quellen mit dem Build 9926 hatten allesamt die SKU „Windows 8.1 Enterprise“ eingetragen. Somit müsste man nicht mal eine Anpassung der SKU vor der Installation mit Hilfe eines angepassten EIS Skriptes vornehmen (Empirum v15.1 Patch 09 oder Windows 8.1 Preview vorausgesetzt). Dies war jedoch bei den ersten Windows 10 Technical Previews noch anders.
Die gültige SKU kann mit dem Befehl:
dism /get-imageinfo /imagefile:<Pfad>\install.wim /index:1 
herausgefunden werden. Diese wird unter „Name:“ angezeigt.

ImageInfo.ini

Ist es doch eine andere SKU, so kann man mit der END_WINVISTA.EIS die SKU in der unattend.xml überschreiben.
Ich habe mir für diesen Zweck eine einfache aber vielfältige Methode ausgedacht, wie man für die importierte Quelle immer die richtige SKU hinterlegen kann.

Dazu wird im Verzeichnis
Empirum\EmpInst\SYS\Win8\<ServicePack>_{GUID}\<Sprache>
eine Datei ImageInfo.ini mit folgendem Inhalt erstellt.
Als Hinweis: In diesem Verzeichnis müsste auch die unattended.xml Vorlage liegen.

[ImageInfo]
;SKU=Windows 10 Technical Preview
SKU=Windows 8.1 Enterprise

end_Winvista.eis

Folgende end_winvista.eis Erweiterung sorgt für die Auswertung der ImageInfo.ini, falls diese vorhanden ist. Somit haben diese Zeilen auch für die bestehenden Installationen keine Auswirkung.

; ----------------------------------------------------------------------------
;SKU Override for non supported OS Versions
; ----------------------------------------------------------------------------
IFEXIST %E%Sys\%OS%\%LocARCH%%LocTYP%\%SP%%Language%\ImageInfo.ini THEN
   READINI %E%Sys\%OS%\%LocARCH%%LocTYP%\%SP%%Language%\ImageInfo.ini ImageInfo SKU valueSKU 
      IF "%valueSKU%"<>"" THEN
         §ECHO_MSG="10 Custom script: end_winvista-[SKU Override] executed"
         GOSUB LINUX_ECHO

         §SKU_LONG="%valueSKU%"
         XMLSET %XMLWinPEPath%ImageInstall/OSImage/InstallFrom/MetaData[wcm:action="add"]/Key="/IMAGE/NAME"
         XMLSET %XMLWinPEPath%ImageInstall/OSImage/InstallFrom/MetaData[wcm:action="add"]/Value="%SKU_LONG%"

         §ECHO_MSG="10 Custom script: end_winvista-[SKU Override] SKU changed to: %SKU_LONG%"
         GOSUB LINUX_ECHO
      ENDIF
ENDIF
; ----------------------------------------------------------------------------

Betriebssystemvorlage erstellen

Wenn man bereits eine Windows 8 oder 8.1 Betriebssystemkonfiguration hat, so kopiert man diese und hinterlegt unter Allgemein\Sprache die neu eingebundenen Betriebssystemquellen. Speichern, Fertig!

Jetzt kann es losgehen …
Viel Spaß!

Der Beitrag Windows 10 mit Empirum v15.1 installieren erschien zuerst auf Workplace Management Blog.

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

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

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

MS14-049

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

Mögliche Abhilfen

Whitelisting der Installation

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

Patch zur Behebung des UAC Problems

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

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

Deinstallation des MS14-049

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

Ich drücke Euch die Daumen!

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

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

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

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

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

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

[RebootRequired]
SetReboot 1

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

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

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

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

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

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

SSD Erkennung per Tool

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

Wie nutze ich das Tool?

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

Wie nutze ich es in der Empirum Setup.inf?

Hier ein Beispiel:

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

[IsSSD]
Echo SSD installed!

[IsNoSSD]
Echo No SSD installed!

Wie nutze ich es in einer Batch Datei?

Auch dazu ein kleines Beispiel:

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

Gutes gelingen und viel Spaß damit!

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

]]>
https://www.wpm-blog.de/ssd-festplatten-erkennung-im-script/feed/ 0