Guideline Formate und Architektur - Formatauswahl - Cluebiz

Die Seite wird erstellt Thorben Block
 
WEITER LESEN
08.02.2022 02:55:54

Guideline

Formate und Architektur
Formatauswahl
Basierend auf den für die Paketerstellung zur Verfügung gestellten Quellen sind folgende Verfahren möglich:
- Umwandlung eines bestehenden Hersteller-MSI.
- Erstellung von MSI durch Umpacken des Legacy-Installers oder von Grund auf.
- Verwendung von Legacy-Setup.
- Paketvirtualisierung (App-V/ThinApp/MSIX)
Allgemeine Best Practices für die Paketierung sind im Folgenden aufgeführt.

                                            Ein originales Hersteller-MSI darf nicht verändert werden. Anpassungen müssen immer von MST
                                            vorgenommen werden. Die originalen MSI-Datenbanken dürfen nicht verändert werden. In
Hersteller-MSI                              Ausnahmefällen, wenn eine Transformationserstellung nicht möglich ist oder eine Fixierung der
                                            Hersteller-MSI nicht in einem akzeptablen Zeitrahmen möglich ist, kann die Setup-Erfassung
                                            durchgeführt werden.
Anpassungstool des Herstellers              Wenn ein herstellerspezifisches Anpassungstool (z. B. Adobe InstallTuner, Microsoft Office
                                            Customization Tool) für das Originalpaket verfügbar ist, sollte es verwendet werden.
Mehr als ein Hersteller-MSI von             Wenn die Originalanwendung mehr als ein Hersteller-MSI von verschiedenen Herstellern enthält,
verschiedenen Herstellern                   sollte die Paketierungsaufgabe in separate Aufgaben für jedes Hersteller-MSI aufgeteilt werden.

Vorteile und Nachteile Applikations-Virtualisierung
Das Virtualisieren von Applikationen (z.B. in App-V/MSIX) kann dem Kunden Vorteile, aber auch Nachteile bieten:
Vorteile
      Applikationen werden korrekt Installiert und Deinstalliert
      Es gibt keinerlei Konflikte zwischen den Applikationen
      Mehrere Versionen der gleichen Applikation können parallel installiert werden
      Vorteile beim Rollout von Applikationen
      Applikationen können pro Benutzer zugewiesen werden (z.B. bei VDI oder Citrix)

Nachteile
      Virtualisierte Versionen von Applikationen werden nicht vom Hersteller angeboten
      Die virtualisierte Applikation muss bei jedem Versionsupdate vom Hersteller neu erstellt werden
      Durch das Sequence-Verfahren gehen in der Regel Garantieleistungen vom Hersteller verloren
      Inkompatibilitäten verhindern das Erstellen von App-V Paketen
      Es bleibt eine Mischung von Klassischen Applikationen mit Virtualisierten Applikationen, welche aufeinander abgestimmt werden muss

Strategien für die Applikationsvirtualisierung
Aggressive Applikationsvirtualisierung
Bei dieser Strategie versucht der Kunde, den höchstmöglichen Anteil seiner Applikationen zu virtualisieren. Das bringt ihm den Vorteil, dass er
seine VDI oder TS Umgebung in der höchsten Ausbaustufe nutzen kann. Jeder Benutzer kann sich an seinem Thin-Client anmelden und hat alle
seine Applikationen zur Verfügung. Es müssen keine permanenten virtuelle Clients bereitstehen.
Fallbezogene Applikationsvirtualisierung
Hier werden nur Applikationen virtualisiert, welche Projektbezogen sinn machen. Bei dieser Strategie wird nicht versucht, alle Applikationen
generell zu virtualisieren. Das kann sein, dass ein Set von Applikationen auf VDI funktionieren muss oder über MSI-X auf private Geräte verteilt

 Guideline                                                                                                                        Page 1 of 24
08.02.2022 02:55:54

werden muss. Ein weiteres Beispiel könnte das Bereitstellen der Applikation auf demselben Gerät in einer unterschiedlichen Version sein.

Vorteile und Nachteile des Snapshot Verfahrens
Mit der Snapshot-Technik kann die Installation einer Applikation aufgezeichnet werden und z.B. in ein Windows Installer Paket (msi) konvertiert
werden. Damit erhält der Kunde sämtliche Vorteile der Installer-Technik (Repair, Maschinen/Benutzerteile getrennt, Advertised Shortcuts,
Standartisierung), aber gleichzeitig erlischt der Support durch den Hersteller. Die Verantwortung für das Paket liegt nun beim Ersteller dieses
Snapshots und kann damit auch negative Effekte (z.B. Funktionsfehler, korrupte Deinstallationen) auslösen.
Der Snapshot muss in der Regel bei jedem Versionsupdate des Hersteller komplett neu erstellt werden.
Wir empfehlen die Snapshot Technik nur, falls entweder keine Installationroutine vom Hersteller vorliegt oder die Qualität der gelieferten
Hersteller-Routine nicht korrekt ist (z.B. kein Silent Uninstall oder problematische Parameter).

Technische Erklärung zu den Formaten
                               Klas​si​sche For​ma​t e           Vir​t u​el​le For​ma​t e        App-X, MSI-X                 Uni​v er​sal Apps     Do​ckers / Con​t ai​n ers
                                 MSI, Le​g a​cy,                  App-V, Por​t a​b le                                                                 Hyper-V and Win​-
                              Snapshots von Dritt​-               Apps, Sy​man​t ec              App-X, MSI-X                         UWP              dows Con​t ai​n er
                                  her​stel​lern                    VSA, ThinApp

 Re​g is​try, File​s ys​tem   Nativ (teilw virt durch Vir​tu​ell                            Vir​tu​ell                   Vir​tu​ell                 Vir​tu​ell
                              UAC)
 Ser​vices, Trei​ber un​-     Ja                            Nein (AppV kann Ser​-           Nein                         Nein                       Ja
 ter​s tützt                                                vices)
 CPU-Vir​tua​li​s ie​rung     Nativ                         Nativ                           Nativ                        Nein                       Ja
 Kann Admin-Rech​te           Ja                            Ja                              Nein                         Nein                       Ja
 ver​lan​g en
 Läuft auf ARM oder           Nein                          Nein                            Nein                         Ja                         Nein
 Broad​com
 Busi​ness Store              Nein                          Nein                            Ja                           Ja                         Nein
 (Azure)
                                                            ab Win7, Win10
 OS Re​qui​red                ab WinXP                      (1607) keine Li​zenz            ab Win10 (1607)              ab Win10                   ab Win10 (1607)
                                                            mehr nötig
 Geig​net für User-De​-       Nein                          Ja                              Ja (zwin​g end)              Ja (zwin​g end)            Nein
 ploy​ment
                                                            Ge​eig​net für VDI und          Apps kön​nen im Store        Ap​pli​ka​ti​on muss als   Kom​plet​te Un​a b​hän​-
                              vol​ler Her​s tel​ler-Sup​-   Be​he​bung von In​s tal​-       pu​blis​hed wer​den,         UWP kom​pi​liert wer​-     gig​keit der Con​tai​ner
 Be​mer​kun​g en              port, ma​xi​ma​le Kom​-       la​ti​ons​kon​flik​ten,         keine In​s tal​la​ti​ons​-   den, kein Kon​vert mög​-   un​ter​ein​a n​der,
                              pa​ti​bi​li​tät               nicht immer kom​pa​ti​-         kon​flik​te, nicht immer     lich                       braucht mehr CPU und
                                                            bel (z.B. Hard​ware)            kom​pa​ti​bel                                           Me​mo​ry

Architektur
Applikation und Betriebssystem
Es gibt zwei Kriterien für die Architekturen, es gibt die Architekture des Betriebssytems und die Architekture der Applikation, welche ausgeführt
werden soll.

Windows Architektur
Betriebssystem/Applikation                                                           Win x86             Win x64                  Win Arm           Win Arm64
Windows 7/8/10 x86                                                                   OK                  not OK                   not OK            not OK
Windows 7/8/10 x64                                                                   OK                  OK                       not OK            not OK

 Guideline                                                                                                                                                       Page 2 of 24
08.02.2022 02:55:54

Windows 8.1 arm (Windows RT)                                     not OK           not OK              OK                not OK
Windows 8/10 arm64 (Surface X)                                   OK **            OK (beta)           OK                OK

MacOS Architektur
Betriebssystem/Applikation                                                    MacOS x64                        MacOS M1
MacOS x64 (Intel)                                                             OK                               not OK
MacOS M1 (Apple Silicon)                                                      OK **                            OK

** Ausser Treiber und Hardwarenahe Programme

Schnittstellen zum OS
Übersicht
Applikationen haben verschieden Schnittstellen zum Betriebssytsem, welche mit der Installation erstellt werden. Diese Schnittstellen werden zu
einem grossen Teil in der Registry unter CLASSES_ROOT registriert. Untenstehend werden die einzelnen Schnittstellen beschrieben.

https://blogs.windows.com/windowsdeveloper/2017/04/13/com-server-ole-document-support-desktop-bridge/

Startmenü
Das Startmenü ist der bekannteste Einstiegspunkt unter Windows, in welchem die Benutzer Ihre Programme wiederfinden. Die Einträge im
Startmenü waren vor Windows 8 komplett unter %ProgramData%\Microsoft\Windows\Start Menu\ als .lnk Dateien abgelegt. Zusätzlich wurden
Sie noch mit dem entsprechenden Benutzerverzeichnis kombiniert. Ab Windows 8 sind im Startmenü auch MSIX Apps ausgewiesen.

Klassisch
Speicherpfad                                             %ProgramData%\Microsoft\Windows\Start Menu\*.lnk
                                                         %APPDATA%\Microsoft\Windows\Start Menu\*.lnk
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Nein

App-V
Speicherpfad                                             %ProgramData%\Microsoft\Windows\Start Menu\*.lnk
                                                         %APPDATA%\Microsoft\Windows\Start Menu\*.lnk
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Ja

MSIX
Speicherpfad                                             %ProgramFiles%\WindowsApps\...\appxmanifest.xml
                                                         HKCR\AppX...\Application
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Automatisch

Desktop
Wie im Startmenü werden auch die Desktop-Verknüpfungen über ein Windows-Verzeichnis (%PUBLIC%\Desktop) als .lnk Dateien erstellt, auch
hier wird das Verzeichnis aus dem entsprechnden Benutzerverzeichnis kombiniert. Zusätzlich werden gewisse vordefinierte Icons wie z.B. der

 Schnittstellen zum OS                                                                                                           Page 3 of 24
08.02.2022 02:55:54

Trashcan vom Betriebssytem ergänzt.

Klassisch
Speicherpfad                                             %PUBLIC%\Desktop\*.lnk
                                                         %USERPROFILE%\Desktop\*.lnk
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Nein

App-V
Speicherpfad                                             %PUBLIC%\Desktop\*.lnk
                                                         %USERPROFILE%\Desktop\*.lnk
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Ja

MSIX
Speicherpfad                                             nicht unterstützt
Deinstallation Problemlos                                nicht unterstützt
Änderung bei Minor Update                                nicht unterstützt

Dateiverknüpfungen (FTA)
Unter Windows reichen die Dateiverknüpfungen (File-Extensions) bis zu DOS-Zeiten zurück. Windows erkennt Dateitypen anhand der Endung des
Dateinamens. Diese Extensions werden in Legacy-Paketen über Classes_Root definiert, und zwar im Root des Trees, sie beginnen immer mit
einem Punkt (.).

Klassisch
Speicherpfad                                             HKCR\.*
Deinstallation Problemlos                                Nein
Änderung bei Minor Update                                Nein

App-V
Speicherpfad                                             HKCR\.*
Deinstallation Problemlos                                Nein
Änderung bei Minor Update                                Ja

MSIX
Speicherpfad                                             HKCR\.*\OpenWithProgids
Deinstallation Problemlos                                Ja
Änderung bei Minor Update                                Automatisch

ProgID
Dateiverknüpfungen zeigen im klassischen Windows auf eine ProgId, und nicht direkt auf die Exe. Die ProgId enthält die Information, wo sich das
Programm befindet und mit welchen Parametern es gestartet werden soll. ProgId-Einträge werden ausserdem von WebBrowsern unterstützt, es
ist beispielsweise folgender Eintrag möglich:
txtfile://meineparameter

 Schnittstellen zum OS                                                                                                         Page 4 of 24
08.02.2022 02:55:54

https://docs.microsoft.com/en-gb/windows/win32/com/-progid--key
 Klassisch
 Speicherpfad                                        HKCR\*
 Deinstallation Problemlos                           Nein
 Änderung bei Minor Update                           Nein

App-V
Speicherpfad                                              HKCR\*
Deinstallation Problemlos                                 Nein
Änderung bei Minor Update                                 Ja

MSIX
Speicherpfad                                              Nicht unterstützt (ausser Kompatibilität)
Deinstallation Problemlos                                 Ja
Änderung bei Minor Update                                 Automatisch

Verbs
Die Verbs beschreiben das Kontextmenü beim "Rechtsklick" auf eine Datei

Mime Types
Der Internet Media Type, auch MIME-Type (nach der Spezifikation Multipurpose Internet Mail Extensions) oder Content-Type (nach dem Namen
des Feldes), klassifiziert die Daten im Rumpf einer Nachricht im Internet. Wie im MIME-Standard erläutert, wird z. B. bei einer HTTP-Übertragung
einem Browser mitgeteilt, welche Daten der Webserver sendet – ob es beispielsweise ein Plain-Text-Dokument, ein HTML-Dokument oder ein
PNG-Bild ist. Auch in E-Mails wird das „Content-Type“-Header-Feld dazu verwendet, die verschiedenen Daten zu klassifizieren.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
https://de.wikipedia.org/wiki/Internet_Media_Type

Klassisch
Speicherpfad                                              HKCR\CLSID\MIME\*
                                                          HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Nein

App-V
Speicherpfad                                              HKCR\CLSID\MIME\*
                                                          HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Ja

MSIX
                                                          HKCR\PackagedCom\Package\*

 Schnittstellen zum OS                                                                                                           Page 5 of 24
08.02.2022 02:55:54

Speicherpfad                                              HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Automatisch

Classes (CLSID)
Eine CLSID ist eine Globally Unique Identifier, die ein com-Klassenobjekt identifiziert. Wenn Ihr Server oder Container das Verknüpfen mit den
eingebetteten Objekten zulässt, müssen Sie für jede unterstützte Objektklasse eine CLSID registrieren.
Jede Coklasse vom COM-Server hat mindestens einen Eintrag unter diesem Schlüssel, der die CLSID und die ProgID angibt. Die CLSID ist eine
GUID, die die Klasse eindeutig identifiziert, und die ProgID (programmatic identifier) ist eine Zeichenkette, die die Klasse in einer besser
lesbaren Form identifiziert.

https://docs.microsoft.com/en-gb/windows/win32/com/clsid-key-hklm https://mariusbancila.ro/blog/2010/06/01/com-and-registry/

Klassisch
Speicherpfad                                              HKCR\CLSID\*
                                                          HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Nein

App-V
Speicherpfad                                              HKCR\CLSID\*
                                                          HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Ja

MSIX
Speicherpfad                                              HKCR\PackagedCom\Package\*
                                                          HKEY_CURRENT_USER\Software\Classes
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Automatisch

TypeLibs
Jede Typbibliothek hat einen Schlüssel unter HKEY_CLASSES_ROOT\TypeLib, mit dem Namen der LIBID. Die Unterschlüssel liefern Informationen
über den physischen Speicherort der Typbibliothek-Datei (.tlb-Datei) und andere, wie Flags (Schlüssel FLAGS) das Verzeichnis, das die Hilfedatei
für die Typbibliothek enthält (Schlüssel HELPDIR). Eine LIBID ist eine GUID, die eine Typbibliothek eindeutig identifiziert. Eine *.TLB-Datei ist
eine Binärversion einer IDL-Datei. Diese wird von Sprachen wie VB, Java, Javascript und vielen anderen verwendet, um die COM-Objekte nutzen
zu können.

Klassisch
Speicherpfad                                              HKCR\TypeLib\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Nein

App-V
Speicherpfad                                              HKCR\TypeLib\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Ja

 Schnittstellen zum OS                                                                                                            Page 6 of 24
08.02.2022 02:55:54

MSIX
Speicherpfad                                              HKCR\TypeLib\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Automatisch

Interfaces
Die Informationen für alle in einer IDL-Datei (Typbibliothek) definierten Schnittstellen müssen in der Registrierung hinzugefügt werden. Unter
HKEY_CLASSES_ROOT\Interface muss ein Schlüssel mit der IID der Schnittstelle stehen. Die IID (Interface Identifier) ist eine GUID, die eine
Schnittstelle eindeutig identifiziert.

Klassisch
Speicherpfad                                              HKCR\Interface\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Nein

App-V
Speicherpfad                                              HKCR\Interface\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Ja

MSIX
Speicherpfad                                              HKCR\Interface\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Automatisch

AppIds
Eine AppID (Application Identifier) ist eine GUID, die einen COM-Server eindeutig identifiziert und zur Beschreibung von Sicherheits- und
Aktivierungseinstellungen verwendet wird; sie wird für Out-of-Proc-Szenarien (lokal oder remote) verwendet. Normalerweise ist die AppID
identisch mit der CLSID einer Coclass des COM-Servers (ohne Kollisionsgefahr, da die CLSID und die AppID unterschiedlichen Zwecken dienen).

Klassisch
Speicherpfad                                              HKCR\AppID\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Nein

App-V
Speicherpfad                                              HKCR\AppID\*
Deinstallation Problemlos                                 Ja (wegen GUID)
Änderung bei Minor Update                                 Ja

MSIX

 Schnittstellen zum OS                                                                                                            Page 7 of 24
08.02.2022 02:55:54

Speicherpfad                                               HKCR\AppID\*
Deinstallation Problemlos                                  Ja (wegen GUID)
Änderung bei Minor Update                                  Automatisch

AppPath
Wenn die ShellExecuteEx -Funktion mit dem Namen einer ausführbaren Datei im lpfile -Parameter aufgerufen wird, gibt es mehrere Stellen, an
denen die Funktion nach der Datei sucht. Es wird empfohlen, die Anwendung im Registrierungs Unterschlüssel App-Pfade zu registrieren.
Dadurch entfällt die Notwendigkeit, dass Anwendungen die Systempfad-Umgebungsvariable ändern.
Die Datei wird an den folgenden Speicherorten gesucht:
   1.   Das aktuelle Arbeitsverzeichnis
   2.   Nur das Windows-Verzeichnis (es werden keine Unterverzeichnisse durchsucht).
   3.   Das Windows\system32-Verzeichnis.
   4.   Verzeichnisse, die in der PATH-Umgebungsvariablen aufgelistet sind.
   5.   Empfohlen: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPath
https://docs.microsoft.com/en-us/windows/win32/shell/app-registration
 Klassisch
 Speicherpfad                                         HKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
 Deinstallation Problemlos                            Ja
 Änderung bei Minor Update                            Nein

App-V
Speicherpfad                                               HKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
Deinstallation Problemlos                                  Ja
Änderung bei Minor Update                                  Automatisch

MSIX
Speicherpfad                                               HKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
Deinstallation Problemlos                                  Ja
Änderung bei Minor Update                                  Automatisch

Generelle Guidelines
Shortcuts
        Shortcuts auf dem Desktop werden immer entfernt
        Shortcuts mit dem Namen "Uninstall" oder "ReadMe" werden immer entfernt
Die Shortcuts werden zusätzlich in der Sektion  erfasst, damit ist es möglich, sie in ein anderes System zu exportieren

Benutzerteile
Falls das Paket vom Hersteller korrekt erstellt wurde, ist der Benutzerteil in diesem Fall vernachlässigbar, weil er über das Selfhealing vom MSI
angestossen wird.
In Ausnahmefällen kann aber auch hier die Sektion  benutzt werden, diese erstellt automatisiert eine "ActiveSetup.vbs" im
Hauptverzeichnis des Programmes, welche während der Installation für alle angemeldeten Benutzer direkt ausgeführt wird, aber auch für alle
nachfolgenden Anmeldungen über das ActiveSetup.vbs ausgelöst wird

Applikations-Updates

 Generelle Guidelines                                                                                                                 Page 8 of 24
08.02.2022 02:55:54

Autoupdate der Applikationen (z.B. Java Runtime, Firefox, Adobe Reader) wird ausgeschaltet. Updates können einfach über den Roboter erstellt
werden, deshalb kann generell darauf verzichtet werden.

Reboot
Reboots werden immer unterdrückt

Umgebungsvariablen
Bestehende Umgebungsvariablen (z.B. PATH) dürfen nicht ersetzt werden. Zusätzliche Variablen können erstellt werden, müssen bei der
Deinstallation aber wieder entfernt werden (falls per Machine).

Hartcodierte Pfade
Hartcodierte Pfade müssen nach Möglichkeit vermieden werden. Hardcodierte Werte werden durch Eigenschaften ersetzt. Benutzerdefinierte
Eigenschaften, die dem Paket hinzugefügt werden (um Hardcodes zu ersetzen usw.).

Sicherheit
Die Berechtigungen müssen für die lokale Benutzergruppe festgelegt werden (wenn in der Installationsdokumentation nichts anderes
beschrieben ist). Die Zugriffsberechtigungen für Dateien, Ordner, Registrierungsschlüssel und Dienste (falls erforderlich) werden durch einen
benutzerdefinierten Abschnitt in der Datei deploy.xml festgelegt, der nach der Installation ausgeführt wird. SECEDIT oder icacls
Dienstprogramme sollten verwendet werden.

Überschreiben von Dateien
Auf einem Windows-Betriebssystem gibt es bestimmte Dateien, die eine besondere Bedeutung haben und deshalb nicht überschrieben, sondern
nur bearbeitet oder angehängt werden können. Die folgenden Dateien können nie überschrieben, sondern nur zusammengeführt oder angehängt
werden:
      %Windir%\System32\drivers\etc\Hosts
      %Windir%\System32\drivers\etc\Lmhosts
      %Windir%\System32\drivers\etc\Services
      %Windir%\Win.ini
      %Windir%\System.ini

DLL und OCX Registrierung
In gewissen fällen müssen DLLs und OCX-Dateien in der Registry registriert werden (z.B. über regsvr32

Deinstallation
Das Standard-Deinstallationsverhalten ist das Entfernen aller Komponenten, die durch das MSI auf dem Betriebssystem platziert wurden. Dies
ist auch abhängig vom Zählerwert der freigegebenen DLL. Permanente, gemeinsam genutzte und modifizierte Komponenten werden nicht
entfernt. Das Einstellen einer Komponente auf "shared" oder "permanent" erfolgt durch das Erstellen der Tabelle "Components" in der MSI-
Datei.
Eine Deinstallationsaktion muss Daten und benutzergebundene Einstellungen und Dateien unverändert lassen.

Parameter
Alle konfigurierbaren Anwendungseinstellungen (Servernamen, Serienschlüssel), die während der Bereitstellungsphase geändert werden
könnten, sollten als Variablen festgelegt werden.

Anwendung veröffentlichen
Windows registriert Anwendungen in der Registry, die später für das Kontextmenü "Öffnen mit" verwendet werden, die im Startmenü gesucht
werden können und die für die PATH-Variable verwendet werden. Die Veröffentlichung kann bei der Integration aktiviert werden.
https://helgeklein.com/blog/2010/08/how-the-app-paths-registry-key-makes-windows-both-faster-and-safer/

Firewall-Einstellungen

 Generelle Guidelines                                                                                                            Page 9 of 24
08.02.2022 02:55:54

Während der Integration des Pakets können Sie die Software-Firewall-Einstellungen direkt im Paket aktivieren oder als externe Dateien
exportieren

AppLocker und VirusScanner
Bei der Integration des Pakets können Sie die Einstellungen als externe Dateien exportieren.

Legacy Paket erstellen
Übersicht
Für die Erstellung eines Legacy-Paketes wird nur gemacht, wenn keine MSI-Datei zur Verfügung stellt. Da das Legacy-Format keine
Standartisierung kennt, gestaltet sich die Erstellung etwas komplizierter.

Erstellung
Es muss zunächst abgeklärt werden, ob der Hersteller sowohl für die Installation wie auch für die Deinstallation Parameter bereitstellt, damit die
Software im "Hintergrund" installiert werden kann.

Installationsablauf
Der Ablauf der Installation gestaltet sich immer nach dem gleichen Muster
   1. Überprüfung, ob die zu installierende Software bereits lokal installiert ist, dies ist eine Sicherheitsmassnahme, falls das Paket eventuell
      schon manuell installiert worden ist oder der Job falsch gesetzt worden ist.
   2. Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
   3. Bekannte Prozesse der Applikation werden gelöscht
   4. Installation Setup.exe mit Silent-Parametern
   5. Nachträgliches setzen der Einstellungen (z.B. Sprache, Servernamen, ...)
   6. Änderungen an den Standard-Sicherheitseinstellungen des Systems (Dateien, Ordner, Registrierung, Dienste) müssen untersucht werden
   7. Optional ein Feedback, ob ein Reboot notwendig ist
   8. Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Deinstallationsablauf
   1.   Überprüfung, ob die zu installierende Software bereits lokal installiert ist.
   2.   Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
   3.   Bekannte Prozesse der Applikation werden gelöscht
   4.   Deinstallation mit Silent Parametern (uninstall.exe)
   5.   Eventuell Rücknahme von zusätzlichen Rechten auf dem Filesystem oder der Registry
   6.   Optional ein Feedback, ob ein Reboot notwendig ist
   7.   Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Reparatur
   1.   Überprüfung, ob die zu installierende Software bereits lokal installiert ist.
   2.   Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
   3.   Alle Prozesse aus der "File Table" der MSI werden gelöscht
   4.   Deinstallation mit Silent Parametern (uninstall.exe)
   5.   Installation Setup.exe mit Silent-Parametern
   6.   Nachträgliches setzen der Einstellungen (z.B. Sprache, Servernamen, ...)
   7.   Eventuell Vergabe von zusätzlichen Rechten auf dem Filesystem oder der Registry
   8.   Optional ein Feedback, ob ein Reboot notwendig ist
   9.   Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Shortcuts
Die Shortcuts werden zusätzlich in der Sektion  erfasst, damit ist es möglich, sie in ein anderes System zu exportieren

Benutzerteile
In Ausnahmefällen kann aber auch hier die Sektion  benutzt werden, diese erstellt automatisiert eine "ActiveSetup.vbs" im

 Legacy Paket erstellen                                                                                                               Page 10 of 24
08.02.2022 02:55:54

Hauptverzeichnis des Programmes, welche während der Installation für alle angemeldeten Benutzer direkt ausgeführt wird, aber auch für alle
nachfolgenden Anmeldungen über das ActiveSetup.vbs ausgelöst wird

MSI Paket erstellen
Übersicht
Für die Erstellung eines MSI-Paketes ist es natürlich zwingend, dass der Hersteller eine MSI-Datei zur Verfügung stellt. Da die Datei als
Datenbank zur Verfügung steht, können wir mit dem FastWrapper sehr viele Informationen direkt auslesen. Daher ist es unnötig, z.B. den
Uninstall Key manuell zu suchen.

Technische Referenzen
https://docs.microsoft.com/en-us/windows/win32/msi/windows-installer-portal

Installationsablauf
Der Ablauf der Installation gestaltet sich immer nach dem gleichen Muster
  1. Überprüfung, ob die zu installierende Software bereits lokal installiert ist, dies ist eine Sicherheitsmassnahme, falls das Paket eventuell
     schon manuell installiert worden ist oder der Job falsch gesetzt worden ist.
  2. Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
  3. Alle Prozesse aus der "File Table" der MSI werden gelöscht
  4. Installation der MSI, in der Regel in der Kombination mit der MST
  5. Nachträgliches setzen der Einstellungen (z.B. Sprache, Servernamen, ...)
  6. Eventuell Vergabe von zusätzlichen Rechten auf dem Filesystem oder der Registry
  7. Optional ein Feedback, ob ein Reboot notwendig ist
  8. Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Deinstallationsablauf
Generell sollten alle Ressourcen, die bei der Installation installiert wurden, bei der Deinstallation entfernt werden. Dies ist das
Standardverhalten der MSI-Technologie. Die Ausnahmen sind Dateien, die über Komponenten installiert wurden, die mit anderen installierten
Paketen gemeinsam genutzt werden. Dateien und INI-Einträge, die nach der Installation der Software erstellt wurden, werden bei der
Deinstallation standardmäßig nicht entfernt. Der Anwendungsordner verbleibt mit einigen erstellten Inhalten auf dem Computer.
Benutzerspezifische Dateien und Registry-Einträge sollten nicht gelöscht werden.
  1.   Überprüfung, ob die zu installierende Software bereits lokal installiert ist.
  2.   Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
  3.   Alle Prozesse aus der "File Table" der MSI werden gelöscht
  4.   Deinstallation der MSI
  5.   Eventuell Rücknahme von zusätzlichen Rechten auf dem Filesystem oder der Registry
  6.   Optional ein Feedback, ob ein Reboot notwendig ist
  7.   Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Reparatur
  1.   Überprüfung, ob die zu installierende Software bereits lokal installiert ist.
  2.   Alle Prozesse aus dem Programmfolder der zu installierenden Software werden gelöscht
  3.   Alle Prozesse aus der "File Table" der MSI werden gelöscht
  4.   Reparatur der MSI
  5.   Eventuell Reparatur von zusätzlichen Rechten auf dem Filesystem oder der Registry
  6.   Optional ein Feedback, ob ein Reboot notwendig ist
  7.   Überprüfung auf einen Registry Key oder ein File, ob die Installation korrekt durchgelaufen ist

Properties
Folgende Eigenschaften können als Kommandozeilenparameter in der deploy.xml gesetzt werden.

ALLUSERS                           1                            Installation pro Maschine unter Verwendung von Ordnern im Profil "Alle
                                                                Benutzer".
ARPNOMODIFY                        1                            Deaktiviert die Änderungsfunktionalität im ARP
                                                                Ein ARP-Eintrag für jede msi. Falls msi mehr als einen ARP-Eintrag installiert,

 MSI Paket erstellen                                                                                                               Page 11 of 24
08.02.2022 02:55:54

ARPSYSTEMCOMPONENT                Kein Eintrag                kann ARPSYSTEMCOMPONENT = 1 über die Registry-Tabelle gesetzt werden, um
                                                              einen zusätzlichen APR-Eintrag zu verbergen. Er sollte bei der De-Installation des
                                                              Pakets gelöscht werden.
LIMITUI                           1                           Die Ebene der Benutzeroberfläche (UI), die bei der Installation des Pakets
                                                              verwendet wird, ist auf Basic beschränkt.
MSIDISABLERMRESTART               1                           Windows Restart Manager: Die Eigenschaft wird ignoriert, wenn der Neustart-
                                                              Manager nicht verfügbar oder deaktiviert ist.
MSIRESTARTMANAGERCONTROL Disable                              Windows Restart Manager: Deaktiviert den Neustart-Manager.
MSIRMSHUTDOWN                     2                           Windows Restart Manager: Die Eigenschaft wird ignoriert, wenn der Neustart-
                                                              Manager nicht verfügbar oder deaktiviert ist.
REBOOT                            ReallySuppress              Unterdrückt alle Neustarts und Neustartaufforderungen, die durch ForceReboot
                                                              während der Installation ausgelöst werden.
ROOTDRIVE                         C:\                         Legt das Standardlaufwerk für das Zielverzeichnis der Installation fest.

Features
Das Layout der Merkmale sollte nicht verändert werden, wenn es nicht benötigt wird.

Components
Komponenten einer Hersteller-MSI können unverändert belassen werden. Komponenten, die über MST hinzugefügt werden, sollten den
Vorschriften für Repackaged MSI entsprechen.

Current User Entries
Wenn das Paket vom Hersteller korrekt erstellt wurde, ist der Benutzeranteil in diesem Fall vernachlässigbar, da er vom MSI per Selbstheilung
ausgelöst wird.
In Ausnahmefällen kann aber auch hier der  Abschnitt verwendet werden, der automatisch eine "ActiveSetup.vbs" im
Hauptverzeichnis des Programms anlegt, die direkt bei der Installation für alle angemeldeten Benutzer ausgeführt wird, aber auch bei allen
nachfolgenden Anmeldungen über die ActiveSetup.vbs ausgelöst wird

AktiveSetup
ActiveSetup-Einträge im Hersteller-MSI werden, wenn sie vorhanden sind, in den Abschnitt der Datei deploy.xml verschoben. Ansonsten gelten
die Empfehlungen für Repackaged MSI.

Dateien
Die Hersteller-MSI kann ohne Änderungen belassen werden.

Medien/CAB's
Vendor msi Media Option wird unverändert belassen. Wenn Dateien zum Paket hinzugefügt werden, sollten sie in eine neue externe CAB-Datei
(mit dem Namen .cab) komprimiert oder als unkomprimierte Dateien eingebunden werden, abhängig von den Besonderheiten der Hersteller-MSI.

Ini-Dateien
Die Hersteller-MSI kann ohne Änderungen belassen werden.

Registrierung
Schlüssel sind auf hart kodierte Einträge zu untersuchen, z.B.: Rechnernamen, IP-Adressen, Portnummern etc. Diese Einträge sollten durch MSI-
Eigenschaften ersetzt werden. Der Inhalt der SelfReg-Tabelle kann in der Hersteller-MSI so belassen werden.

Dateizuordnungen
Die Hersteller-msi kann ohne Änderungen belassen werden.

Umgebungsvariablen

 MSI Paket erstellen                                                                                                            Page 12 of 24
08.02.2022 02:55:54

Werte übernehmen, wenn Umgebungsvariable bereits vorhanden. Bei der Installation angelegte Umgebungsvariable muss beim Entfernen des
Pakets entfernt werden.
Beispiel: *=-PATH

Dienste
Bei der Deinstallation der Anwendung sollten die installierten Dienste gestoppt und entfernt werden.

ODBC
Die msi des Herstellers kann ohne Änderungen belassen werden.

Benutzerdefinierte Aktionen
Es sollte keine zusätzliche Custom Action verwendet werden. Alle erforderlichen erweiterten Aktionen sollten über die Deploy.xml implementiert
werden.

Sicherheitsberechtigungen
Zugriffsrechte müssen für die lokale Benutzergruppe gesetzt werden (wenn nicht anders in der Installationsdokumentation beschrieben).
Die Zugriffsrechte für Dateien, Ordner, Registrierungsschlüssel und Dienste (falls erforderlich) werden durch Anweisungen in der Datei
deploy.xml gesetzt, die nach der Installation ausgeführt werden. Es sollten die Dienstprogramme SECEDIT oder icacls verwendet werden.
In Ausnahmefällen kann die Tabelle LockPermissions, MsiLockPermissionsEx in der Hersteller-MSI belassen werden. Dies sollte in der
Paketdokumentation vermerkt werden.

Shortcuts
Die Shortcuts werden zusätzlich im  Abschnitt aufgezeichnet, so dass es möglich ist, sie auf ein anderes System zu exportieren

Spezielle Richtlinien
  1.   ProductCode sollte niemals geändert werden
  2.   LaunchConditions werden immer entfernt
  3.   Allgemeine Manipulationen werden immer im MST durchgeführt
  4.   Dynamische Manipulationen (Servernamen, Serienschlüssel) werden in der Deploy.xml vorgenommen

Paketvalidierung
Bei der MSI-Validierung wird die Konsistenz und referenzielle Integrität der MSI-Dateidatenbank überprüft. Dies geschieht mit sogenannten ICE-
Tests (Internal Consistency Evaluators). Die Standard-Validierung mit der "Full MSI Validation Suite" muss verwendet werden. ICE-Fehler in der
"Vendor MSI" können ignoriert werden. Fehler von 3rd Party Merge Modules oder die von zertifizierten Merge Modules stammen, können
ebenfalls ignoriert werden. Alle "Warnings"-Meldungen können ignoriert werden.

Snapshot erstellen (als MSI)
Übersicht
MSI Snapshots werden nur erstellt, wenn der Hersteller keine qualitativ genügende Installationssource zur Verfügung stellt. Für das Erstellen
dieser Pakete gibt es diverse kommerzielle Produkte.

Installationsablauf
Die MSI Snapshot Installation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Deinstallationsablauf
Die MSI Snapshot Deinstallation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

 Snapshot erstellen (als MSI)                                                                                                   Page 13 of 24
08.02.2022 02:55:54

Generell sollten alle Ressourcen, die bei der Installation installiert wurden, bei der Deinstallation entfernt werden. Dies ist das
Standardverhalten der MSI-Technologie. Die Ausnahmen sind Dateien, die über Komponenten installiert wurden, die mit anderen installierten
Paketen geteilt werden.
Dateien und INI-Einträge, die nach der Installation der Software erstellt wurden, werden bei der Deinstallation standardmäßig nicht entfernt. Der
Anwendungsordner verbleibt auf dem Computer mit einigen angelegten Inhalten. Er sollte vom Packager erkannt und korrigiert werden.
Benutzerspezifische Dateien und Registry-Einträge sollten nicht gelöscht werden.

Reparaturablauf
Die MSI Snapshot Reparatur ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Summen-Informationsstrom
Titel = Installationsdatenbank
Autor = ClueBiz
Betreff = Paketname
Kommentare = leer gelassen
Stichwörter = Installieren,MSI
Plattform = Intel oder x64

Installationsverzeichnis
Standardmäßig wird das Installationsverzeichnis der Herstelleranwendungen verwendet. Wenn nichts anderes angegeben ist, sollten alle
Anwendungen unter dem Verzeichnis "%ProgramFiles%" oder "%ProgramFiles(x86)%" installiert werden. Gemeinsam genutzte Dateien werden
unter "%CommonProgramFiles%", "%ALLUSERPROFILE%", "%CommonProgramFiles(x86)%" installiert. Abweichungen sollten im
Installationsdokument des Pakets definiert werden.

Shortcuts
Standardspeicherort der Anwendungsverknüpfungen ist der vom Software-Setup-Programm vorgeschlagene Ordner. Es sollten die Namen der
Verknüpfungen des Herstellers verwendet werden. Allgemeine Regeln können vom Anwendungsbesitzer bei der Paketbestellung geändert
werden. Die folgenden Verknüpfungen sollten bei der Setup-Erfassung ausgeschlossen werden: Desktop-Verknüpfungen, Schnellstart, Online-
Updates, Online-Registrierung, andere Internet-Verknüpfungen, Online-Hilfe, Versionshinweise, Deinstallations-Verknüpfungen, ReadMe-
Verknüpfungen.
Verknüpfungen zu Hilfedateien sollten nur entfernt werden, wenn die Ziel-Hilfedatei aus der Anwendung heraus gestartet werden kann (z. B.
durch Drücken von F1). Alle Verknüpfungen sollten ausgeschrieben werden, außer Verknüpfungen zu einem Ordner und Verknüpfungen zu einer
externen Datei.

Properties
ALLUSERS                          1                           Installation pro Maschine unter Verwendung von Ordnern im Profil "Alle
                                                              Benutzer".
ARPNOMODIFY                       1                           Deaktiviert die Änderungsfunktionalität in ARP
ARPPRODUCTICON                    file.ico                    Eintrag aus Icon-Tabelle
LIMITUI                           1                           Die Ebene der Benutzeroberfläche (UI), die bei der Installation des Pakets
                                                              verwendet wird, ist auf Basic beschränkt
Hersteller                                                    Name des Herstellers der Anwendung ODER Wenn der Hersteller unbekannt ist,
                                                              setzen Sie den Wert = ClueBiz
MSIDISABLERMRESTART               1                           Windows Restart Manager: Die Eigenschaft wird ignoriert, wenn der Neustart-
                                                              Manager nicht verfügbar oder deaktiviert ist.
MSIRESTARTMANAGERCONTROL Deaktivieren                         Windows-Neustart-Manager: Deaktiviert den Neustart-Manager
MSIRMSHUTDOWN                     2                           Windows Restart Manager: Die Eigenschaft wird ignoriert, wenn der Neustart-
                                                              Manager nicht verfügbar oder deaktiviert ist.
Produktname                                                   Name der Anwendung entsprechend dem Eintrag im ARP
ProduktVersion                                                Version der Anwendung im ARP
REBOOT                            ReallySuppress              Unterdrückt alle Reboots und Reboot-Aufforderungen, die durch ForceReboot
                                                              während der Installation ausgelöst werden.
ROOTDRIVE                         C:\                         Legt das Standardlaufwerk für das Zielverzeichnis der Installation fest.

Features

 Snapshot erstellen (als MSI)                                                                                                   Page 14 of 24
08.02.2022 02:55:54

Enthält das Installationspaket eine benutzerspezifische Konfiguration, die beim Start der Anwendung von einem MSI-Einstiegspunkt ausgeführt
werden soll, sollte diese mit allen relevanten Anzeigen im Feature "UserPart" hinzugefügt werden. "UserPart" sollte das übergeordnete Feature
des Hauptfeatures der Anwendung sein Begründung: Bei sehr großen Anwendungen trägt diese Strukturierung zu einer wesentlich schnelleren
Umsetzung der Konfiguration bei.

Feature                           UserPart
Feature_Parent
Title                             Benutzerteil
Description
Display                           0
Level                             1
Directory_
Attributes                        32

Das Hauptmerkmal sollte wie folgt ausgefüllt werden:

Feature                           Produktname ohne Leerzeichen und Punkte
Feature_Parent                    UserPart
Title                             Produktname ohne Leerzeichen und Punkte
Description
Display                           0
Level                             1
Directory_
Attributes                        32

Components
Komponenten, die Dateien vom Typ DLL, OCX, EXE, SYS, TLB, CHM in die Systemordner wie system32 oder %CommonProgramFiles% installieren,
sollten die Option "Always increment shared .DLL count" haben (Attributwert der Komponente = 8 oder höher).
Alle Komponenten, außer "CreateFolder", "INIFiles" und "RemoveFiles", müssen einen Keypath haben.
Wenn eine Komponente eine DLL-, OCX-, EXE-, SYS- oder TLB-Datei enthält, muss diese Datei ein Schlüsselpfad der Komponente sein. Diese
Komponenten dürfen nicht mehr als eine Datei enthalten.
Wenn INI- oder Registry-Einträge für eine DLL-, OCX-, SYS- oder TLB-Datei benötigt werden, sollten diese Einträge und die Datei in derselben
Komponente gespeichert werden.
Kennzeichnen Sie Komponenten für 64Bit-Anteile korrekt (Attribut 256 + zusätzlich z.B. 8).
Kleinbuchstaben in der GUID sind nicht erlaubt. Für eine neue Komponente muss eine neue GUID erzeugt werden.
Pro-Maschine- und Pro-Benutzer-Daten in der gleichen Komponente sind verboten.
Leere Komponenten müssen aus dem Paket entfernt werden.

Current User Entries
Wenn ein Paket Current-User-Einträge enthält, stellen Sie sicher, dass diese Einträge wirklich notwendig sind. Wenn nicht, können sie aus dem
Paket entfernt werden. Wenn möglich, sollten alle Pro-Benutzer-Daten zu der Komponente namens CurrentUser gehören. Der Schlüsselpfad für
eine Pro-Benutzer-Komponente muss ein Registry-Eintrag unter HKCU sein, der für jedes Paket eindeutig ist (z. B. Verwendung von
PackageCode), um die Funktionalität der Selbstreparatur zu gewährleisten.
Beispiel für einen Dummy-Schlüssel:

Root Schlüssel Name     Wert
1 SOFTWARE [Hersteller] [Produktname] Paketcode AktuellerBenutzer [Produktcode]

ActiveSetup
Im Falle von nicht beworbenen Verknüpfungen oder wenn die Daten pro Benutzer aktualisiert werden müssen und mit Standard-MSI-Mitteln nicht
korrekt aktualisiert werden können, muss ein Active Setup in das Paket aufgenommen werden. Hier kann der -Abschnitt verwendet werden, der
automatisch eine "ActiveSetup.vbs" im Hauptverzeichnis des Programms anlegt, die direkt bei der Installation für alle angemeldeten Benutzer
ausgeführt wird, aber auch bei allen nachfolgenden Anmeldungen über die ActiveSetup.vbs angestoßen wird.

Dateien

 Snapshot erstellen (als MSI)                                                                                                 Page 15 of 24
08.02.2022 02:55:54

Alle *.log, uninstall* update* Dateien sollten aus dem Paket entfernt werden. Auch alle Verweise auf die entfernten Dateien in der Registry und
der Shortcut-Tabelle sollten entfernt werden.

Media/CABs
Es sollte eine einzelne externe CAB-Datei verwendet werden. Die externe CAB sollte den Namen .cab tragen.

INI-Dateien
INI-Dateien sollten über die Tabelle "IniFile" installiert werden. Wenn eine Datei jedoch eine INI-Erweiterung und eine falsche interne Struktur
hat, sollte die Datei direkt über die Tabelle File installiert werden. In Ausnahmefällen: Wenn die Reihenfolge der INI-Dateieinträge relevant ist
und der IniFile-Tabellenmechanismus von MSI ungeeignete Ergebnisse liefert, ist es zulässig, INI-Dateien durch die gleichzeitige Verwendung
von MSI-Datei-Tabelle und IniFile-Tabelle zu installieren. Wenn INI-Dateieinträge für DLL-, OCX-, SYS- oder TLB-Dateien erforderlich sind, sollten
diese Einträge und die Datei in derselben Komponente gespeichert werden. Festcodierte Werte werden durch Eigenschaften ersetzt.
Benutzerdefinierte Eigenschaften werden dem Paket hinzugefügt (um Hardcodes zu ersetzen usw.).

Register
Alle Registry-Einträge sollten über die Registry-Tabelle installiert werden. Die Ausnahme sind die Registry-Einträge, die unter
HKEY_CLASSES_ROOT über die Tabelle Class, ProgId, Extension etc. installiert werden können. Die Verwendung der TypeLib-Tabelle wird nicht
empfohlen. Alle HKCR\CLSID-, HKCR\TypeLib-, HKCR\Interface-Einträge sollten zu dem entsprechenden DLL/OCX-Komponentennamen gehören.
Stellen Sie sicher, dass die Registrierungsschlüssel für die 64Bit-Registrierungsstruktur unter Verwendung einer 64Bit-Komponente installiert
werden. Andernfalls werden sie in die 32Bit-Registrierungsstruktur installiert. Die Schlüssel sind auf hart kodierte Einträge zu untersuchen, z. B.:
Rechnernamen, IP-Adressen, Portnummern usw. Diese Einträge sollten durch MSI-Eigenschaften ersetzt werden. Die Verwendung der SelfReg-
Tabelle im Setup-Capture ist verboten.

Dateizuordnungen
Die Zuordnung von Dateierweiterungen muss über den MSI-Standardmechanismus (Erweiterungstabelle) erfolgen. Entsprechende Einträge in der
Registry-Tabelle müssen entfernt werden.

Umgebungsvariablen
Werte übernehmen, wenn Umgebungsvariable bereits vorhanden. Bei der Installation angelegte Umgebungsvariable muss beim Entfernen des
Pakets entfernt werden.
Beispiel: *=Pfad

Dienste
Die Installation von Diensten sollte über die entsprechenden Tabellen (ServiceControl und ServiceInstall) und nicht direkt über die Registry-
Einstellungen erfolgen. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services sollte nur dann geändert werden, wenn die Anwendung
Dienstparameter benötigt, die nicht mit den MSI-Dienstetabellen selbst ausgeliefert werden. Während der Deinstallation der Anwendung sollten
die installierten Dienste gestoppt und entfernt werden. ODBC ODBC-Einträge sollten über die entsprechenden Tabellen installiert werden und
nicht über die direkte Installation der Registry-Einstellungen. ODBC-Einträge für 64Bit müssen über die Komponenteneigenschaften markiert
werden. Ansonsten werden die ODBC-Einträge stattdessen in 32Bit geschrieben. Es ist auch erlaubt, ODBC-Einträge über die Registry-Tabelle zu
installieren.

Benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen können nur in Ausnahmefällen verwendet werden. Alle benötigten erweiterten Aktionen sollten über die Deploy.xml
implementiert werden.

Sicherheitsberechtigungen
Zugriffsberechtigungen für Dateien, Ordner, Registrierungsschlüssel und Dienste (falls erforderlich) werden durch Anweisungen in der
deploy.xml festgelegt, die nach der Installation ausgeführt werden. Es sollten die Dienstprogramme SECEDIT oder icacls verwendet werden.
LockPermissions, MsiLockPermissionsEx Tabelle sind verboten.

Paketüberprüfung
Bei der MSI-Validierung wird die Konsistenz und referenzielle Integrität der MSI-Dateidatenbank überprüft. Dies geschieht mit sogenannten ICE-
Tests (Internal Consistency Evaluators).

 Snapshot erstellen (als MSI)                                                                                                      Page 16 of 24
08.02.2022 02:55:54

Die Standardvalidierung mit der "Full MSI Validation Suite" muss verwendet werden. Die Validierung sollte mit der "Full Windows Validation
Suite" durchgeführt werden (alle ICE-Tests sollten ausgeführt werden), es sollten keine ERRORS in der MSI-Datei vorhanden sein und es sollten
nur bestimmte Warnungen erlaubt sein.
Nachfolgend finden Sie eine Liste der erlaubten Fehler/Warnungen in einer ICE-Validierung:
ICE03 (Fehler): Nur Fehler, die "String-Überlauf (größer als die erlaubte Länge in der Spalte)" anzeigen.
ICE33 (Warnung)
ICE48 (Warnung)
ICE49 (Warnung)
ICE51 (Warnung)
ICE60 (Warnung)
ICE90 (Warnung)
ICE91 (Warnung)

Konvertierung zu App-V
Übersicht
App-V Pakete werden auf Wunsch für den Kunden erstellt, wenn er diese Technologie im Einsatz hat. App-V Pakete sind speziell geeignet für
parallele Installationen und eine fehlerfreie Installation/Deinstallation.
Da App-V Pakete komplett neu erstellt werden, erlischt aber in den meisten Fällen der Support vom Hersteller.
Microsoft Application Virtualization (App-V) ist eine Anwendungsvirtualisierungslösung von Microsoft. Sie hilft Unternehmen, ihren
Endanwendern den Zugriff auf praktisch jede Anwendung an jedem Ort zu ermöglichen, ohne Anwendungen direkt auf dem Computer zu
installieren.
Durch den Einsatz der App-V-Technologie können technische Abteilungen die Softwarebereitstellung und präzise Verteilung für eine stabile und
produktive Benutzerumgebung effektiv verwalten.
Was ist der Zweck der Virtualisierung?
Sie bietet die Agilität, Skalierbarkeit und Kosteneinsparung, die in den heutigen Geschäftsszenarien erforderlich sind. Sie reduziert:
-Ausfallzeiten der Infrastruktur.
-Spart Zeit und Ressourcen, die für die Bereitstellung von Betriebssystemen für Benutzer aufgewendet werden.
-Spart Zeit für die Fehlersuche bei Anwendungsinstallationen.
-Mehrere Versionen der gleichen Anwendung können auf dem gleichen Rechner bereitgestellt werden.
App-V-Pakete werden bei Bedarf für den Kunden erstellt, wenn er diese Technologie im Einsatz hat. App-V-Pakete eignen sich besonders für
parallele Installationen und eine fehlerfreie Installation/Deinstallation.

Technische Referenzen
https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/appv-v5/technical-reference-for-app-v-51
http://download.microsoft.com/download/F/7/8/F784A197-73BE-48FF-83DA-4102C05A6D44/App-V%205.0%20Sequencing%20Guide.docx

Erstellung
App-V Pakete werden über Root Packages automatisch erstellt. Das Verfahren ist untenstehende beschrieben:
   1. Die Hersteller-Sourcen müssen entweder als msi, zip oder exe bereit stehen
   2. Die Hersteller-Sourcen müssen temporär lokal entpackt werden, bei MSI ist das eine Administrative installation, bei exe kann das
      entweder über Parameter oder über 7Zip erreicht werden. Im schlechtesten Fall müssen die Sourcen über eine physikalische Installation
      entpackt werden.
   3. Es muss ein Folder-Mapping erstellt werden, wo werden die entpackten Verzeichnisse später im App-V erscheinen (z.B. PFiles\Firefox ->
      [ProgramFilesX64]\Firefox
   4. Shortcuts und Anpassungen müssen im Root Paket vorhanden sein
   5. Extensions, ProgID und Verbs müssen im Root Paket manuell erfasst oder über ein MSI importiert werden
   6. Die Paketierung passiert danach vollautomatisch über den Roboter

In Ausnahmefällen kann eine Applikation auch über den Sequencer von Microsoft erstellt werden, bevorzugt wird aber das automatisierte
Verfahren, da es erheblich schneller geht und keine Restspuren von der Sequencing Maschine enthält.

 Konvertierung zu App-V                                                                                                       Page 17 of 24
08.02.2022 02:55:54

Installationsablauf
Die App-V Installation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Deinstallationsablauf
Die App-V Deinstallation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Reparatursablauf
Die App-V Reparatur ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Shortcuts
Die Shortcuts werden direkt und automatisiert aus dem .manifest file entpackt

Verteilmechanismen
Microsoft Streaming Server
Pakete werden erst beim Aufruf "gestreamt", nur Dateien, welche wirklich benutzt werden, werden kopiert.

Local Installation
Die Software kann über das Deliveries_Setup.exe direkt auf dem Gerät installiert werden

Kompatibilität
Nicht alle Anwendungen können sequenziert werden, da es Einschränkungen bei App-V gibt:

Einschränkung                                              Beschreibung
Anwendungen, die Dienste beim Booten starten               App-V erfordert einen angemeldeten Benutzer, um den Start einer Anwendung zu
                                                           initiieren.
                                                           App-V kann Treiber nicht virtualisieren. Es ist möglich, dieses Problem zu umgehen
                                                           und den Treiber lokal auf dem Zielcomputer zu installieren. Dazu gehören Antiviren-
Anwendungen, die Gerätetreiber benötigen                   Software, VPN-Clients, Personal Firewalls und Dienstprogramme zum Einhängen von
                                                           Festplatten und Volumes. Einige Benutzermodus-Gerätetreiber können virtualisiert
                                                           werden.
Anwendungen, die Teil des Betriebssystems sind             Zum Beispiel der Internet Explorer
Anwendungen, die COM+ verwenden                            Da COM+ dynamisch ist und zur Laufzeit geschieht, gibt es keine Möglichkeit für den
                                                           Sequencer, diese Informationen zu erfassen.
COM-DLL-Surrogat-Virtualisierung                           Zum Beispiel DLLs, die in Dllhost.exe laufen

Anwendungsgruppen, VBScripts, Updates, PVAD
Das Hauptverzeichnis der Applikation wird als "Opaque" markiert, damit wird sichergestellt, dass kein Konflikt mit einer physikalischen
Installation auf dem Hostsystem entsteht
Full Access auf VFS wird nur auf Bedarf aktiviert
PVAD wird nicht benutzt

Konvertierung zu MSIX
Übersicht
MSIX ist ein Paketformat für Windows-Apps, das eine moderne Verpackungsoberfläche für alle Windows-App zur Verfügung stellt. Beim MSIX-
Paket wird die Funktionalität von vorhandenen App-Paketen und/oder Installationsdateien beibehalten, und es werden neue, moderne
Verpackungs- und Bereitstellungsfeatures für Win32-, WPF- und Windows Forms-Apps ermöglicht. MSIX ermöglicht es Unternehmen, auf dem
neuesten Stand zu bleiben und sicherzustellen, dass ihre Anwendungen immer auf dem neuesten Stand sind. Es ermöglicht es IT-Experten und

 Konvertierung zu MSIX                                                                                                          Page 18 of 24
08.02.2022 02:55:54

Entwicklern, eine benutzerorientierte Lösung bereitzustellen und gleichzeitig die Gesamtbetriebskosten der Anwendung durch die Reduzierung
der Notwendigkeit einer erneuten Verpackung zu senken.

Referenzen
https://docs.microsoft.com/en-us/windows/msix/
https://store.rg-adguard.net/

Erstellung
MSIX Pakete werden über Root Packages automatisch erstellt. Das Verfahren ist untenstehende beschrieben:
   1. Die Hersteller-Sourcen müssen entweder als msi, zip oder exe bereit stehen
   2. Die Hersteller-Sourcen müssen temporär lokal entpackt werden, bei MSI ist das eine Administrative installation, bei exe kann das
      entweder über Parameter oder über 7Zip erreicht werden. Im schlechtesten Fall müssen die Sourcen über eine physikalische Installation
      entpackt werden.
   3. Es muss ein Folder-Mapping erstellt werden, wo werden die entpackten Verzeichnisse später im App-V erscheinen (z.B. PFiles\Firefox ->
      [ProgramFilesX64]\Firefox
   4. Shortcuts und Anpassungen müssen im Root Paket vorhanden sein
   5. Extensions, ProgID und Verbs müssen im Root Paket manuell erfasst oder über ein MSI importiert werden
   6. Die Paketierung passiert danach vollautomatisch über den Roboter

In Ausnahmefällen kann eine Applikation auch über den Sequencer von Microsoft erstellt werden, bevorzugt wird aber das automatisierte
Verfahren, da es erheblich schneller geht und keine Restspuren von der Sequencing Maschine enthält. Die erstellte AppV-Datei kann danach
durch den Roboter in ein MSIX konvertiert werden.

Installationsablauf
Die MSIX Installation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Deinstallationsablauf
Die MSIX Deinstallation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Reparaturablauf
Die MSIX Reparatur ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Kompatibilität
Es gelten die gleichen Einschränkungen wie bei App-V, zusätzlich aber noch weitere:
   1. Falls die Applikation administrative Rechte benötigt, kann Sie nicht als MSIX bereitgestellt werden
   2. Es kann nur ein Shortcut erstellt werden

Verteilung
MSI-X Update Mechanismus
Bei jedem Aufruf der Software wird auf dem Webserver überprüft, ob bereits eine neue Version vorhanden ist. Das Update wird automatisch
heruntergeladen und installiert.

Local Installation
Die Software kann über das Deliveries_Setup.exe direkt auf dem Gerät installiert werden

Konvertierung zu PSFX
Übersicht

 Konvertierung zu PSFX                                                                                                       Page 19 of 24
08.02.2022 02:55:54

Das PSFX Framework von Cluebiz ist eine Erweiterung zu bestehenden MSIX-Paketen.
Mögliche Einsatzgebiete sind:
        Treiber
        Services
        Ganze Native-Installationen wie VPN-Softwares

Download
https://productive.cluebiz.ch/fragments2/CluebizData/clients/e2ef5b9c-2757-4399-94b3-9042134c3284/msix/256b7e9d-dade-483b-a224-
37bcf938b109-x64-MUI-1.1.0.0.msix

Anwendung
   1. Erstellen Sie im Root Ihres MSIX-Paketes ein Verzeichnis "externalscripts"
   2. Erstellen Sie nun ein powershell "install.ps1" in diesem Verzeichnis
   3. Fügen Sie den gewünschten Code in Ihr Powershell, dieser wird später mit erhöhten Rechten durch den Service ausserhalb des Containers
      ausgeführt
   4. Erstellen Sie ausserdem ein "uninstall.ps1", wenn Sie die Komponenten wieder entfernen möchten

Auführung
   1.   Installieren Sie den PSFX Service
   2.   Installieren Sie danach Ihr MSIX-Paket
   3.   Es wird automatisch ein Verzeichnis c:\ProgramData\PSFXService\%paketname% angelegt
   4.   Die Datei install.ps1 wird automatisch von c:\ProgramData\PSFXService\%packagename% ausgeführt
   5.   Überprüfen Sie das Verzeichnis "%TEMP%" nach einer Log-Datei
   6.   Deinstallieren Sie nun Ihr MSIX-Paket
   7.   Die Datei uninstall.ps1 wird automatisch von c:\ProgramData\PSFXService\%packagename% ausgeführt
   8.   Das Verzeichnis c:\ProgramData\PSFXService\%packagename% wird gelöscht

Docker Snapshot erstellen
Übersicht
Docker ist ein Open Source-Projekt zur Automatisierung der Bereitstellung von Apps als mobile, eigenständige Container, die in der Cloud oder
lokal ausgeführt werden können. Docker ist darüber hinaus ein Unternehmen, das diese Technologie fördert und weiterentwickelt und mit Cloud-
, Linux- und Windows-Anbietern zusammenarbeitet, einschließlich Microsoft.

Referenzen
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/container-docker-introduction/

Erstellung
https://blog.sixeyed.com/how-to-dockerize-windows-applications/

Installationsablauf
Die Docker Installation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Deinstallationsablauf
Die Docker Deinstallation ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

Reparaturablauf
Die Docker Reparatur ist ein standartisierter Ablauf, der keine spezielle Anpassung benötigt.

 Docker Snapshot erstellen                                                                                                  Page 20 of 24
Sie können auch lesen