Hosts-Datei lässt sich nicht editieren

  • Hi,
    ich versuche die Hosts-Datei von Windows XP zu editieren:

    [autoit]


    #RequireAdmin

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "ACHTUNG!!!", "Vor dem Testen, die hosts sichern!!!")

    [/autoit][autoit][/autoit][autoit]

    $openhosts = FileOpen(@SystemDir & "\drivers\etc\hosts", 2)
    If $openhosts = -1 Then
    MsgBox(0, "Fehler1", 'Konnte "' & @SystemDir & "\drivers\etc\hosts" & '" nicht öffnen.')
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $writehosts = FileWrite($openhosts, "test")
    If $writehosts = 0 Then
    MsgBox(0, "Fehler2", 'Konnte "' & @SystemDir & "\drivers\etc\hosts" & '" nicht bearbeiten.')
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    FileClose($openhosts)

    [/autoit]

    Leider bekomme ich schon beim Öffnen im Schreibmodus einen Error (Fehler1).
    Auslesen lässt sich die Hosts-Datei aber wunderbar.

    Kann mir bitte jemand schreiben was ich falsch machen?

    Gruß
    Tron

    3 Mal editiert, zuletzt von Tron (4. Juni 2011 um 18:59)

  • Hi,
    ich vermute mal, daß bei dir XP auf C:\Windows installiert ist. Also:
    C:>Attrib C:\Windows\System32\drivers\etc\hosts. -r -h -s
    Das entfernt das (wahrscheinlich) gesetzte ReadOnly-Bit..
    Nach der Bearbeitung wieder zurücksetzen mit:
    C:>Attrib C:\Windows\System32\drivers\etc\hosts. +r +h +s
    Wenn du diese Zeilen nicht verstehst, solltest du die Finger davon lassen ROFL
    Im Ernst: Wahrscheinlich hat irgendein Sicherheitsprogramm das ReadOnly-Bit deiner Hosts. gesetzt.
    (Natürlich könntest du auch mit AutoIt die Attribute abfragen und setzen bzw. löschen)
    Ich verrate dir nur, daß dazu in der Hilfe etwas steht, den Rest überlasse ich deinem Unternehmungsgeist
    Viel Erfolg
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • Ich sehe das genauso - dein
    #RequireAdmin
    bringt bei XP meine ich nicht viel. Die Datei ist gegenüber Otto-Normalbenutzer geschützt (schliesslich könnte ein böser Virus so dich auch gefäschte Webseiten lenken), du wirst mindestens die Attribute anpassen müssen, schlimmstenfalls die Berechtigung.

    Also entweder das dein Programm auch wirklich als lokaler Administrator gestartet wird - oder das die Datei auch von Otto Normaluser geändert werden darf.

    Ich empfehle ersteres

  • Einige XP-User die ein Script von mir nutzen haben das gleiche Problem...

    Benutze: FileSetAttrib("C:\Windows\System32\drivers\etc\hosts", "-R -H -S")

  • Vielen Dank fabi202cool!
    Mit FileSetAttrib konnte ichs wunderbar lösen.

    Gruß
    Tron