Auf Windows 64-bit werden einige Dateien und Ordner vom Explorer aber nicht vom Total Commander angezeigt!

Aus TCWikide
Zur Navigation springen Zur Suche springen

Problem

Der Windows Explorer zeigt eine Reihe von Dateien und Ordnern in seinem Dateipanel an. Der Total Commander hingegen listet gar keine oder wenigstens nicht alle diese Dateien und Ordner auf. Oder der Total Commander und der Explorer zeigen abweichende Dateigrößen für anscheinend die gleichen Dateien an.

Dies trifft zu, obwohl sowohl der Explorer, als auch der Total Commander so eingestellt worden sind, dass sie beide alle Dateien und Ordnern anzeigen, auch wenn diese die Attribute "versteckt" und "System" besitzen.


Betroffene Windows Versionen: 64bit

Das skizzierte Problem läßt sich beobachten auf folgenden Windows Versionen:

  • Windows XP 64bit
  • Windows 2003 64bit
  • Windows Vista 64bit
  • Windows Server 2008 64bit
  • Windows 7 64bit


Betroffene Dateien und Ordner

Dieses Problem betrifft Dateien und Ordner, die im Ordner %windir%\system32 oder in Unterordnern von %windir%\system32 gespeichert sind. Eine Datei, für die dieses Problem häufig berichtet wird, ist die Datei hosts, genauer %windir%\system32\drivers\etc\hosts.

Hinweis:
%windir% ist eine Variable, die den echten Pfad des Windows Ordners beinhaltet. Meistens wird %windir% daher gleichbedeutend sein mit C:\Windows.


Was verursacht dieses Problem?

Deine Windows Version ist ein 64bit Windows. Total Commander hingegen ist auch in der aktuellen Version eine 32bit Applikation.

Eine kurze Beschreibung, wie 32bit Applikationen auf 64bit Windows Versionen betrieben werden, kann man in den folgenden (englischsprachigen) Microsoft Artikeln nachlesen:

Wie die Microsoft Artikel erläutern, leiten Windows 64bit Versionen jede Anfrage, die durch ein 32bit Programm wie z.B. Total Commander gestellt wird, um auf %windir%\system32 zuzugreifen, auf den Ordner %windir%\SysWOW64 um. Das 32bit Programm jedoch wird glauben, es sehe tatsächlich den Ordner %windir%\system32.

Dabei ist es natürlich so, dass %windir%\system32 und %windir%\SYSWOW64 keineswegs dieselben Unterordner und die selben Dateien enthalten.

Nicht vergessen:
Wenn man navigiert nach %windir% => system32, wird damit die Wow64 Ordner- und Dateiumleitung aktiv, und in Wirklichkeit leitet einen diese um nach %windir% => SysWoW64, immer vorausgesetzt man benutzt Total Commander oder eine andere 32bit Applikation.

Ausnahmen von der Umleitungsregel

Eine kleine Zahl von Ordnern unterliegt nicht der Umleitung in den %windir%\SysWOW64 Ordnerbaum:

  • %windir%\system32\catroot
  • %windir%\system32\catroot2
  • %windir%\system32\drivers\etc
  • %windir%\system32\logfiles
  • %windir%\system32\spool

Unter Windows XP 64bit und Windows 2003 64bit wird auch

  • %windir%\system32\driverstore

nicht umgeleitet.
Dies trifft allerdings nur zu, wenn man die genannten Ordner direkt in einem Schritt ansteuert, indem man die kompletten Pfadnamen angibt.

Wenn man hingegen navigiert von %windir% nach system32, dann z.B. nach catroot, dann hat die automatische Ordnerumleitung bereits zugeschlagen, als man versucht hat, system32 anzusteuern. In diesem Moment ist Total Commander bereits nach SysWOW64 umgeleitet worden. Daher kann man von hieraus nicht mehr in den echten catroot Ordner weiternavigieren.

Lösung

Durch Verwendung des unsichtbaren Aliasnamen SYSNATIVE

Ab Vista 64bit, hat Microsoft selbst eine Möglichkeit eingebaut, um die automatische Datei- und Ordnerumleitung zu umgehen. Dieses Hintertürchen steht nur 32bit Applikationen zur Verfügung, und zwar wenn sie auf

  • Windows Server 2008 64bit
  • Windows 7 64bit
  • Windows Vista 64bit
  • Windows 2003 64bit mit installiertem Hotfix KB942589
  • Windows XP 64bit mit installiertem Hotfix KB942589

betrieben werden.

Auf den angegebenen Windows Versionen gibt es einen unsichtbaren Aliasnamen SysNative für den echten system32 Ordner. Nur 32bit Applikationen können diesen Aliasnamen SysNative benutzen. Wenn eine 32bit Applikation verlangt, auf %windir%\Sysnative zuzugreifen, dann wird sie nicht umgeleitet nach SysWOW64, sondern sie gelangt in den echten %windir%system32 Ordner.

Der empfohlene Weg, um auf den echten Ordner system32 zuzugreifen, ist es, dazu den Aliasnamen SysNative zu benutzen.

Deshalb zeigen Total Commander 7.50 und neuer den unsichtbaren Aliasnamen Sysnative im Ordner %windir% ganz so an, als handle es sich um einen (fast) normalen Ordner. Das macht die Verwendung von SysNative sehr einfach.

Darum navigiert man im Total Commander nach %windir% => Sysnative. Damit gelangt man tatsächlich in den echten Ordner %windir%\system32.
Navigiert man hingegen nach %windir% => system32, löst das die Wow64 Datei- und Ordnerumleitung aus, und man navigiert stattdessen nach %windir% => SysWoW64.

SysNative läßt sich einfach so benutzen, vorausgesetzt man benutzt Total Commander v7.50a oder höher, unter

  • Windows Server 2008 64bit
  • Windows 7 64bit
  • Windows Vista 64bit.

SysNative funktioniert ebenfalls, vorausgesetzt man benutzt Total Commander v7.50a oder höher, unter


Durch (vorübergehende) Verwendung von X64DisableRedirection

Ab der Version 7.0 kennt der Total Commander einen Konfigurationsparameter X64DisableRedirection. Der Vorgabewert dieses Parameters ist 0, d.h. die Windows Datei- und Ordnerumleitung ist nicht deaktviert (=eingeschaltet). Man kann jedoch den Parameter X64DisableRedirection=1 im Abschnitt [Configuration] hinzufügen und damit die Windows Datei- und Ordnerumleitung für den Total Commander abschalten.

Warnhinweis:
Wenn man das dauerhaft tut, dann wird dies unweigerlich zu Problemen mit Plugins führen, die nun fälschlicherweise versuchen, DLLs aus dem echten Ordner system32 zu laden und somit 64bit DLLs an Stelle der 32bit DLLs, welche in SysWOW64 liegen.

Drum, wenn man die Windows Datei- und Ordnerumleitung schon abschalten will oder muß, dann sollte man dies lieber nur vorübergehend tun, indem man dazu den Total Commander internen Befehl cm_SwitchX64Redirection verwendet. Diesen internen Total Commander Befehl gibt es ab der Version 7.50.

Deaktivieren/Reaktivieren der X64 Datei- und Ordnerumleitung funktioniert mit Total Commander v7.0 oder neuer auf

  • Windows XP 64bit
  • Windows 2003 64bit
  • Windows Vista 64bit
  • Windows Server 2008 64bit
  • Windows 7 64bit


Durch den Einsatz symbolischer Links

Eine weitere Möglichkeit, die automatische Datei- und Ordnerumleitung zu umgehen, der Microsoft jede 32bit Applikation unterwirft, die auf einem 64bit Windows betrieben wird, besteht darin, mittels symbolischer Links auf die echten Ordner zuzugreifen.

Wenn eine 32bit Applikation über einen symbolischen Link auf den Ordner %windir%\system32 zugreift, so wird in diesem Fall die automatische Ordnerumleitung nicht aktiv, und die 32bit Applikation wird nicht nach %windir%\SysWOW64 umgeleitet.

Darum können Benutzer z.B. Sysinternals junction verwenden und einen symbolischen Link im Ordner %windir% namens sl_system32 anlegen, der auf den echten Ordner system32 zeigt.

Damit kann man ab sofort im Total Commander nach %windir% => sl_system32 navigieren. Damit gelangt man in den echten Ordner %windir%\system32 folder.
Navigiert man hingegen nach %windir% => system32, löst das die Wow64 Datie- und Ordnerumleitung aus, und man landet stattdessen in %windir% => SysWoW64.

Warnung:
Auf Windows Versionen vor Vista löscht der Explorer den Inhalt des Zielordnerns, wenn man lediglich versucht, den symbolischen Link wieder zu entfernen. Alte Explorer können symbolische Links nicht vom Zielordner unterscheiden. Total Commander hingegen kann symbolische Links sehr wohl von dem Ordner unterscheiden, auf den der Link zielt.

Das beschriebene Problem mittels symbolischer Links zu umgehen, funktioniert auf

  • Windows XP 64bit
  • Windows 2003 64bit
  • Windows Vista 64bit
  • Windows Server 2008 64bit
  • Windows 7 64bit



... Übersetzung in Arbeit ....

Hinweis

Tut mir leid, aber heute Nacht werde ich es nicht mehr schaffen, den englisch-sprachigen Artikel zu übersetzen. Darum wird an dieser Stelle zunächst nur auf den englisch-sprachigen Artikel verlinkt. Übersetzung erfolgt, sobald ich Zeit finde, oder jemand anderes Lust hat, das zu tun.

Some Files and Folders Shown by Windows Explorer Are Not Shown by Total Commander!




Zurück zur Bekannte Probleme und Inkompatibilitäten