rene1976
Goto Top

Programmupdate aus dem Netzwerk durch normalen User mit aktivem UAC - wie?

Hallo,

wir haben eine eigene .Net Anwendung die in Intranet auf einem Server prüft, ob eine neue Version in einem Ordner verfügbar ist und dann die neue Version gezippt auf dem Client kopiert.
Nach dem lokalen entpacken der zip Datei wird die bisherige Anwendung mit den neuen Dateien überschrieben.

Das klappt unter Win XP alles einwandfrei.

Jetzt haben wir zum Test schon einen Windows 8 Client im Netz.
Beim Update meldet sich jetzt immer die UAC und fragt den normalen User nach den Admin- Berechtigungen.
Wenn man die Daten im UAC einträgt, dann funktioniert das Update auch einwandfrei.

Wie kann ich die UAC angeschaltet lassen, aber für dieses Updateprogramm eine Ausnahme konfigurieren, so das ein normaler User auch ein Update für zuvor definierte Programme ausführen kann?

1. Kann ich das Updateprogramm, das auf dem Server liegt irgendwo als berechtigt hinterlegen?

2. Das Programm ich selbst geschrieben und hat einen "unbekannten Herausgeber".
Muss das Programm einen "bekannten Herausgeber" haben und braucht es dann auch ein eigenes Zertifikat oder ein Zertifikat eines Drittanbieters?
So wie ich gelesen habe sind diese Zertifikate ziemlich teuer. Bei unserer kleinen Firma wird sich das nicht lohnen.

Was kann man machen?

Content-Key: 196904

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

Printed on: April 20, 2024 at 07:04 o'clock

Member: Xaero1982
Xaero1982 Jan 13, 2013 at 19:44:55 (UTC)
Goto Top
Hi,

wohin werden die Daten denn entzippt bzw. wo liegt das Programm was überschrieben werden soll?

Wir reden vom reinen Überschreiben und nicht von installieren oder?

Gruß
Member: DerWoWusste
DerWoWusste Jan 14, 2013 at 07:47:14 (UTC)
Goto Top
Moin.

Das ist auf win8 problemlos mit einem Startskript möglich.
Member: Rene1976
Rene1976 Jan 14, 2013 at 11:17:06 (UTC)
Goto Top
Hallo,

wir haben das Programm direkt auf C: liegen, da der Ordner "Programme" anscheinend besonderes geschützt ist (unsere Versuche mit Impersonifizierung waren nur in Win XP erfolgreich).

Wir überschreiben die existieren Dateien in dem Ordner komplett.

Eine explizite Installation mit Registry Änderungen etc. ist nicht nötig.
Es handelt sich nur um Dateien kopieren/löschen/überschreiben.


DerWoWusste:
Was meinst du mit Startskript?
Soll das Skript im Autostart-Ordner des jeweiligen Clients liegen, oder auf dem Server?
Was soll in dem Startskript stehen?

Wie funktioniert unser Updateprogramm:
Unsere Hauptprogramm auf dem Client verbindet sich nach den Start mit dem Update-Ordner auf dem Server und prüft, ob dort eine neue zip Datei vorhanden ist. Dann wird diese heruntergeladen und entpackt.
Das funktioniert alles noch einwandfrei.
Das Problem entsteht erst wenn die alten Dateien durch die neuen überschrieben werden sollen.

Hierfür wird das zweite Programm "DeploymentFactory.exe" das zentral auf dem Server liegt aufgerufen.
Dieses Programm kümmert sich um das Kopieren/Updaten/Neuinstallieren auf den jeweiligen Clients.

Wie kann ich nun das Programm "DeploymentFactory.exe" das auf dem Server liegt vom Client aus als "normaler User" starten, ohne das ich UAC ausschalten muss?

Grüße,

Rene
Member: DerWoWusste
DerWoWusste Jan 14, 2013 updated at 17:57:56 (UTC)
Goto Top
Startskripte sollten jedem ein Begriff sein, der administriert. Sie werden mit Systemrechten ausgeführt und können beliebige Änderungen durchführen - alles ohne dass die UAC Abfragen macht.

Ein Startskript konfiguriert man über GPOs, entweder Domänen- oder lokale GPOs.
Member: Rene1976
Rene1976 Jan 15, 2013 at 14:37:52 (UTC)
Goto Top
Danke für den Hinweis.
Beim Start des PC´s wird dann das Startscript ausgeführt, vor dem anmelden, nicht beim an- und abmelden des Users.
Das heißt, bei jedem Deploy müssen die Rechner neu gestartet werden, das Startscript wird ausgeführt und die Dateien werden auf den lokalen PC kopiert.

Fragen und Probleme:
1. Unsere Daten sind gezippt immer noch 100 MB groß (nach dem entpacken ca. 380 MB, bei einer 1 GBit Leitung im Intranet). Das dauert dann eine Weile bis sich der User einloggen kann. Es gibt öfter mal im laufenden Betrieb Updates, die der User derzeit einfach durch schließen und erneutem öffnen des Programms einspielen kann.
Alle anderen Programme können in der Zeit weiter genutzt werden.
Das ist sehr komfortabel.
2. Sind in dem Moment wenn das Skript ausgeführt wird die lokalen Laufwerke schon ansprechbar?
Kann darauf schon kopiert werden, falls das neueste zip bis dato noch nicht übertragen wurde?
3. Sind in dem Moment wenn das Skript ausgeführt wird die Netzwerklaufwerke schon bekannt? Das DeployTool liegt nicht auf dem DC Server sondern auf einem anderen?


Generelle Frage:
Es gibt anscheinend keine Lösung die UAC durch Regeln zu umgehen. Wenn die UAC eingeschaltet ist, dann greift Sie bei allen .exe Dateien (egal ob lokal oder von remote PC´s gestartet), richtig?

Mögliche Lösung:
Wäre es denkbar, das Deploy Tool umzuschreiben, so dass es als zweites Programm auf dem lokalen PC installiert ist.
Das Programm wird dann nicht durch UAC sondern allenfalls durch die einstellbare Firewall überwacht, oder?
Wenn jetzt das lokale DeployTool die Daten vom Server auf den Client kopiert und dann für das entpacken und überschreiben sorgt, hätte ich doch keine Probleme mehr, oder?


Gibt es eine bessere Lösung?

Grüße,

Rene
Member: DerWoWusste
DerWoWusste Jan 15, 2013 updated at 15:08:19 (UTC)
Goto Top
...mit viel Text habe ich immer so meine Probleme...

Ich glaube, wenn ich das richtig verstehe, ist aufgrund der Regelmäßigkeit und Größe vielleicht eine andere Lösung vorzuziehen.
WSUS könnte das Paket verteilen, im Hintergrund und ganz simpel mit den Rechten des Dienstes. Du musst dazu 2 Dinge tun:
-selbstextrahierendes Paket (.exe) mit 7zip oder ähnlichem bauen
-dieses Paket auf dem WSUS mittels LUP https://sourceforge.net/projects/localupdatepubl/ veröffentlichen. Beim einpflegen mittels WSUS muss der silent-Parameter des Zipprogrammes mit angegeben werden im Bereich Kommando.

Bingo.
Member: Xaero1982
Xaero1982 Jan 15, 2013 at 17:39:43 (UTC)
Goto Top
Hi,

wenn ich mich nicht irre hat die UAC mit C: so seine Probleme. Vielleicht einen anderen Ordner versuchen?

Ansonsten UAC umgehen ... würde dann ja keinen wirklichen Sinn mehr machen, oder?

Benutz bitte einen Unterordner und setz die entsprechenden Berechtigungen - funktioniert bei mir zumindest mit UAC - Standard.

Gruß
Member: DerWoWusste
DerWoWusste Jan 15, 2013, updated at Jan 16, 2013 at 08:26:39 (UTC)
Goto Top
Die UAC hat mit c: Probleme? Was soll denn das bedeuten? Nein, keine Probleme mit c.
Member: Xaero1982
Xaero1982 Jan 15, 2013 updated at 19:27:43 (UTC)
Goto Top
Damit meine ich, dass er, sobald ich mit aktivierter UAC auf C schreiben möchte administrative Rechte anfordert...
Da ich Admin bin reicht ein Klick auf Fortsetzen ... was bei Usern nicht der Fall ist ... da fragt er nach dem Adminkennwort...
Member: DerWoWusste
DerWoWusste Jan 16, 2013 at 08:26:29 (UTC)
Goto Top
Und wo sind da Probleme? Auch bei xp konnten User nicht auf c: schreiben. Und in seinem Fall hier, wenn man wie angeraten mit Systemrechten oder dem Konto Administrator arbeitet, ist die UAC nicht beteiligt, sie gilt dann nicht.
Member: Xaero1982
Xaero1982 Jan 16, 2013 at 17:33:13 (UTC)
Goto Top
DAS wäre mir absolut neu, denn wie gesagt:
Auch wenn er Admin ist bekommt er beim Schreiben auf C: die Meldung, das administrative Rechte notwendig sind, die man als Admin einfach mit "Fortsetzen" bestätigt.
Wenn man nur Benutzer ist bekommt er die Aufforderung die Administratordaten einzugeben.

Und da er nun mal nur als Benutzer arbeitet (Wo bitte steht, man soll mit dem Adminkonto arbeiten?) - außerdem wo kämen wir da hin, wenn jeder Benutzer an seinem PC in einer Firma Adminrechte hat - hat er eben dieses Problem.

Wie ich schon sagte: Unterordner benutzen und mit den Rechten versehen.

Gruß
Member: DerWoWusste
DerWoWusste Jan 16, 2013 at 22:46:27 (UTC)
Goto Top
Wird Zeit, dass der Autor mal wieder was beiträgt...
@xaero: Wir verstehen uns wohl miss. Ich ziele mit meinem Tipp dahin, Konten zu nutzen, die keine UAC kennen.
Member: Rene1976
Rene1976 Jan 17, 2013 at 11:41:14 (UTC)
Goto Top
Hi,

erst mal vielen Dank für die Anregungen.

1. Wir haben unser Programm unter C:\ProgrammName liegen und nicht direkt unter C:

2. Gestern haben wir schon mir unserem Updateprogamm experimentiert und den Versuch gemacht es von dem Clinet aus zu starten. Das hat im Test soweit funktioniert und der Aufwand es umzuschreiben war überschaubar.

Jetzt werden wir es ausrollen und dem Hauptprogramm noch sagen das es nach dem Herunterladen und Entpacken den lokalen Installer aufrufen soll.

Wie gesagt, das war für uns die einfachste Lösung.


Dem Local Update Publisher http://sourceforge.net/projects/localupdatepubl/ werde ich mir aber trotzdem mal für andere Zwecke anschauen.

Besten Dank,

Rene