Wie starte ich einen neuen Prozess ohne Administratorrechte von einem Prozess mit Administratorrechten?

Ich erstelle einen automatischen Updater für eine Anwendung. Die Anwendung wird vom Benutzer gestartet und ohne Administratorrechte ausgeführt. Der Autoupdater wird mit Administratorrechten gestartet und beendet die Anwendung, bevor die neuen Dateien heruntergeladen werden.

Das Problem tritt auf, wenn ich die aktualisierte Anwendung starten möchte, nachdem der Autoupdater abgeschlossen ist. Wenn ich reguläres System.Diagnostics.Process.Start (Datei) verwende, startet die Anwendung auch mit Administratorrechtenhat auf dem aktuellen Benutzer ausführen, um wie beabsichtigt zu arbeiten.

Wie kann ich also dafür sorgen, dass der Autoupdater die Anwendung als aktueller Benutzer anstelle des Administrators startet?

Ich habe Folgendes versucht:

var pSI = new ProcessStartInfo() { 
    UseShellExecute = false, 
    UserName = Environment.UserName, 
    FileName = file 
};
System.Diagnostics.Process.Start(pSI);

Dies löst jedoch den Fehler "Ungültiger Benutzername oder ungültiges Kennwort" aus. Ich habe überprüft, ob der Benutzername korrekt ist, und ich habe verstanden, dass das Kennwort möglicherweise ungültig ist, da ich es nicht angegeben habe. Es ist jedoch nicht möglich, den Benutzer zur Eingabe seines Kennworts aufzufordern, da der gesamte Grund für den automatischen Start der Anwendung darin besteht, dem Benutzer die Eingabe zu erleichtern.

Irgendwelche Vorschläge?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage