UAC Probleme

Antworten
dash_mc
Beiträge: 4
Registriert: Di 8. Mär 2016, 14:47

UAC Probleme

Beitrag von dash_mc »

Hallo,

ich stehe mal wieder vor einem Problem. Ich bin momentan dabei ein kleines Client-Server-Softwareverteilungstool für unser Unternehmen zu entwickeln.

Zum Aufbau:
Der Server sendet per LNET einen Befehl zum Client, in dem der Pfad zur Setup Datei und der entsprechende Silent Parameter enthalten ist. Auf dem Client soll dann die Setup Datei aufgerufen werden und per ShellExecute installiert werden.
Bei den Usern mit Admin-Rechten auch alles kein Problem..bei den normalen "Benutzern" sieht das natürlich anders aus.

Daher habe ich aus meiner Client-EXE einen Dienst erstellt, der als "SYSTEM" beim Systemstart ausgeführt wird. Die Netzwerkkommunikation mit dem Client funktioniert soweit auch wunderbar, allerdings werden die Setup Dateien auf dem Client nicht ausgeführt. Ich vermute mal es liegt an der aktiven UAC. Hat hierzu vielleicht jemand eine Idee wie man das ganze realisieren könnte?

Gruß dash_mc

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: UAC Probleme

Beitrag von Soner »

Bei Setup-Datei-Projekt:
Gehe zum Projekteinstellungen --> Anwendung, ändere bei Manifestdatei-Einstellungen Ausführungsebene zu "benötigt Administrator".
Es verlangt dann bei jedem Start Administrator-Dialog.
Das macht man so bei Installlationsprogrammen und Administratorprogrammen.

Dann darfst du es natürlich nicht von Lazarus aus mit Debugger zusammenstarten, dann stürzt der Debugger ab.

SchwabenTom
Beiträge: 49
Registriert: So 4. Jan 2015, 21:34
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: UAC Probleme

Beitrag von SchwabenTom »

Du suchst nach: RunAs.

Google mal nach:

shellexecute runas elevated privileges

SchwabenTom
Beiträge: 49
Registriert: So 4. Jan 2015, 21:34
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: UAC Probleme

Beitrag von SchwabenTom »

Evtl. noch als Anmerkung. Gehen tut es mit Sicherheit. .... Ich betreue ein kleines Netz. Die setzen dort eine Branchensoftware ein. Da mache ich ein bis zwei Mal im Jahr das Update. Läuft so ab, daß am Ende des Updates ich dann angeben kann, ob die Clients sich automatisch auf die neue Version updaten sollen. Dafür kann ich die Credentials des Domänenadmins eingeben. Ich lasse das dann trotzdem nicht die User selbst machen, sondern laufe zu jedem Arbeitsplatz hin und mache es selbst. Ist aber in dieser Art trotzdem sehr komfortabel. Am Arbeitsplatz die Anwendung ganz normal starten. Er erkennt, daß es ein Update gab und fragt, ob er sich selbst updaten soll. Auf ja klicken - fertig. Er updated sich dann selbst, mit dem Account, den ich beim Update auf dem Server angeben habe. Dh. Ich kann dir leider nicht sagen, wie es geht; nur bestätigen, daß es geht.

Probleme die ich dabei hatte (evtl. hilft das weiter) ...

Wenn du keine Admindaten (inkl. Passwort etc.) vorher angeben kannst: mglw. braucht da etwas den Fokus oder darf nicht minimiert sein, damit der Standard-Windows-Dialog zur Abfrage von Adminname und Passwort angezeigt werden kann. Oder sonst etwas in der Art. Als Dienst hast du evtl. kein Fenster, Fokus, irgendein Handle oder was sonst evtl. gebraucht wird.

Wenn du Credentials vorher angeben kannst: Probiere unterschiedliche Angaben für den Benutzernamen. Dh. bspw. einmal mit, einmal ohne Domäne - Domäne\Username. Etc. Wenn es nicht in einer Domäne ist: hat am lokalen PC der lokale Admin ein Passwort? Evtl. ist ein Passwort zwingend erforderlich? Dinge dieser Art.

Antworten