Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Eigenen Software-Updater UAC konform umbauen
HeikoAdams
myCSharp.de - Member

Avatar #avatar-4083.jpg


Dabei seit:
Beiträge: 62
Herkunft: Coburg

Themenstarter:

Eigenen Software-Updater UAC konform umbauen

beantworten | zitieren | melden

Hallo,
eine Altlast meiner Vorgänger ist, das unsere Anwendungen durch Kopieren der neuen Programmdateien von einem Netzlaufwerk nach c:\Programme, genauer gesagt

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
aktualisiert werden.

Da seit Vista die UAC hier aber die Blutgrätsche auspackt, hat man sich damals dazu enschlossen, die UAC zu deaktivieren, was ich jetzt gerne revidieren würde.

Jetzt ist meine Frage, wie ich das Aktualisierungsprogramm so umbaue, dass das bisherige Verhalten erhalten bleibt, ich die UAC reaktivieren kann und bei Updates nicht der "Wollen Sie wirklich" Dialog der UAC aufpoppt?
Wer ordentlichen Code schreibt, lebt entspannter 8)
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4001

beantworten | zitieren | melden

Du willst also UAC aktivieren, aber kein UAC nutzen???
private Nachricht | Beiträge des Benutzers
HeikoAdams
myCSharp.de - Member

Avatar #avatar-4083.jpg


Dabei seit:
Beiträge: 62
Herkunft: Coburg

Themenstarter:

beantworten | zitieren | melden

Jaein. Ich möchte die UAC aktivieren, aber nicht diesen ständigen "Wollen Sie wirklich" Dialog, weil das für die Anwender einfach nur nervig ist.

Was ich noch vergaß: Die betreffende Anwendung wird auch zum Starten der Anwendungen verwendet und kopiert damit im Prinzip bei jedem Stand die Dateien der Anwendungen neu vom Netzlaufwerk auf den Rechner.
Wer ordentlichen Code schreibt, lebt entspannter 8)
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1820
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Ich würde hier UAC verwenden und den Anwender ruhig damit nerven, es hat schon seinen Grund warum dies so gelst wird!
Du hast sonst nur die Wahl bei dem Benutzern UAC abzuschalten oder den jeweiligen User zu einem Admin zu machen, damit er nur noch Ja/Nein sieht ohne sein PW eingeben zu müssen.
Von beidem würde ich aber abraten, da man damit klar die Sicherheit absenkt!

Es wäre auch sinnvoller, nur bei Änderungen der Dateien, diese von der Freigabe zu beziehen.
Hier würden ein einfacher Hash Vergleich reichen um einfache Änderungen festzustellen.
Dies dürfte auch die Menge der UAC Abfragen auf lange Sicht absenken, je nachdem ob die Dateien im Programme Ordner gelesen und ausgeführt werden dürfen, selbst wenn der Benutzer unprevilegiert ist.
Wozu also jedesmal alles wieder von der Freigabe laden und eben die UAC Abfrage auslösen, wenn es keine Änderungen gab?
Oder werden über die Freigabe auch Dateien, die dann lokal abgespeichert werden, abgelegt und abgerufen?

T-Virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
HiGHteK
myCSharp.de - Member



Dabei seit:
Beiträge: 117

beantworten | zitieren | melden

Hallo HeikoAdams,

wenn du auf die UAC verzichten willst, dann solltest du deine Anwendung einfach in einen Ordner installieren in den der Benutzer schreiben darf. Im einfachsten Fall einfach unterhalb des Benutzerprofils unter C:\Users\{MyUser}\{MyApp}.
Läuft deine Anwendung von da, dann kannst du einfach ohne UAC Dateien kopieren und austauschen, da der Benutzer die notwendigen Zugriffsrechte schon hat (AFAIK macht es Chrome ähnlich, damit ein Update still im Hintergrund erfolgen kann).
Erscheint mir zumindest einfacher, als die UAC irgendwie umgehen zu wollen, was IMHO nicht oder nicht ohne Workarounds möglich ist.

Grüße, HiGHteK
private Nachricht | Beiträge des Benutzers
HeikoAdams
myCSharp.de - Member

Avatar #avatar-4083.jpg


Dabei seit:
Beiträge: 62
Herkunft: Coburg

Themenstarter:

beantworten | zitieren | melden

Zitat von T-Virus
Oder werden über die Freigabe auch Dateien, die dann lokal abgespeichert werden, abgelegt und abgerufen?
Nein, es werden von der Freigabe ausschließlich die Programmdateien (*.exe, *.dll) auf den lokalen Rechner kopiert.
Wer ordentlichen Code schreibt, lebt entspannter 8)
private Nachricht | Beiträge des Benutzers
Papst
myCSharp.de - Experte



Dabei seit:
Beiträge: 355
Herkunft: Kassel

beantworten | zitieren | melden

Kannst du einen Updater Prozess nicht als Hintergrundservice installieren?
Dann könnte der schreibende Rechte auf den Ordner bekommen und dort die Programme updaten ohne dass ein Benutzereingriff notwendig ist.

Soll eine manuelle Aktualisierung notwendig sein, so müsstest du eine Interaktionsschnittstelle schreiben. Aber das ist kein hexenwerk.

So funktioniert das "Ich will was installieren" Programm bei uns auf Arbeit auch und sorgt dafür, dass Programme richtig installiert werden können ohne das Adminrechte der Nutzer notwendig sind.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15703
Herkunft: BW

beantworten | zitieren | melden

UAC zu deaktivieren und blind zu umgehen ist verantwortunglos. Nichts anderes.
Es gibt Lösungen, die administrative Rechte bei der Installation benötigen (zB ein Windows Service, der dann Updaten darf, so macht es Chrome)
Siehe dazu auch How does Chrome update without UAC

Ohne Adminrechte oder den Dialog, der seine absolute Berechtigung hat, gehts aber (Gott sei dank) nicht wirklich.
Wer in Zeiten von Leaks und Co immer noch nicht verstanden hat, wozu solche Mechanismen da sind - und zwar nicht zum Gängeln des Users - hat vermutlich die letzten 15 Jahre verpennt :)
private Nachricht | Beiträge des Benutzers