dashmc
Goto Top

Eigener Dienst vs. UAC

Servus,

ich kämpfe seit Tagen mit einem Problem, für das ich einfach keine Lösung finden kann. Daher wende ich mich nun mal an euch.

Also:
Unter Lazarus habe ich ein kleines Client-Server-Softwareverteilungsprogramm geschrieben. Auf dem Server liegt eine SQL-DB, in der die Pfade zur Setup-Datei sowie die entsprechenden Silent Parameter liegen. Diese Informationen werden dann per TCP zum Client-Programm übertragen. Der Client ruft im Anschluss per UNC das Setup mit dem entsprechenden Parameter auf und installiert die Anwendung. Der Client selbst besteht aus einem Dienst (läuft als lokales Systemkonto) und einer kleinen GUI für Benachrichtigungen, Einstellungen, Logs etc. Das ganze wurde so gewählt, da die User natürlich keine Adminrechte haben und andernfalls (ohne Dienst) jedesmal die UAC aufpoppen würde um die Credentials abzufragen.
Das Problem ist nun, dass die Installation der Setups nicht startet. Bei Administratorkonten mit deaktivierter UAC funktioniert alles wunderbar. Die Netzwerkkommunikation zwischen Client - Server habe ich schon überprüft, daran liegt es nicht. Netzwerkberechtigungen kann ich auch ausschließen, da es auch mit lokalen Setupdateien (also nicht per UNC) nicht funktioniert. Administrative Berechtigungen sollten auch vorhanden sein, da der Dienst z.B. in der Lage ist im Verzeichnis "C:\Windows\" einen Ordner oder Dateien zu erstellen. Ich kann mir eigentlich nurnoch vorstellen, dass die UAC im Hintergrund die Installation blockiert und ich, da es ein Dienst ist, keine Meldung darüber bekomme.

Das Problem tritt bei mir unter Windows 7 / 10 Pro x64 / x86 auf.


Wäre super wenn jemand einen Rat weiß. Danke!

Gruß dashmc

Content-Key: 303254

Url: https://administrator.de/contentid/303254

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: DerWoWusste
DerWoWusste 29.04.2016 um 12:51:14 Uhr
Goto Top
Hi.

Ich kann dir versichern, dass das Systemkonto niemals von der UAC gestoppt wird. Es ist davon ausgenommen.
Wenn Du schreibst, dass es bei lokalen Admins geht, so wird doch eindeutig das Dienstkonto gar nicht oder zumindest nicht ausschließlich benutzt - dabei war das doch der Plan, oder?

Andere Frage: warum nimmst Du nicht WSUS mitsamt wsus package publisher? Da brauchst Du gar nichts selber coden.
https://wsuspackagepublisher.codeplex.com/
Mitglied: agowa338
agowa338 30.04.2016 aktualisiert um 03:33:31 Uhr
Goto Top
Ich würde dir zwar auch zu einer Software Deployment Lösung (z. B. Opsi) oder der bereits genannten WSUS Methode raten, aber wenn du deine Lösung verwenden möchtest. Ich denke mal, dass du einen Fehler in deiner Software hast und die Installation von der GUI also dem Teil der im Benutzerkontext läuft gestartet wird. Prüfen kannst du das, indem du dich entweder mit Aktivierter UAC (höchste Stufe) mit einem Administrativen Benutzer anmeldest und testest, ob sie kommt. Falls nicht, kannst du mit Procmon aus der Sysinternals Suite dem etwas genauer nachgehen...

P. S. UAC gibt es bei Diensten nicht, die werden immer mit höchst möglichen Berechtigungen ausgeführt...
Mitglied: 70866
70866 30.04.2016 um 04:45:17 Uhr
Goto Top
ich würde mal die Silent-Setups mit einem Zusatzparameter garnieren, der detaillierte Setup-Logdateien generiert, und vielelicht noch zusätzlich mit dem procmon die Aktivität des nicht durchlaufenden Setups verfolgen.

Mindestens in einem von beiden sollte dann ein entscheidender Hinweis drinstehen, was da genau schiefgegangen ist.

MSI-basierte Setups laufen (normalerweise) mit dem Systemkonto silent durch solange alle Parameter richtig gesetzt sind, es sei denn in dem SEtup wird noch ein Tool aufgerufen das ohne GUI nicht läuft bzw. mit der Laufzeitumgebung des Systemkontos nicht zurechtkommt.

Bei Nicht-MSI Setups wiederum kann man dann nur noch raten... es gibt da im Freeware-Bereich sehr viele Tools die ihren eigenen Installer haben, oder die es dann ganz bunt treiben wie die Setups vom Oracle DAtenbankserver-Client die mit Java arbeiten oder noch exotischere Teile.