Sichtbarkeit von Dateien in Win7-64
Moderators: Hacker, Stefan2, white
Sichtbarkeit von Dateien in Win7-64
Kein Aufschrei "schon wieder!" bitteschön - ich habe mich, wenn auch erfolglos, damit beschäftigt - konnte aber immerhin meine "hosts" verändern.
Doch ich habe weitere Fragen dazu.
In Windows7-64Bit können von manchen Dateimanagern -in unserem Fall dem Totalcommander- Dateien aus dem \system32\ nicht gefunden werden.
Der Grund dafür wurde mir in diesem Thread erläutert:
http://www.ghisler.ch/board/viewtopic.php?t=25468&sid=a083bc7c113635d0cd420f43145aa712
Nun habe ich dazu diesen Satz gefunden:
"Die werden ausschließlich dann gefunden, wenn die x64-Redirection ausgeschaltet ist".
Ganz abgesehen davon, das ich mir darunter trotz der Suche
http://www.google.de/#hl=de&source=hp&q=x64-Redirection&btnG=Google-Suche&meta=cr%3DcountryDE&aq=f&oq=&fp=bb0f8312a7be4d4c
nichts vorstellen kann - wieso wird dann das bislang Fehlende (in meinem Falle suchte ich die "hosts") plötzlich sichtbar, wenn man einen Ordner "C:\Windows\Sysnative" erzeugt?
Und wieso ist dieser Ordner 2GB groß - die Gesamtgröße der Systempartition blieb aber gleich?
Und wenn ich in diesem neuen Ordner nun etwas ändere -eben zB die hosts- wird da die originale hosts direkt mit verändert?
Ich habe keine Vorstellung, wie ich mir das vorstellen muß. (absichtlich so ausgedrückt)
Und weiterhin kann ich mir absolut nicht erklären, warum bei unserem TCMD, auf den ich sehr, sehr große Stücke halte, solche Umleitungen gefahren werden müssen?
Gründe dafür müssen vorhanden sein - ich möchte sie gerne wenigstens oberflächlich kennen.
Kann mir das sozusagen "populärwissenschaftlich" erklärt werden?
Jürgen
Doch ich habe weitere Fragen dazu.
In Windows7-64Bit können von manchen Dateimanagern -in unserem Fall dem Totalcommander- Dateien aus dem \system32\ nicht gefunden werden.
Der Grund dafür wurde mir in diesem Thread erläutert:
http://www.ghisler.ch/board/viewtopic.php?t=25468&sid=a083bc7c113635d0cd420f43145aa712
Nun habe ich dazu diesen Satz gefunden:
"Die werden ausschließlich dann gefunden, wenn die x64-Redirection ausgeschaltet ist".
Ganz abgesehen davon, das ich mir darunter trotz der Suche
http://www.google.de/#hl=de&source=hp&q=x64-Redirection&btnG=Google-Suche&meta=cr%3DcountryDE&aq=f&oq=&fp=bb0f8312a7be4d4c
nichts vorstellen kann - wieso wird dann das bislang Fehlende (in meinem Falle suchte ich die "hosts") plötzlich sichtbar, wenn man einen Ordner "C:\Windows\Sysnative" erzeugt?
Und wieso ist dieser Ordner 2GB groß - die Gesamtgröße der Systempartition blieb aber gleich?
Und wenn ich in diesem neuen Ordner nun etwas ändere -eben zB die hosts- wird da die originale hosts direkt mit verändert?
Ich habe keine Vorstellung, wie ich mir das vorstellen muß. (absichtlich so ausgedrückt)
Und weiterhin kann ich mir absolut nicht erklären, warum bei unserem TCMD, auf den ich sehr, sehr große Stücke halte, solche Umleitungen gefahren werden müssen?
Gründe dafür müssen vorhanden sein - ich möchte sie gerne wenigstens oberflächlich kennen.
Kann mir das sozusagen "populärwissenschaftlich" erklärt werden?
Jürgen
Re: Sichtbarkeit von Dateien in Win7-64
Hallo, Jürgen.
Man legt den Ordner "sysnative" nicht selbst an. Vielmehr gibt es seit Vista 64bit, also auch unter Window 7 64bit, einen Aliasnamen "sysnative". Dieser Aliasname zeigt auf den echten C:\Windows\system32 Ordner.
Dieser Aliasname wird freiwillig von Windows nicht angezeigt. Man muß ihn einfach kennen und kann ihn dann benutzen.
Übrigens können nur 32bit Programme wie Total Commander diesen Aliasnamen benutzen.
Wenn ein 32bit Programm auf C:\Windows\Sysnative zugreift, bekommt es den echten C:\windows\System32 Ordner zu sehen und alles was drin enthalten ist, also auch C:\windows\System32\drivers\etc\hosts.
Einige Dateien und Ordner werden vom Windows Explorer aber nicht vom Total Commander angezeigt!
Mit freudlichen Grüßen
Karl
Werimmer das geschrieben hat, hat möglicherweise zum damaligen Zeitpunkt nicht völlig falsch gelegen. Mittlerweile sollte der Einsatz des T.C. Parameters X64DisableRedirection=1 nicht mehr erforderlich sein."Die werden ausschließlich dann gefunden, wenn die x64-Redirection ausgeschaltet ist".
Da liegt ein Mißverständnis vor:nichts vorstellen kann - wieso wird dann das bislang Fehlende (in meinem Falle suchte ich die "hosts") plötzlich sichtbar, wenn man einen Ordner "C:\Windows\Sysnative" erzeugt?
Man legt den Ordner "sysnative" nicht selbst an. Vielmehr gibt es seit Vista 64bit, also auch unter Window 7 64bit, einen Aliasnamen "sysnative". Dieser Aliasname zeigt auf den echten C:\Windows\system32 Ordner.
Dieser Aliasname wird freiwillig von Windows nicht angezeigt. Man muß ihn einfach kennen und kann ihn dann benutzen.
Übrigens können nur 32bit Programme wie Total Commander diesen Aliasnamen benutzen.
Wenn ein 32bit Programm auf C:\Windows\Sysnative zugreift, bekommt es den echten C:\windows\System32 Ordner zu sehen und alles was drin enthalten ist, also auch C:\windows\System32\drivers\etc\hosts.
C:\windows\Sysnative\drivers\etc\hosts ist die echte und normalerweise auch einzige C:\windows\System32\drivers\etc\hosts Datei. Antwort also: ja.Und wenn ich in diesem neuen Ordner nun etwas ändere -eben zB die hosts- wird da die originale hosts direkt mit verändert?
Es ist die Art und Weise, wie auf 64bit Windows 32bit Programme behandelt werden, die dazu führen, das 32bit Programme Klimmzüge machen müssen.Ich habe keine Vorstellung, [...] warum bei unserem TCMD, [...] , solche Umleitungen gefahren werden müssen?
Vielleicht ist dieser Total Commander WIKI Artikel halbwegs verständlich geschrieben:Kann mir das sozusagen "populärwissenschaftlich" erklärt werden?
Einige Dateien und Ordner werden vom Windows Explorer aber nicht vom Total Commander angezeigt!
Mit freudlichen Grüßen
Karl
Last edited by karlchen on 2010-02-27, 12:38 UTC, edited 1 time in total.
Das war deutlich und korrekt erklärt - ich habs begriffen.
Ich bedanke mich ganz herzlich dafür.
Und weiß nun auch, weshalb ich plötzlich 2 "sysnative" mit gleichem Inhalt in Windows hatte - einer kleingeschrieben, einer groß.
Und keiner ließ sich löschen...
Aber ich hatte mir ja zuvor ein Image erstellt.
Noch einmal: Vielen Dank!
Jürgen
Ich bedanke mich ganz herzlich dafür.
Und weiß nun auch, weshalb ich plötzlich 2 "sysnative" mit gleichem Inhalt in Windows hatte - einer kleingeschrieben, einer groß.
Und keiner ließ sich löschen...
Aber ich hatte mir ja zuvor ein Image erstellt.
Noch einmal: Vielen Dank!
Jürgen
Hallo, Jürgen.
Unter Windows 64bit leben ja echte 64bit Programme und 32bit Programme zusammen.
64bit Programme brauchen echte 64bit DLLs. 32bit Programme brauchen 32bit DLLs.
Die 64bit und die 32bit DLLs heißen oft genau gleich, dürfen sich aber niemals in die Quere kommen. Man muß sie also sauber trennen und in verschiedenen Ordnerbäumen ablegen.
Der Ordner C:\Windows\System32 und seine Unterordner enthält bei 64bit Windows Versionen witzigerweise die 64bit DLLs, Treiber und Executables (ausführbare Dateien).
Der Ordner C:\Windows\SysWow64 und seine Unterordner enthält bei 64bit Windows Versionen die 32bit DLLs, Treiber und Executables (ausführbare Dateien).
Darum sind beide Ordnerbäume so gleich aufgebaut und enthalten soviele gleichnamige Dateien. Allerdings sind es einmal die 64bit Versionen und einmal die 32bit Versionen. Die Dateigrößen werden i.d.R. auch nicht übereinstimmen.
Grüße,
Karl
<-----Etwas wortreiche Hintergrundinformation----->
Falls es von Interesse ist, hier noch eine etwas detailliertere Erklärung, was Microsoft da so verbrochen hat:
Microsoft hatte folgende geniale Idee:
Wir benutzen für die 64bit Teile vom 64bit Windows den alten Ordnernamen C:\windows\system32 weiter und legen dort 64bit DLLs, Treiber und Executables (ausführbare Dateien) ab.
Für die 32bit Programme erfinden wir als Ersatz C:\windows\SysWOW64 (Windows auf Windows 64) und legen dort 32bit DLLs, Treiber und und Executables (ausführbare Dateien) ab.
Jetzt hatte Microsoft ein kleines Problem:
64bit Programme suchen DLLs in C:\windows\system32. Aber auch 32bit Programme suchen DLLs in C:\windows\System32. Dort liegen aber schon gleichnamige 64bit DLLs, die die 32 bit Programme auf keinen Fall benutzen können.
Und nun kommt die automatische Ordnerumleitung ins Spiel:
Wenn ein 32bit Programm DLLs, Treiber oder Executables aus C:\Windows\System32 anfragt, dann sucht 64bit Windows diese Dateien stattdessen in C:\Windows\SysWow64.
Es erzählt dem 32bit Programm jedoch, es habe die Dateien aus C:\Windows\System32 geholt.
Wenn ein 32bit Programm in den Ordner C:\Windows\System32 wechseln will, dann schickt das 64bit Windows das 32bit Programm stattdessen in den Ordner C:\Windows\SysWow64.
Es erzählt dem 32bit Programm jedoch, es stehe jetzt im Pfad C:\windows\system32. Und so wird das 32bit Programm es auch anzeigen.
Im Klartext:
Das 64bit Windows belügt das 32bit Programm über manche Ordnernamen.
Deshalb wird ein 32bit Programm in C:\windows\system32 und darunter die gleichen Dateien und Ordner finden wie in C:\Windows\sysWow64, weil es in Wirklichkeit immer nach C:\Windows\SysWow64 geschickt wird.
Das Hintertürchen:
Irgendwann ist auch Microsoft das Licht aufgegangen, dass es Gelegenheiten gibt, in denen 32bit Programme den echten Ordner C:\windows\system32 und seine Dateien und Unterordner sehen und darauf zugreifen müssen. (Z.B. Datei Manager beim Kopieren, Verschieben, Ordnerinhalt einfach auflisten)
Da ist Microsoft auf die Idee verfallen: Wir stellen 32bit Programmen einfach einen unsichtbaren Aliasnamen sysnative zur Verfügung. Wenn ein 32bit Programm nun verlangt, Zugang zu bekommen auf C:\windows\system32, indem es dessen Aliasnamen sysnative benutzt, also C:\Windows\Sysnative, dann wird es nicht nach C:\Windows\SysWow64 umgeleitet und darüber belogen. Dann darf es in den echten Ordner C:\Windows\System32.
Geniale Konstruktion, das Ganze, gelle?
Hinweis:
Man hätte das ganze Gehampel vermeiden können, wenn man bei der Erfindung des 64bit Windows sich entschieden hätte, 64bit DLLs, Treiber und ausführbare Dateien in C:\Windows\System64 und Unterordnern abzulegen.
Aber dieser Ansatz wäre wohl für Microsoft zu gradlinig gewesen.
Ich hoffe, die Erklärungen oben waren auch für Menschen, die nicht in der IT, früher mal EDV, arbeiten, einigermaßen verständlich. Wenn was unverständlich war, einfach fragen. Verfalle halt gerne mal in EDV-Jargon und überschütte andere mit zu vielen Details.
</-----Etwas wortreiche Hintergrundinformation----->
Unter Windows 64bit leben ja echte 64bit Programme und 32bit Programme zusammen.
64bit Programme brauchen echte 64bit DLLs. 32bit Programme brauchen 32bit DLLs.
Die 64bit und die 32bit DLLs heißen oft genau gleich, dürfen sich aber niemals in die Quere kommen. Man muß sie also sauber trennen und in verschiedenen Ordnerbäumen ablegen.
Der Ordner C:\Windows\System32 und seine Unterordner enthält bei 64bit Windows Versionen witzigerweise die 64bit DLLs, Treiber und Executables (ausführbare Dateien).
Der Ordner C:\Windows\SysWow64 und seine Unterordner enthält bei 64bit Windows Versionen die 32bit DLLs, Treiber und Executables (ausführbare Dateien).
Darum sind beide Ordnerbäume so gleich aufgebaut und enthalten soviele gleichnamige Dateien. Allerdings sind es einmal die 64bit Versionen und einmal die 32bit Versionen. Die Dateigrößen werden i.d.R. auch nicht übereinstimmen.
Grüße,
Karl
<-----Etwas wortreiche Hintergrundinformation----->
Falls es von Interesse ist, hier noch eine etwas detailliertere Erklärung, was Microsoft da so verbrochen hat:
Microsoft hatte folgende geniale Idee:
Wir benutzen für die 64bit Teile vom 64bit Windows den alten Ordnernamen C:\windows\system32 weiter und legen dort 64bit DLLs, Treiber und Executables (ausführbare Dateien) ab.
Für die 32bit Programme erfinden wir als Ersatz C:\windows\SysWOW64 (Windows auf Windows 64) und legen dort 32bit DLLs, Treiber und und Executables (ausführbare Dateien) ab.
Jetzt hatte Microsoft ein kleines Problem:
64bit Programme suchen DLLs in C:\windows\system32. Aber auch 32bit Programme suchen DLLs in C:\windows\System32. Dort liegen aber schon gleichnamige 64bit DLLs, die die 32 bit Programme auf keinen Fall benutzen können.
Und nun kommt die automatische Ordnerumleitung ins Spiel:
Wenn ein 32bit Programm DLLs, Treiber oder Executables aus C:\Windows\System32 anfragt, dann sucht 64bit Windows diese Dateien stattdessen in C:\Windows\SysWow64.
Es erzählt dem 32bit Programm jedoch, es habe die Dateien aus C:\Windows\System32 geholt.
Wenn ein 32bit Programm in den Ordner C:\Windows\System32 wechseln will, dann schickt das 64bit Windows das 32bit Programm stattdessen in den Ordner C:\Windows\SysWow64.
Es erzählt dem 32bit Programm jedoch, es stehe jetzt im Pfad C:\windows\system32. Und so wird das 32bit Programm es auch anzeigen.
Im Klartext:
Das 64bit Windows belügt das 32bit Programm über manche Ordnernamen.
Deshalb wird ein 32bit Programm in C:\windows\system32 und darunter die gleichen Dateien und Ordner finden wie in C:\Windows\sysWow64, weil es in Wirklichkeit immer nach C:\Windows\SysWow64 geschickt wird.
Das Hintertürchen:
Irgendwann ist auch Microsoft das Licht aufgegangen, dass es Gelegenheiten gibt, in denen 32bit Programme den echten Ordner C:\windows\system32 und seine Dateien und Unterordner sehen und darauf zugreifen müssen. (Z.B. Datei Manager beim Kopieren, Verschieben, Ordnerinhalt einfach auflisten)
Da ist Microsoft auf die Idee verfallen: Wir stellen 32bit Programmen einfach einen unsichtbaren Aliasnamen sysnative zur Verfügung. Wenn ein 32bit Programm nun verlangt, Zugang zu bekommen auf C:\windows\system32, indem es dessen Aliasnamen sysnative benutzt, also C:\Windows\Sysnative, dann wird es nicht nach C:\Windows\SysWow64 umgeleitet und darüber belogen. Dann darf es in den echten Ordner C:\Windows\System32.
Geniale Konstruktion, das Ganze, gelle?
Hinweis:
Man hätte das ganze Gehampel vermeiden können, wenn man bei der Erfindung des 64bit Windows sich entschieden hätte, 64bit DLLs, Treiber und ausführbare Dateien in C:\Windows\System64 und Unterordnern abzulegen.
Aber dieser Ansatz wäre wohl für Microsoft zu gradlinig gewesen.
Ich hoffe, die Erklärungen oben waren auch für Menschen, die nicht in der IT, früher mal EDV, arbeiten, einigermaßen verständlich. Wenn was unverständlich war, einfach fragen. Verfalle halt gerne mal in EDV-Jargon und überschütte andere mit zu vielen Details.

</-----Etwas wortreiche Hintergrundinformation----->
Last edited by karlchen on 2010-02-27, 15:55 UTC, edited 2 times in total.
Hallo, Lefteous.
Nun zum einen erdreisten sich ja Softwareprodukte, im %windir%\system32 Ordner DLLs abzulegen, gelegentlich auch vorhandene DLLs durch neuere zu ersetzen. Das gleiche gilt für Treiberdateien in %windir%\system32\Drivers.
Ansonsten stolpern, wie dir auch nicht entgangen sein wird, sehr viele Benutzer beim Versuch, auf %windir%\system32\drivers\etc\hosts zuzugreifen, in dem Moment über system32, in dem sie mit einem 32bit Programm versuchen zu navigieren:
+ nach %windir%
+ von dort nach system32, puff, hier passiert's, sie sind in SysWow64
+ von dort nach drivers
+ von dort nach etc
+ und dort genau ist keine hosts Datei.
Klar, denn sie sehen, sie seien in %windir%\system32\drivers\etc. Aber das genau ist die Lüge des WoW64 Subsystems. Der reale Pfad ist %windir%\SysWow64\drivers\etc. Und dort gibt es keine hosts Datei.
So ganz nebenbei:
Ich muß doch wohl als Benutzer eines Betriebssystems mich nicht dafür rechtfertigen, dass ich auch mit einem 32bit Programm mal in einen Betriebssystemordner system32 einfach nur aus Neugier reinschauen will. Ist schließlich mein Rechner.
Grüße,
Karl
Nun zum einen erdreisten sich ja Softwareprodukte, im %windir%\system32 Ordner DLLs abzulegen, gelegentlich auch vorhandene DLLs durch neuere zu ersetzen. Das gleiche gilt für Treiberdateien in %windir%\system32\Drivers.
Ansonsten stolpern, wie dir auch nicht entgangen sein wird, sehr viele Benutzer beim Versuch, auf %windir%\system32\drivers\etc\hosts zuzugreifen, in dem Moment über system32, in dem sie mit einem 32bit Programm versuchen zu navigieren:
+ nach %windir%
+ von dort nach system32, puff, hier passiert's, sie sind in SysWow64
+ von dort nach drivers
+ von dort nach etc
+ und dort genau ist keine hosts Datei.
Klar, denn sie sehen, sie seien in %windir%\system32\drivers\etc. Aber das genau ist die Lüge des WoW64 Subsystems. Der reale Pfad ist %windir%\SysWow64\drivers\etc. Und dort gibt es keine hosts Datei.
So ganz nebenbei:
Ich muß doch wohl als Benutzer eines Betriebssystems mich nicht dafür rechtfertigen, dass ich auch mit einem 32bit Programm mal in einen Betriebssystemordner system32 einfach nur aus Neugier reinschauen will. Ist schließlich mein Rechner.

Grüße,
Karl
Da hst Du Dir aber viel Mühe gegeben und Zeit geopfert, mir die -anscheinend einfache-Frage zu beantworten. Ist ja gewaltig, welche Umwege M$ da gegangen ist, um so etwas (offensichtlich? ) Einfaches zu bewältigen.
Man hätte das ganze Gehampel vermeiden können, wenn man bei der Erfindung des 64bit Windows sich entschieden hätte...
Hm, da wäre M$ aber mit dem Problem konfrontiert gewesen, das man das auf Anhieb versteht!
Ich habe Ähnliches übrigens unter XP schon erlebt - ähnliche Programme liefen nicht, wenn ich sie nicht in getrennte Ordner installierte, sondern das Ganze automatisch machen lies.
Muß ich mir, um es richtig zu verstehen, noch genauer anschauen.
@Lefteous -
Was ist eigentlich so interessant an diesem Verzeichnis?
Das Verzeichnis als Solches ist vollkommen uninteressant.
Wie für den Autofahrer die Tatsache, das sich ein Motor im Auto befindet - es gibt da welche, bei denen beschränkt sich das Verständnis des Motors auf das Gaspedal.
Für mich ist alles interessant, alles, dessen ich mich bediene, und ich versuche, das zu verstehen...
Diese Neugier ist auch die Ursache dafür, das ich in meinem Berufsleben (bin inzwischen Rentner) als Dipl-Ing einiges leisten konnte und von den Erträgen mancher gelöster Fragen heut recht gut leben kann...
Ich denke nicht, das Neugier etwas Negatives ist.
Jürgen
Man hätte das ganze Gehampel vermeiden können, wenn man bei der Erfindung des 64bit Windows sich entschieden hätte...
Hm, da wäre M$ aber mit dem Problem konfrontiert gewesen, das man das auf Anhieb versteht!

Ich habe Ähnliches übrigens unter XP schon erlebt - ähnliche Programme liefen nicht, wenn ich sie nicht in getrennte Ordner installierte, sondern das Ganze automatisch machen lies.
Muß ich mir, um es richtig zu verstehen, noch genauer anschauen.
@Lefteous -
Was ist eigentlich so interessant an diesem Verzeichnis?
Das Verzeichnis als Solches ist vollkommen uninteressant.
Wie für den Autofahrer die Tatsache, das sich ein Motor im Auto befindet - es gibt da welche, bei denen beschränkt sich das Verständnis des Motors auf das Gaspedal.
Für mich ist alles interessant, alles, dessen ich mich bediene, und ich versuche, das zu verstehen...
Diese Neugier ist auch die Ursache dafür, das ich in meinem Berufsleben (bin inzwischen Rentner) als Dipl-Ing einiges leisten konnte und von den Erträgen mancher gelöster Fragen heut recht gut leben kann...
Ich denke nicht, das Neugier etwas Negatives ist.
Jürgen
- Herr Mann
- Power Member
- Posts: 574
- Joined: 2004-05-30, 17:11 UTC
- Location: Niedersachsen, Deutschland
Sehr schön erklärt ...<-----Etwas wortreiche Hintergrundinformation----->
Nicht zu vergessen, das 16-bit Programme unter c:\windows\system liegen, wo bei Windows X64 kein 16-bit mehr "kann".Geniale Konstruktion, das Ganze, gelle?
Hinweis:
Man hätte das ganze Gehampel vermeiden können, wenn man bei der Erfindung des 64bit Windows sich entschieden hätte, 64bit DLLs, Treiber und ausführbare Dateien in C:\Windows\System64 und Unterordnern abzulegen.
Aber dieser Ansatz wäre wohl für Microsoft zu gradlinig gewesen.
Obwohl man dieses durcheinander eigentlich verstanden hat, gerät man doch immer wieder ins Schleudern, besonders weil man in diesen Ordnern ja nicht ständig unterwegs ist.
Aber was mir gerade noch aufgefallen ist ...
Ich navigiere im TC nach c:\windows\system32\drivers und sehe drei Ordner de-DE, en-US , UMDF
Ist ja in Wirklichkeit der "x64-Explorer Ordner" "C:\Windows\SysWOW64\drivers"
Mache ich jetzt ein "cm_EditPath" und schreibe noch \etc dahinter dann wird dieser Pfad auch so angezeigt ...
Dabei müsste jetzt doch eigentlich "C:\Windows\Sysnative\drivers\etc\" angezeigt werden.
Wenn das alles nicht verwirrend ist


Ich hoffe ja noch, das Christian eine Möglichkeit findet, hier noch etwas weniger "verwirrung" zu stiften.