Übung Nr.2

 

In unserer zweiten Übung, benutzen wir das SWV Admin Tool zum Erstellen eines virtuellen Software-Archivs (.xpf Datei) für das pdf2cad MSI-Paket. pdf2cad ist eine kleine Anwendung, die ein Standard PDF-Dokument in ein CAD-Objekt konvertiert. Dieses MSI Installation erfordert einen Neustart am Ende der Installation, daher werden wir die gängigsten Möglichkeiten rund um die Handhabung eines Neustarts bei einer Schichterstellung betrachten und sie während dieser Paketierung entsprechend anwenden.  Gerade weil dies eine MSI-Datei ist, die wir versuchen werden als SWV Paket zu erstellen, wollen wir sichergehen, dass wir der in der Praxis am üblichsten Methode der Installation von non-advertised-Verknüpfungen folgen, nehmen wir diese in unsere Schicht auf. Dies geht entgegen der von der MSI installierten advertised-Verknüpfungen.

 

  • 1.   Als erstes erstellen wir einen Mitschnitt der MSI Installation mit Hilfe des SWV Admin Tools.

  • 2.  Nach dem Sarten von SWV Admin klicken sie Datei -> Schicht erstellen

  • 3.   Stellen sie sicher, dass der Radiobutton „Anwendung installieren“ markiert ist und klicken sie „Next“.

  • 4.   Für den Schichtnamen geben sie pdf2cad ein und klicken sie „Next“.

  • 5.   Im Unterschied zur Übung 1 werden wir die Befehlszeile für pdf2cad direkt angeben. Außerdem wollen wir dieses Paket zum „Streaming“ vorbereiten, indem wir eine spezielle Befehlszeile zur Deaktivierung der "Advertised-Shortcuts" anlegen.

    Tippen sie bitte folgendes ein:
    a)    Programmname:    C:\Windows\System32\msiexec.exe
    b)    Paramter:        /i „<Pfad zur MSI Installationsdatei>\pdf2cad 6.8.msi“ DISABLEADVTSHORTCUTS=1

 

  • 6.   Drücken sie auf „Next“ und dann „Finish“ um den Mitschnitt der Installation zu starten.

  • 7.   Übernehmen sie während der pdf2cad-Installation alle Standard-Einstellungen und drücken sie „Finish“ im letzten Dialogfenster.
  • 8.   Nach Abschluß der Installation werden sie gefragt ob sie einen Neustart durchführen wollen.
    Im folgenden ist es wichtig diese Neustart-Anfrage richtig im Sinne des Virtualisierungsvorgang zu behandeln um alle Informationen und Daten korrekt im Read-Only Layer zu sichern.
    Zunächst ist es wichtig den Neustart abzubrechen, also "nein" zu sagen.


  • 9.   Anschließend muß die Schicht deaktiviert werden, damit sie weiter bearbeitet werden kann.


    Üblicheerweise gibt es 4 Gründe, warum eine Installation einen Neustart verlangt:

 

a)    Die Installation hat einen Treiber installiert, der beim Systemstart in den Speicher geschrieben werden muss.


b)    Die Installation hat versucht Dateien zu überschreiben, die aber zur Laufzeit in Benutzung waren.
Da SWV während einer Installation neue Dateien in eine leere Schicht schreibt (installation redirection), kann es theoretisch nicht passieren, dass eine Datei überschrieben werden soll, die gerade in Verwendung ist. Dies kann also in unserem Beispiel nicht der Grund für die Notwendigkeit eines Rechnerneustarts sein.

c)    Der Entwickler der Installation hat vielleicht entschieden, dass es einfacher wäre einige Dinge, wie z.B. den Start von Diensten, durch einen erzwungenen Neustart am Ende der Installation durchzuführen. SWV kann mit pre-activation-Ereignisse, wie z.B. das Hochfahren von Diensten oder das Ausführen von „Run“ und/Oder „RunOnce“ Ereignissen umgehen (diese Aktionen werden entsprechend vor einer Layer-Aktivierung durchgeführt), insofern sind solche Umstände kein Grund einen Rechnerneustart durchzuführen.

d)    Manchmal sind Installationen so angelegt, dass einige Programm-Konfigurationen oder andere Installationsarbeiten erst nach einem Rechnereboot durchgeführt werden.

Dies ist eine Option die wir nachfolgend analysieren werden.

Die zwei gebräuchlichsten Methoden um eine Nachinstallation anzustoßen sind das Anlegen eines „RunOnce“ Registry-Keys oder das Erstellen einer entsprechenden Verknüpfung im Autostart-Ordner. Wir werden also nachfolgend die entsprechenden Stellen in der Schicht auf entsprechende Ereignisse überprüfen.

 

 

  • 10.   Doppelklicken sie im SWV Admin-Tool auf die pdf2cad Schicht um den Schicht zu bearbeiten.
    Hier suchen wir zuerst im Startmenu/Autostart-Ordner nach Einträgen, die nach einem Neustart aufgerufen werden.
    Expandieren sie den System-Knoten unter „pdf2cad (Read-only)“. Markieren sie den [COMMONSTARTUP]-Ordner. Dies ist der AllUsers Autostart-Ordner. Auf der rechten Seite können sie sehen, dass der Ordner leer ist. Jetzt expandieren wir den benutzerspezifischen Knoten, und dort den USER_TEMPLATE Knoten. Markieren sie den [STARTUP]-Ordner. Auch dieser Ordner ist leer.

 

  • 11.   Als nächstes untersuchen wir die Schicht hinsichtlich RunOnce-Key Einträgen.
    Alle Befehle die in diesem Schlüssel gelistet sind, würden bei einem Neustart ausgeführt werden, was wir aber unterdrücken wollen.

    Als erstes klicken sie auf den Registry-Reiter, so dass wir alle Registry-Einträge unserer Schicht sehen können.
    Expandieren sie unter „pdf2cad (Read-only)“ den HKEY_LOCAL_MACHINE Knoten und folgen ihm bis zu folgendem Schlüssel: SOFTWARE/Microsoft/Windows/CurrentVersion/RunOnce. Auf der rechten Seite sehen sie, dass es tatsächlich einen eingetragenen Registryschlüssel in unserer pdf2cad-Schicht gibt!

 

  • 12.   Was wir als nächstes machen werden ist diese Kommandozeile aus dem RunOnce-Registry-Key zu kopieren, den Schlüssel zu löschen und die Kommandozeile so auszuführen, dass damit die read-only-Schicht aktualisiert wird. Dies ist ein wichtiger Schritt!

    Würden wir den RunOnce-Eintrag in der Schicht belassen, würde SWV den Befehl bei der Aktivierung auf der Zielmaschine sicherlich ausführen, das Ergebnis aber würde in den writabel-Layer  geschrieben werden, bei einem Layer-Reset würden diese Ändeurngen aber verloren gehen! Wir müssen also dafür sorgen, daß die entsprechendenÄnderungen in der Read-Only Layer geschrieben wwerden.

    Dazu kopieren den Inhalt des entsprechenden Registryeintrags in die Zwischenablage:„%systemroot%\system32\pdf2cad_config.exe“. Anschließend löschen wir den RunOnce RegKey aus der Schicht.

 

  • 13.   Schließen sie alle noch offenen Reiter.
    Klicken Sie auf Datei -> Bestehende Schicht aktualisieren.

 

  • 14.   Markieren sie die pdf2cad Schicht und klicken sie „Next“.

 

  • 15.   Da sich die Datei, die ausgeführt werden soll, im (!) Layer befindet, ist diese nur sichtbar und damit erreichbar und ausführbar, wenn der Layer aktiv ist. Der Anwendungs-Layer wird automatisch aktiviert, wenn wir in den Modus „Bestehende Schicht aktualisieren“ gehen. Wie schon in Übung 1 gesehen geben sie C:\Windows\System32\cmd.exe in das „Programmname“-Feld ein oder durchsuchen sie ihren Computer danach. Klicken sie dann auf „Next“ und „Finish“.

 

  • 16.   Alles was jetzt aus der Konsole heraus ausgeführt wird, bzw. alle entsprechend verursachten Systemänderungen, werden in die read-only-Sektion unseres pdf2cad Layers geschrieben. Fügen sie also die Kommandozeile „%systemroot%\system32\pdf2cad_config.exe“ in das Konsolen-Fenster ein und drücken sie Enter. Es sollte sich ein weiteres Konsolenfenster öffen und schließen, die "Nachinstallation" ist damit abgeschlossen.

    Sie können das ursprüngliche Konsolen-Fenster nun schließen um den Mitschneide-Prozess zu beenden.

 

  • 17.   Nachdem wir nun erfolgreich eine neue Anwendungsschicht für "pdf2cad" erstellt und dabei das Neustart-Szenario kennengelern haben, können wir die pdf2cad-Verknüpfung auf dem Desktop ausführen und damit die Anwendung starten um sicherzustellen, dass die Applikation korrekt funktioniert.

 

  • 18.   Deaktivieren sie die pdf2cad-Schicht und sie können beobachten wie das Applikations-Icon vom Desktop verschwindet.

 

<< Übung 1 | >> Übung 3



-->