Auf Windows 64-bit werden einige Dateien und Ordner vom Explorer aber nicht vom Total Commander angezeigt!: Unterschied zwischen den Versionen

Aus TCWikide
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= 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ächs…“)
 
K (<BR> am Ende jedes Abschnittes entfernt, ist sinnfrei.)
 
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Hinweis =
Wenn man mit einer 64-bit Windows Version arbeitet, dann zeigt der [http://www.ghisler.com/deutsch.htm Total Commander] für einige Ordner möglicherweise einen anderen Ordnerinhalt an, als der Windows Explorer. Diese Seite beschreibt, warum dies so ist und wie man das Problem lösen kann.


Tut mir leid, aber heute Nacht werde ich es nicht mehr schaffen, den englisch-sprachigen Artikel zu übersetzen.
= Details zum Problem =
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.


[http://www.ghisler.ch/wiki/index.php/Some_Files_and_Folders_Shown_by_Windows_Explorer_Are_Not_Shown_by_Total_Commander! Some Files and Folders Shown by Windows Explorer Are Not Shown by Total Commander!]
== Betroffene Windows Versionen ==
 
Das skizzierte Problem läßt sich beobachten auf folgenden Windows Versionen:
 
* Windows XP 64-bit
* Windows 2003 64-bit
* Windows Vista 64-bit
* Windows Server 2008 64-bit
* Windows 7 64-bit
 
 
== 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: ''<br>
'''''%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 64-bit Windows. Total Commander hingegen ist auch in der aktuellen Version eine 32-bit Applikation.
 
Eine kurze Beschreibung, wie 32-bit Applikationen auf 64-bit Windows Versionen betrieben werden, kann man in den folgenden (englischsprachigen) Microsoft Artikeln nachlesen:
 
* [http://msdn.microsoft.com/en-us/library/aa384249(VS.85).aspx Running 32-bit Applications]
* [http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx File System Redirector]
 
(Da es keine offizielle deutsche Übersetzung gibt, gibt es hier stattdessen eine etwas ausführlichere ''Interpretation'': [[WoW64 automatische Ordnerumleitung]])
 
Wie die Microsoft Artikel erläutern, ''leiten'' Windows 64-bit Versionen jede Anfrage, die durch ein 32-bit Programm wie z.B. Total Commander gestellt wird, um auf '''%windir%\system32''' zuzugreifen, auf den Ordner '''%windir%\SysWOW64''' um. Das 32-bit 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:''''' <br>
''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 32-bit 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 64-bit und Windows 2003 64-bit wird auch
* %windir%\system32\driverstore
nicht umgeleitet.<br>
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 64-bit, hat Microsoft selbst eine Möglichkeit eingebaut, um die automatische Datei- und Ordnerumleitung zu umgehen. Dieses Hintertürchen steht nur 32-bit Applikationen zur Verfügung, und zwar wenn sie auf
* Windows Server 2008 64-bit
* Windows 7 64-bit
* Windows Vista 64-bit
* Windows 2003 64-bit mit installiertem [http://support.microsoft.com/kb/942589/de Hotfix KB942589]
* Windows XP 64-bit  mit installiertem [http://support.microsoft.com/kb/942589/de Hotfix KB942589]
betrieben werden.
 
Auf den angegebenen Windows Versionen gibt es einen unsichtbaren Aliasnamen '''SysNative''' für den echten '''system32''' Ordner. Nur 32-bit Applikationen können diesen Aliasnamen '''SysNative''' benutzen. Wenn eine 32-bit 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.<br>
 
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'''. <br>
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 64-bit
* Windows 7 64-bit
* Windows Vista 64-bit.
'''SysNative''' funktioniert ebenfalls, vorausgesetzt man benutzt Total Commander v7.50a oder höher, unter
* Windows 2003 64-bit mit installiertem [http://support.microsoft.com/kb/942589/de Hotfix KB942589]
* Windows XP 64-bit  mit installiertem [http://support.microsoft.com/kb/942589/de Hotfix KB942589]
 
 
== 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:'''<br>
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 64-bit DLLs an Stelle der 32-bit 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 64-bit
* Windows 2003 64-bit
* Windows Vista 64-bit
* Windows Server 2008 64-bit
* Windows 7 64-bit
 
 
== Durch den Einsatz symbolischer Links ==
 
Eine weitere Möglichkeit, die automatische Datei- und Ordnerumleitung zu umgehen, der Microsoft jede 32-bit Applikation unterwirft, die auf einem 64-bit Windows betrieben wird, besteht darin, mittels '''symbolischer Links''' auf die echten Ordner zuzugreifen.
 
Wenn eine 32-bit Applikation über einen symbolischen Link auf den Ordner %windir%\system32 zugreift, so wird in diesem Fall die automatische Ordnerumleitung nicht aktiv, und die 32-bit Applikation wird nicht nach %windir%\SysWOW64 umgeleitet.
 
Darum können Benutzer z.B. [http://technet.microsoft.com/de-de/sysinternals/bb896768.aspx Sysinternals junction] verwenden und einen symbolischen Link im Ordner ''%windir%'' namens ''sl_system32'' anlegen, der auf den echten Ordner ''system32'' zeigt.<br>
 
Damit kann man ab sofort im Total Commander nach '''%windir%''' => ''sl_system32'' navigieren. Damit gelangt man in den echten Ordner '''%windir%\system32''' folder. <br>
Navigiert man hingegen nach '''%windir%''' => '''system32''', löst das die Wow64 Datie- und Ordnerumleitung aus, und man landet stattdessen in '''%windir%''' => '''SysWoW64'''.
 
'''Warnung:'''<br>
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 64-bit
* Windows 2003 64-bit
* Windows Vista 64-bit
* Windows Server 2008 64-bit
* Windows 7 64-bit
 
 
= Weitere Informationsquellen =
 
== Total Commander Forum ==
 
Dieses Problem wurde vielfach berichtet und ausgiebig diskutiert im offiziellen [http://www.ghisler.ch/board/index.php?language=german Total Commander Forum]. Benutze die Forumssuche und suche nach den Begriffen
* '''X64DisableRedirection''' und
* '''SysNative''' und
* '''system32\drivers\etc '''
Man sollte eine Liste von rund 60 verschiedenen Threads erhalten, ungefähr die Hälfte davon wiederum in deutscher Sprache.
<br>
'''Hinweis:'''<br>
Man sollte 3 Suchdurchläufe starten, für jeden Suchbegriff einen, wenn man die Vorgabeoption der Forumssuche benutzt '''Nach allen Wörtern suchen''', weil kaum ein Thread alle 3 Suchbegriffe enthält
 
 
== Benutzte Microsoft Artikel ==
 
* [http://msdn.microsoft.com/en-us/library/aa384249(VS.85).aspx Running 32-bit Applications (engl.)]
* [http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx File System Redirector (engl.)]
* [http://support.microsoft.com/kb/942589/de Eine 32-Bit-Anwendung kann nicht im Ordner system32 auf einem Computer zuzugreifen, auf dem eine 64-Bit-Version von Windows Server 2003 oder Windows XP ausgeführt wird]
* [http://support.microsoft.com/default.aspx/kb/896456/de Übersicht über Kompatibilitätsfragen für 32-Bit-Programme unter 64-Bit-Versionen von Windows Server 2003 und Windows XP]
 
----<BR>Zurück zur [[FAQ Probleme|Bekannte Probleme und Inkompatibilitäten]]<BR>
[[Kategorie:FAQ|FAQ]]
[[en:Some Files and Folders Shown by Windows Explorer Are Not Shown by Total Commander!]]

Aktuelle Version vom 10. März 2010, 22:55 Uhr

Wenn man mit einer 64-bit Windows Version arbeitet, dann zeigt der Total Commander für einige Ordner möglicherweise einen anderen Ordnerinhalt an, als der Windows Explorer. Diese Seite beschreibt, warum dies so ist und wie man das Problem lösen kann.

Details zum Problem

Betroffene Windows Versionen

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

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


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 64-bit Windows. Total Commander hingegen ist auch in der aktuellen Version eine 32-bit Applikation.

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

(Da es keine offizielle deutsche Übersetzung gibt, gibt es hier stattdessen eine etwas ausführlichere Interpretation: WoW64 automatische Ordnerumleitung)

Wie die Microsoft Artikel erläutern, leiten Windows 64-bit Versionen jede Anfrage, die durch ein 32-bit Programm wie z.B. Total Commander gestellt wird, um auf %windir%\system32 zuzugreifen, auf den Ordner %windir%\SysWOW64 um. Das 32-bit 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 32-bit 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 64-bit und Windows 2003 64-bit 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 64-bit, hat Microsoft selbst eine Möglichkeit eingebaut, um die automatische Datei- und Ordnerumleitung zu umgehen. Dieses Hintertürchen steht nur 32-bit Applikationen zur Verfügung, und zwar wenn sie auf

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

betrieben werden.

Auf den angegebenen Windows Versionen gibt es einen unsichtbaren Aliasnamen SysNative für den echten system32 Ordner. Nur 32-bit Applikationen können diesen Aliasnamen SysNative benutzen. Wenn eine 32-bit 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 64-bit
  • Windows 7 64-bit
  • Windows Vista 64-bit.

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 64-bit DLLs an Stelle der 32-bit 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 64-bit
  • Windows 2003 64-bit
  • Windows Vista 64-bit
  • Windows Server 2008 64-bit
  • Windows 7 64-bit


Durch den Einsatz symbolischer Links

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

Wenn eine 32-bit Applikation über einen symbolischen Link auf den Ordner %windir%\system32 zugreift, so wird in diesem Fall die automatische Ordnerumleitung nicht aktiv, und die 32-bit 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 64-bit
  • Windows 2003 64-bit
  • Windows Vista 64-bit
  • Windows Server 2008 64-bit
  • Windows 7 64-bit


Weitere Informationsquellen

Total Commander Forum

Dieses Problem wurde vielfach berichtet und ausgiebig diskutiert im offiziellen Total Commander Forum. Benutze die Forumssuche und suche nach den Begriffen

  • X64DisableRedirection und
  • SysNative und
  • system32\drivers\etc

Man sollte eine Liste von rund 60 verschiedenen Threads erhalten, ungefähr die Hälfte davon wiederum in deutscher Sprache.
Hinweis:
Man sollte 3 Suchdurchläufe starten, für jeden Suchbegriff einen, wenn man die Vorgabeoption der Forumssuche benutzt Nach allen Wörtern suchen, weil kaum ein Thread alle 3 Suchbegriffe enthält


Benutzte Microsoft Artikel



Zurück zur Bekannte Probleme und Inkompatibilitäten