Forum: Win32/Win64 API (native code)
Delphi
by Der schöne Günther,
30. Apr 2020
Ich denke das ist es. Oder ich hatte zu wenig Kaffee.
Ganz konkret:
Zwei Benutzer, "localUser" und "localAdmin". Ersterer gehört nicht zur Gruppe "Administratoren", letzterer schon
Eine aktive Sitzung im Benutzer "localUser". Der Benutzer doppelklickt unseren Prozess
Der Prozess hat in seinem Manifest, wie wohl so ziemlich jeder, requestedExecutionLevel
level="asInvoker"
Der Prozess...
Forum: Win32/Win64 API (native code)
Delphi
by Der schöne Günther,
30. Apr 2020
Es gibt keinen "Rest" des Programms. Es hat auch nichts wirklich mit Rechten eines Benutzers zu tun. Entweder der Prozess hat beim Start Admin-RechteFähigkeiten mitbekommen, oder er hat sie nicht. Man durch diese "Impersonation" sich als anderer Benutzer ausgeben, auf dessen Resourcen (z.B. Registry oder Dateien) zugreifen, aber die Admin-Fähigkeiten kommen dadurch nicht nach.
Das ist auch...
Forum: Win32/Win64 API (native code)
Delphi
by Der schöne Günther,
30. Apr 2020
Das ist aber "roaming" AppData (nicht lokal) und würde über jeden PC mit dem Benutzerkonto synchronisiert werden. Ich hätte das eher verstanden dass AppData\Local das richtige ist, denn manche PCs stehen außerhalb und greifen über eine langsame VPN-Verbindung zu, manche stehen im schnellen Firmennetz und brauchen das nicht.
Forum: Win32/Win64 API (native code)
Delphi
by Der schöne Günther,
30. Apr 2020
Das Impersonate gibt dem Prozess nicht plötzlich Adminrechte. Entweder ein Prozess wird mit Adminrechten gestartet, oder ohne. Das lässt sich nicht nachträglich ändern.
PS: Ich würde vielleicht auch hinterfragen ob das Programm wirklich für alle Benutzer unter C:\Programme installiert werden muss. Seit Windows 7 gibt es FOLDERID_UserProgramFiles, also C:\Users\Jupp\AppData\Local\Programs. Da...