AW: [Sammelthread] Anwendungskompatibilität unter Vista
Meiner Meinung nach ist das alles schön und gut. Jedoch sollte noch eine weitere Abstufung eingeführt werden (kompatibel/inkompatibel oder so).
Bekanntermaßen besitzt Vista ja UAC. Deshalb ist es umso wichtiger, das Anwendungen nur noch dort Dateien schreiben (vornehmlich Einstellungsdateien), wo es ihnen auch erlaubt ist, also entweder irgendwo im Benutzerkontenverzeichnis oder im "All Users"-Verzeichnis. Gleiches gilt für die Registry. Anwendungen dürfen prinzipiell nicht schreibend auf den Zweig HKLM zugreifen, wenn sie nicht mit Administratorrechten laufen.
Damit auch alle Anwendungen funktionieren, die nicht artig sind, indem sie z.B. Konfigurationsdateien im Programmverzeichnis ablegen, hat Microsoft ein temporäres System eingeführt - den VirtualStore. Unter USERDIR\AppData\Local findet sich ein Unterordner "VirtualStore" wieder, in welchen alle nicht erlaubten Schreibzugriffe umgeleitet werden.
Nehmen wir mal den Texteditor UltraEdit in der 12.20er Version als Beispiel. Angenommen ich editiere damit die Datei C:\Windows\Datei.ini und speichere die Änderungen ab... UltraEdit speichert die Änderungen nun scheinbar auch ab, jedoch bleibt die Originaldatei C:\Windows\Datei.ini unagetastet, da ich als Benutzer (der keine UAC-Kontrolle durchlaufen hat durch einen Klick auf Fortsetzen) trotz Adminrechten keine Berechtigung habe, Dateien ausserhalb meines Benutzerverzeichnisses zu modifizieren. Vista geht nun also hin und legt im VirtualStore eine Kopie der Datei C:\Windows\Datei.ini an inkl. der von mir getätigten Änderungen. Öffne ich nun die Datei c:\Windows\Datei.ini, stellt Vista fest, das in meinem VirtualStore eine Datei.ini lagert und zeigt mir diese an, anstatt der Originalen. Meldet sich nun aber ein anderer Benutzer an, so sieht der die Änderungen an der Datei nicht, weil er ja keine veränderte Version in seinem VirtualStore liegen hat.
Ergo -> UltraEdit LÄUFT zwar, aber die Dateiveränderung wurde virtualisiert!
Die durch diese Virtualisierung entstehenden Probleme hat MS auch in der KB beschrieben:
http://support.microsoft.com/kb/927387/de
Es sollte also für jede Anwendung zumindest nach der Verwendung mal der VirtualStore auf Veränderungen geprüft werden. Wenn hier Dateien abgelegt worden sind (also im Verzeichniss %userdir%\AppData\Local\VirtualStore), so sollte das angemerkt werden. Denn wenn Microsoft diese temporäre Lösung irgendwann mal deaktiviert (das ist ernsthaft angedacht), dann werden aus allen laufenden Anwendungen nicht-laufende Anwendungen.