Logo faq-o-matic.net
Logo faq-o-matic.net

Wo ist die Hosts-Datei unter 64-Bit-Windows?

von veröffentlicht am8. Dezember 2010, 06:53 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Namensaufloesung, Windows, x64   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Die feinen Unterschiede zwischen den 32- und 64-Bit-Versionen von Windows erweisen sich in der Praxis immer wieder als Hürde, die auch von Microsoft-Mitarbeitern nicht immer genommen wird. Unlängst stolperte ich über einen KB-Artikel, der beschreibt, wie man die Hosts-Datei auf die Standardeinstellung zurücksetzt. Schon der Titel lädt zum Schmunzeln ein – es ist ja nicht so, dass die Hosts-Datei standardmäßig große Datenmengen enthielte. Ein Eintrag für Localhost (IPv4 und IPv6) ist alles, was benötigt wird, und unter Windows 7 / 2008 R2 noch nicht einmal das. Dennoch scheinen so viele Kunden den Microsoft-Support zu diesem Thema zu kontaktieren, dass man sich bei Microsoft die Mühe gemacht hat, ein Paket (MicrosoftFixit50267.msi) zu erstellen, das im Wesentlichen die Hosts-Datei leert.

Ist Hosts 32-bittig oder 64-bittig?

Wie immer bin ich vor allem daran interessiert, was ein Paket tut. Das wird von Microsoft in den meisten "Fix it"-Artikeln freundlicherweise auch erklärt. Wie Sie sicherlich wissen, liegt die Hosts-Datei in %systemroot%\system32\drivers\etc, dort war sie schon immer, und dort wird sie wohl auch noch ein Weilchen bleiben. So weit, so gut. Hört sich einfach an, ist es aber nicht: auf 64-Bit-Systemen gibt es zwei System32-Verzeichnisse – eines für 64-Bit-Prozesse und das andere für 32-Bit-Prozesse. In welchem der beiden liegt nun die Hosts-Datei? Oder gibt es deren gleich zwei, die sich möglicherweise unterscheiden? Die Antwort lautet: Nein. Es gibt nur eine Hosts-Datei unter Windows x64, und die ist da, wo sie hingehört: im 64-Bit-System32-Verzeichnis. Wo aber findet sich dieses Verzeichnis auf der Festplatte? Es gibt schließlich zwei Kandidaten: die Verzeichnisse System32 und SysWoW64.

Umleitungschaos

An dieser Stelle macht sich oft Verwirrung breit. Viele, auch der Autor von KB972034 sehen die Zahl "64" im Namen des Ordners SysWoW64 und denken: ganz klar, das ist die 64-Bit-Version von System32. Gut gedacht, aber trotzdem falsch. Es ist genau andersherum. Aus Gründen der Abwärtskompatibilität wird das System32-Verzeichnis für diejenigen DLLs verwendet, die auf dem System "zu Hause" sind. Unter x64 also die 64-Bit-Dateien. Stellt sich noch die Frage, wo die 32-Bit-Dateien abgelegt werden, die von 32-Bit-Prozessen benötigt werden, welche ihre DLLs ebenfalls im System32-Verzeichnis erwarten! Eine DLL kann schließlich nicht unter dem gleichen Namen im gleichen Verzeichnis in zwei verschiedenen Varianten liegen (Spezialitäten wie Alternate Data Streams ignorieren wir an dieser Stelle geflissentlich). Der Bedarf an zwei unterschiedlichen System32-Verzeichnissen wurde durch die Einführung der Dateisystemumleitung erfüllt. Dabei existieren zwei unterschiedliche Verzeichnisse mit den Namen System32 und SysWoW64. 32-Bit-Prozesse bekommen das echte System32 gar nicht erst zu sehen, sondern ihnen wird durch Umleitung vorgegaukelt, SysWoW64 hieße System32. Diese Maskerade wird vom WoW64-Subsystem übernommen, welches 32-Bit-Prozessen die Ausführung unter 64-Bit-Windows ermöglicht.

Bearbeiten der Hosts-Datei

Um an die Hosts-Datei heranzukommen, benötigen wir einen 64-Bit-Prozess, da nur ein solcher das echte System32-Verzeichnis sieht. Um Hosts nach einer eventuellen Bearbeitung auch wieder speichern zu können, muss dieser Prozess mit erhöhten (vollen Admin-) Rechten laufen. Das läuft auf eine etwas hakelige Prozedur heraus:

  • Klicken Sie auf Start, tippen Sie "notepad" und drücken Sie STRG+SHIFT+ENTER. Bestätigen Sie den UAC-Dialog.
  • Drücken Sie STRG+O und navigieren Sie zum Verzeichnis %systemroot%\system32\drivers\etc. Wählen Sie unten rechts statt dem vorselektierten Filter für Textdateien "Alle Dateien (*.*)" aus.
  • Jetzt sehen Sie die Hosts-Datei. Öffnen Sie sie, nehmen Sie Ihre Änderungen vor und speichern Sie sie wieder. Schon fertig 😉

Unerwarteterweise kommt man auch von 32-Bit-Prozessen an die Hosts-Datei heran. Es gibt sogar zwei unterschiedliche Methoden, die jedoch beide voraussetzen, dass jeweils der volle Pfad in einem Stück angegeben werden muss. Sich gemütlich Verzeichnis für Verzeichnis von C: aus bis zu etc durchzuklicken funktioniert im ersten der beiden unten gezeigten Fälle nicht, weil das darüberliegende Verzeichnis System32 für 32-Bit-Prozesse nach SysWoW64 umgeleitet ist, und im zweiten weil Sysnative nicht in im Explorer angezeigt wird (wohl aber zum Beispiel im Total Commander).

  • %systemroot%\System32\drivers\etc: Dies funtioniert, weil die Umleitung für das Unterverzeichnis etc deaktiviert ist, so dass die direkte Navigation dorthin ohne Zwischenstopp bei System32 auch für 32-Bit-Prozesse möglich ist.
  • %systemroot%\Sysnative\drivers\etc: Sysnative ist ein Alias, der vom WoW64-Subsystem explizit zum Zweck des Zugriffs auf das echte System32-Verzeichnis erzeugt wird. Dieser Alias ist somit nur bei 32-Bit-Prozessen aktiv. Da er nicht in Verzeichnislistings angezeigt wird, ist er weithin unbekannt.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!