Inkompatible Anwendung unter Windows 7 zum Laufen bringen
Auf seinem Blog „Semantic Consonance“ demonstriert Chris Jackson anhand des Microsoft-Tools „Time Zone“ exemplarisch, wie eine inkompatible Anwendung unter Windows 7 doch noch zum Laufen gebracht werden kann. Das .NET-1.1-Programm gibt unter Windows 7 lediglich die Fehlermeldung „Object reference not set to an instance of an object“ aus und bricht ab.
Fehlerursache geänderte Registry-Struktur
Mit Hilfe eines Debuggers ermittelt Jackson, dass das Programm versucht, ausgehend vom Registry-Schlüssel HKLM\Software\Microsoft\Windows NT\CurrentVersion\Time Zones den Wert Index aus jedem Unterschlüssel zu lesen. Diesen Wert gibt es unter Vista, Server 2008 und Windows 7 nicht mehr, wie die Microsoft Knowledgebase verrät. Time Zone kann damit nicht umgehen und stürzt ab.
Lösung durch Registry-Virtualisierung
Zunächst exportiert man HKLM\Software\Microsoft\Windows NT\CurrentVersion\Time Zones aus einer vorhandenen XP- oder Server-2003-Installation. Per Suchen und Ersetzen im Texteditor ändert man nun alle Schlüsselnamen so um, dass sie auf den VirtualStore zeigen, also alle HKEY_LOCAL_MACHINE in HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE. Nach dem Import des Registry-Auszugs unter Windows 7 befindet sich die Struktur dann also unter
HKCU\Software\Classes\VirtualStore\MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones.
Mittels des Compatibility Administrator aus den Microsoft Application Compatibility Toolkit 5.5 versieht man danach TimeZone.exe mit dem Compatibility Fix VirtualRegistry. Wichtig ist, den Fix mit dem Parameter
ADDREDIRECT(HKLM\SOFTWARE\Microsoft\Windows%20NT\CurrentVersion\Time%20Zones^HKCU\SOFTWARE\Classes\VirtualStore\MACHINE\Software\Microsoft\Windows%20NT\CurrentVersion\Time%20Zones)
zu verwenden. Anderenfalls würden die Registry-Zugriffe nicht umgeleitet, da der Zweig HKLM\Software\Microsoft\Windows NT davon normalerweise ausgenommen ist.
Anmerkung: Da man den Speicherort des virtualisierten Registry-Zweiges hier manuell vorgibt, müsste sich dieser nicht zwangsläufig im VirtualStore befinden, sondern könnte überall sein. Es dient aber der Übersichtlichkeit, ihn ohne Grund nicht zu verändern.
Ähnliche Beiträge:
- Windows-7-Migration: Kompatibilität auch bei App-V prüfen
- Internet Explorer 6 nach Migration auf Windows 7 weiternutzen
- Intel migriert auf Windows 7: Erfahrungen mit der Kompatibilität von Anwendungen
- Kompatibilitäts-Tools: Quest kauft ChangeBASE, Citrix AppDNA
- Gartner: Anteil von Windows 7 steigt auf 42%, Mac OS legt zu




Keine Kommentare
Kommentar hinzufügen