Monthly Archive for May, 2009

Einfacher Weg zum LocalLow Verzeichnis

Mit der Einführung der Integrity Access Level (IL) Funktionalität unter Windows Vista und Windows 7, wurde ein neues Verzeichnis, das LocalLow Verzeichnis eingeführt.

Das LocalLow Verzeichnis wir für Prozesse verwendet, die als Low-Level Prozess ausgeübt werden. In der Regel betrifft dies Prozesse, welche unter dem Internet Explorer Prozess gestartet werden, wie das Apple Quicktime Plugin oder Sun Java Runtime Environment. Diese Prozesse können nur noch Dateien in diesem Ordner schreiben oder modifzieren.

Wird eine Applikation repaketiert, welche in diesem Ordner eine Datei erstellt, dann wird schnell klar, dass der Windows Installer Dienst dieses neue Verzeichnis nicht auflöst. Eigentlich gehört das LocalLow Verzeichnis wie die restlichen ‘Special-Folders’ aufgelöst. Das neue Verzeichnis jedoch ist weder in MSI 4.0, 4.5 noch 5.0 Bestandteil der Directory Tabelle.

Es gibt hierzu eine einfache Lösung, wenn Wise Package Studio 7 SP3 oder höher eingesetzt wird. Ab dieser Version von Wise Package Studio wird mit der CustiomAction WiseSetProfilesFolder das Root-Verzeichnis des aktuellen Benutzers aufgelöst (ebenfalls eine Schwachstelle des Windows Installer Dienstes). Aufbauend auf diesem Verzeichnis (ProfileFolder) kann nun mit zwei Einträgen in die Directory Tabelle das LocalLow Verzeichnis dynamisch aufgelöst werden.

 Das LocalLow Verzeichnis

Stefan Hotan
Member of the Ontrex SPA Team

Windows Installer Error 1941

Mit der Einführung von Windows 7 kann über die MsiLockPermissionsExTabelle eine erweiterte Rechtevergabe auf Sicherheitsobjekte verwendet werden.

Diese Funktion macht auf den ersten Blick die Erstellung von Custom Actions für die Rechtevergabe, wie dies sich in den Jahren eingebürgert hat, überflüssig.

Jedoch kann die MsiLockPermissionsEx Tabelle erst ab Windows 7 verwendet werden. Bei älteren Betriebssystemen von Microsoft muss nach wie vor mit einer Custom Action die Rechte-Vergabe durchgeführt werden.

Der Einsatz beider Tabellen ist zu vermieden. Obwohl unter Windows XP oder Windows Vista von der LockPermissions Tabelle weiterhin gebrauch gemacht werden kann, wird es zu einem Windows Installer Error 1941 kommen, sobald eine MSI Installation mit beiden LockPermissions Tabellen unter Windows 7 eingesetzt wird.

Windows Installer Error 1941

Um eine MSI Installation auf Windows XP, Windows Vista und Windows 7 ohne Probleme mit erweiterten Rechtevergabe ausüben zu können, empfehlen wir nur die MsiLockPermissionsEx Tabelle zu verwenden. Für ältere Betriebsysteme ist nach wie vor eine CustomAction zu verwenden, welche anhand einer entsprechenden Kondition nicht unter Windows 7 ausgeführt wird.

Stefan Hotan
Member of the Ontrex SPA Team