Ich schreibe ein kleines WPF-Dienstprogramm, um Einträge in der Hosts-Datei für Dev-Zwecke zu verwalten. Wie Sie vielleicht wissen, ist die hosts-Datei durch die neueren Betriebssysteme (Win 7/2008/Vista) geschützt.Wie kann ich die Hosts-Datei in Windows 7/Server 2008 programmgesteuert bearbeiten?
Ich habe ein Manifest zu meiner Anwendung hinzugefügt, um die requestedExecutionLevel auf "requireAdministrator" zu setzen, wie detailliert here (mit "der einfache Weg") und in der verwandten Frage here.
Leider hat das nicht für mich funktioniert. Wenn ich die App starte, wird keine Erhöhung angezeigt, und der Aufruf von File.AppendText für die hosts-Datei verursacht weiterhin das Auslösen einer System.UnauthorizedAccessException: "Zugriff auf den Pfad" C: \ Windows \ System32 \ drivers \ etc \ hosts " abgelehnt. "
HostsChanger.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="HostsChanger" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Irgendwelche Ideen?
So wird die Ausnahme beim Zugriff auf geschützte Registrierungsschlüssel vollständig erwartet, wenn Sie nicht erhöhen. Ich habe Manifeste nicht genug benutzt, um mich an alle Schritte zu erinnern, aber ich weiß nicht, warum das, was du versucht hast, nicht für dich funktioniert. –
Ja, die Exception wird erwartet ... und die Elevation sollte es lösen, aber das Fehlen einer Eingabeaufforderung zeigt an, dass keine Elevation auftritt. – bszom
Ich bin auf der Suche nach einem einfachen Hostchanger-Programm, aber ich habe noch keinen gefunden – JasonDavis