Zitat von
Stephan:
Kurz gesagt: Ich muss aus meiner Anwendung eine andere .exe unter fremden Rechten starten, ohne hierfür irgendwelche Windows Kennwörter kennen zu müssen.
Unter fremden Rechten? Das wird ohne Benutzernamen+Passwort kaum gehen. Und nach logischem Überlegen ist das generell gesehen auch gut so.
Zitat von
Stephan:
programm.exe (läuft unter dem aktuell eingeloggten Benutzer) startet für ein automatisches Update die update.exe mit Adminrechten. Diese downloadet das Update und installiert dieses. Anschließend soll die programm.exe mit den alten Benutzerrechten wieder gestartet werden (auf keinen Fall soll diese Datei Adminrechte erben).
1. programm.exe ruft update.exe auf
2. update.exe prüft, ob es adminrechte hat, falls nicht, startet es sich mit verschlüsselt gespeicherten admin-anmelde-daten neu und beendet die laufende instanz.
3. update.exe hat adminrechte und macht das update.
4. update.exe sendet ein signal an programm.exe und beendet sich selber
5. programm.exe erhällt signal und startet sich selbst neu und beendet die laufende instanz.
sollte
imho so gehen.
Zitat von
Stephan:
Die andere Sache ist natürlich, wie ermittel ich mit welchem Benutzer ich gerade eingeloggt bin, wenn der Prozess der dies ermitteln soll, unter einem anderen Benutzer (Admin) gestartet wurde?
Das wüsste ich auch gerne.