Vor allem im Corporate IT Umfeld ist es eine bekannte Gewohnheit gewisse „spezielle“ Verzeichnisse (Special Folders) via Group Policy auf Netzlaufwerke auszulagern (Folder Redirection). Einige Beispiele hierfür sind:
MSI Property | Bezeichnung | Standardeinstellung englisches Windows XP |
Beispiel Redirection Pfad |
AppDataFolder | Application Data | C:Documents and SettingsUSERNAMEApplication Data | myserveruserhomes$USERNAMEApplication Data |
PersonalFolder | My Documents | C:Documents and SettingsUSERNAMEMy Documents | myserveruserhomes$USERNAMEMy Documents |
Diese werden dann je nach verwendeter Architektur mittels Offline-Folders Mechanismus mit dem Client synchronisiert.
Der Windows Installer mag diese Gegebenheit vom Design her nicht, insbesondere wenn diese Lokationen nicht zur Verfügung stehen.
Der Windows Installer initiiert nämlich während der CostFinalize Aktion die gesamte Directory Tabelle und überprüft dabei die Verfügbarkeit sämtlicher dieser Verzeichnisse, d.h ob sie existieren, beschreibar sind etc.
Ein praxisbezogenes Beispiel: Ein Notebook Benutzer ruft im Hotel zum ersten mal den VPN Client auf, welches ein Self-Repair verursacht damit die Benutzerkonfiguration per-User installiert wird.
Während dieses Self-Healings (gilt auch für ActiveSetup oder Repair) wird diese Überprüfung der „umgeleiteten“ Lokationen in einem Fehler enden, da er nicht auf das Netzlaufwerk zugreifen kann und somit diese “special folders” überprüfen kann. Folgende Fehlermeldung erscheint:
Das Programm lässt sich dann überhaupt nicht mehr über die advertised Shortcuts aufstarten.
Lösung
Falls die „Special Folders“ nicht dringend benötigt werden, also z.B keine Dateien in diesen Ordnern platziert werden müssen, sollte man diese aus der Directory Table löschen.
Der Windows Installer wird dann beim Self-Healing/Active Setup nicht mehr versuchen diese zu überprüfen.
Fabio Di Lorenzo
Member of the Ontrex SPA Team