vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Programm mit Rechten starten 
Autor: argoped
Datum: 24.07.17 12:27

Hallo,
ich habe eine Programm, dass sich aus dem Internet updated. Dazu ruft es bei Bedarf den Updater auf, der dann mit Adminrechten startet und das Programm updatet. Soweit so gut.
Nach beenden des Updates ruft der Updater das Programm wieder auf, das dann aber mit Adminrechten läuft, was ich eigentlich nicht will.
Gibt es eine Möglichkeit das Programm nach dem Update mit bestimmten Rechten zu starten?

Das starten der beiden Programme mache ich jeweils mit Process.Start(progname).

Vielen Dank mal im Vorraus für eure Mühe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: effeff
Datum: 25.07.17 21:52

Also, zum Verständnis:

Du hast ein Programm geschrieben. Dieses ruft bei Bedarf einen Updater auf, welcher automatisch mit Adminrechten startet. Oder muss man die Admin-Rechte explizit einräumen?

a) Dafür gibt es z. B. ClickOnce-Anwendungen. Die können sich selbständig aus dem Internet Updaten und laufen im richtigen Kontext.

b) Wenn Dein Programm automatisch mit Admin-Rechten läuft, machst Du das zwangsläufig per Impersonation. Was hindert Dich daran, vor dem Setzen der Admin-Rechte den angemeldeten Benutzer auszulesen und die Impersonation ein zweites Mal stattfinden zu lassen, um diesen Benutzer wieder einzusetzen?

c) Genauso kannst du doch auch bei einem manuellen Setzen der Admin-Rechte den Benutzer wieder einsetzen.

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: argoped
Datum: 26.07.17 01:29

Hallo effeff
beim Updater Program habe ich über die app.manifest mit dem Eintrag
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
(in der IDE über MyProject_Anwendung_Windows Einstellungen anzeigen) mitgeteilt, dass es Adminrechte benötigt. Wird es gestartet, muss der User, wenn er nicht sowiso schon Admin, ist ein Passwort eingeben. Tut er das startet der Updater mit Adminrechten und darf im Verzeichnis Programme schreiben und so weiter.
Ich weiss nicht was Du mit Impersonation meinst.
Ich habe mich heute mit der Klasse Process beschäftigt, der kann man über die ProcessStartInfo-Klasse einiges, unter anderem auch einen Usernamen mitgeben, allerdings wurde ich da nicht so ganz schlau draus, da man auch ein Passwort mitgeben muss.
Wie würde ich denn so eine Impersonation coden?

Grüsse argoped
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: effeff
Datum: 26.07.17 09:59

Siehe https://msdn.microsoft.com/de-de/library/w070t6ka%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: argoped
Datum: 27.07.17 12:35

Hallo effeff,

vielen Dank mal für den Link (woher wusstest du das mit dem #code-snippet-2? cool). Unschön an der Sache ist, dass der User sein Passwort eingeben muss. Das kann doch jeder gewöhnliche Installer besser.

"Besser aufrecht sterben, als auf den Knien leben!"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: argoped
Datum: 27.07.17 12:38

Heute Morgen auf dem *** ist mir eine Lösung eingefallen, die ich gerne mit euch teilen möchte, da sie mir etwas umständlich vorkommt. Ich hoffe, dass da noch ein Einzeiler (oder etwas mehr) hochkommt.

Der Vollständigkeit halber erwähne ich noch folgendes (das Hauptprogramm nenne ich mal Main).

Da sich der Updater ja auch selbst updaten können soll habe ich bisher in Main geprüft ob eine Datei Namens UpdaterNew.exe vorhanden war und umbenannt. Das hätte mich ja eigentlich stutzig machen sollen, denn wie kann Main ohne Adminrechte den Updater umbenennen? Hab ich Jahrelang nicht bemerkt.
Aber weiter. Also Main ruft, bevor es sich beendet, den Updater und ein weiteres Programm Restarter auf. Restarter läuft unter dem angemeldeten User. Der Updater macht was er soll und bevor er sich beendet startet er ein viertes Programm den UpdaterRenamer auf der dann die UpdaterNew umbenennt und sich selbst beendet. Der Restarter muss dann nur noch mitbekommen wann Updater und Renamer beendet wurden und kann Main starten und sich beenden.

„Die Wahrheit wird euch frei machen.“ (Da meint die Bibel natürlich die eigene Wahrheit)

Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: Franki
Datum: 28.07.17 04:37

Hallo,

na ja, was die Bibel zu diesem Thema sagt weiß ich nicht, ich vermute mal, dass sie zu alt dafür ist dazu etwas sagen zu können.

OK, du hast eine Lösung gefunden, aber das was du da vorschlägst ist ja "Schnee von gestern" die aktuellen Möglichkeiten bieten da komfortablere Varianten (.NET)

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: argoped
Datum: 28.07.17 11:54

Hallo Franki,
wie war das mit den alten Besen?
Aber lass dich nicht aufhalten, nur zu, ich bin ganz Ohr äh Auge.

"Die Zukunft soll man nicht voraussehen wollen, sondern möglich machen."
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: Franki
Datum: 29.07.17 03:20

Hallo,
Zitat:

wie war das mit den alten Besen?

Keine Ahnung, ich kenne nur das Sprichwort, dass neue Besen gut kehren.
Zitat:


Aber lass dich nicht aufhalten, nur zu, ich bin ganz Ohr äh
Auge.

Ja und zum Thema "alt/neu" sei noch angemerkt, dass es je nach Situation darauf ankommt, ob alte Werte beibehalten werden sollten oder nicht. Never change a running system war mal in der Diskussion, aber dann würden wir heute noch mit Pferdekutschen durch die Gegen fahren anstatt mit Autos.
Zitat:


Die Zukunft soll man nicht voraussehen wollen, sondern
möglich machen.


Genau und indem man sie möglich machen will muss man schon eine Vision haben wie sie aussehen könnte. Denn sonst könnte man sie ja nicht möglich machen. Jeder Programmierer arbeitet ja an seiner Zukunft, egal worum es sich handelt.

aber wie gesagt, den biblichen Aspekt würde ich da völlig ignorieren, denn sonst könnte man sich ja dahinter verstecken, dass die Welt sowieso irgendwann unter geht und es sich nicht mehr lohnt zu Programmieren.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programm mit Rechten starten 
Autor: argoped
Datum: 29.07.17 11:08

Hallo Franki,
also um nun nicht ganz in philosophische Diskussionen abzudriften was meinst Du denn nun eigentlich?
ClickOnce? Das kann? ich leider nicht verwenden, da ich keinen direkten Zugriff auf das Serververzeichnis habe. Zudem lege ich während des Installs Registry Keys an, die ich beim Uninstall natürlich wieder entfernen möchte. Geht das mit ClickOnce?
Nun habe ich die beiden Programme (Restarter, Renamer) schon eingebaut aber wenn Du noch eine schöne andere Lösung anbieten kannst dann würde ich mich freuen wieder mal was dazu gelernt zu haben und diese beiden alten Pferde gegen einen neuen VW Diesel zu ersetzen.
Aber bitte nichts mehr über alt/neu, Bibel oder Besen. Das bindet nur Zeit.

Grüße
Argoped
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel