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
UAC Probleme
-
- Beiträge: 624
- 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
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.
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.
-
- 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
Du suchst nach: RunAs.
Google mal nach:
shellexecute runas elevated privileges
Google mal nach:
shellexecute runas elevated privileges
-
- 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
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.
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.