none
Temporärer Admin-Zugriff von einer c# Forms App aus - wie kann man das untrer Windows 7 am besten machen? RRS feed

  • Frage

  • Hallo zusammen
    eine Frage:
    Wir haben eine Desktop c# Windows.Forms basierende Applikation, die im Falle eines erfolgenden Online Updates eine externe VB exe aufruft und dann terminiert. Diese exe lädt vom Server die dlls, die als neuer gegenüber den installierten gekennzeichnet sind, in ein unter dem Programmverzeichnis liegendes cache Verzeichnis und kopiert kann diese über die bisher installierten. Das Cache Verzeichnis wird dazu neu erstellt und am Ende gelöscht.
    Unter Windows 2000, XP und Vista (x86 und x64) funktioniert das ganz prima.
    Unter Windows 7 wird beim Erstellen des Cache Verzeichnisses eine Exception (kein Zugriff möglich) geworfen, es sei denn, in den Kompatibilitätseinstellungen der Applikation wird der Admin Zugriff eingetragen. In diesem Fall funktioniert es.

    Gibt es eine Möglichkeit, den Zugriffslevel temporär aus der Applikation auf administrator zu erhöhen, um das cache Verzeichnis zu erstellen und später wieder zu löschen? (Falls ja, muss dafür das Late-Binding für Interop verwendet werden oder ist diese Methode auch unter W2000 und XP/Vista verfügbar)

    Im Moment behelfen wir uns damit, dass im Falle von W7 vor dem Update das Programm mit dem gesetzten Admin Level gestartet wird, der Update durchgeführt wird und danach wieder der adminlevel zurückgesetzt wird.  Dies ist allerdings nicht wirklich benutzerfreundlich, deswegen meine Frage.
    Vielen Dank
    Freitag, 30. Oktober 2009 12:43

Antworten

Alle Antworten