Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   setup (adminrecht) und Usernetzlaufwerke (https://www.delphipraxis.net/159985-setup-adminrecht-und-usernetzlaufwerke.html)

erich.wanker 21. Apr 2011 15:11

setup (adminrecht) und Usernetzlaufwerke
 
Hallo leute,

ich hab ein InnoSetup (required admin), daß Datein kopiert und
abschließend ein Programm (auch mit adminrecht) startet...

In diesem Programm suche ich nun die Netzlaufwerke des akt. Users ..

Leider find ich immer nur die Laufwerke vom Admin (was irgendwie eh logisch ist) .. aber brauchen würde ich die Laufwerke des gerade angemeldeten und aktiven users (das Programm soll aber Admin-rechte beibehalten...)

Folgendes funktioniert nicht:

Delphi-Quellcode:
function GetNetworkDriveMappings(
  sl : TStrings ) : integer;
var
  i              : integer;
  sNetPath       : string;
  dwMaxNetPathLen : DWord;
begin
  sl.Clear;
  dwMaxNetPathLen := MAX_PATH;
  SetLength( sNetPath,
    dwMaxNetPathLen );
  for i := 0 to 25 do
  begin
    if( NO_ERROR =
      Windows.WNetGetConnection(
        PChar(
          '' + Chr( 65 + i ) + ':' ),
        PChar( sNetPath ),
        dwMaxNetPathLen ) )then
    begin
      sl.Add( Chr( 65 + i ) + ': ' +
              sNetPath );
    end;
  end;
  Result := sl.Count;
end;
Hab jemand einen Ansatz?

vielen Dank
erich

shmia 21. Apr 2011 16:20

AW: setup (adminrecht) und Usernetzlaufwerke
 
Ein Setup (mit Admin-Rechten) soll ja ein Programm installieren und dazu bestimmte Dateien auf den Rechner kopieren und gewisse Einstellungen in der Registry (HKEY_LOCAL_MACHINE) vornehmen.
Aber hier endet dann die Aufgabe des Setups.

Wenn im Programm irgendwie ein Netzwerklaufwerk oder eine Netzwerkfreigabe eingerichtet werden muss, dann ist das Aufgabe des Programms selbst.
Notfalls wird beim 1. Programmstart pro User ein Assistent-Formular geöffnet.
Der Benutzer wird zwangweise durch diesen Assistent geführt, bis die Konfiguration fertig ist.

Es geht also darum, genau zwischen den Aufgaben des Setups und der Anwendung zu unterscheiden.
Beispiel Internet Explorer:
Wenn man nach der Installation des IE9, den neuen IE zum ersten Mal startet,
dann muss man auch erst mal durch einen Assistenten und einige Fragen beantworten.
Diese Konfiguration wird aber Userabhängig gespeichert.

erich.wanker 21. Apr 2011 16:44

AW: setup (adminrecht) und Usernetzlaufwerke
 
Hallo shmia,

so ähnlich läuft es eh ab:

Setup kopiert Daten und startet abschließend ein Programm (der Assistenten..)

Aber das Inno-Setup startet "den Assistenten" mit Adminrechten - und der Assistent zeigt darum nur die Netzlaufwerke vom Admin an...

Der "Assistent" fragt den User, auf welchem Netzlaufwerk die Serverinstallation zu finden ist...

Das INNO Setup muß ich mit Adminrechten ausführen (wegen ein paar Registry Sachen ect.)
Den Assistenen muß ich mit Adminrechten ausführen, da dieser die Endkonfiguration in die Registry schreibt (und noch so einiges).


ich könnte natürlich den assistenten in "Run once" reinlegenen und einen Neustart erzwingen, will ich aber, wenn Möglich - vermeiden.

Luckie 21. Apr 2011 17:59

AW: setup (adminrecht) und Usernetzlaufwerke
 
Du hast es nicht verstanden. Nicht das Setup startet den Assistenten, sondern das installierte Programm. Denn was machst du wenn ein anderer Benutzer dein Programm benutzen will, der andere Netzlaufwerke hat?

Reinhard Kern 22. Apr 2011 09:43

AW: setup (adminrecht) und Usernetzlaufwerke
 
Zitat:

Zitat von erich.wanker (Beitrag 1096403)
...
Aber das Inno-Setup startet "den Assistenten" mit Adminrechten - und der Assistent zeigt darum nur die Netzlaufwerke vom Admin an...

Der "Assistent" fragt den User, auf welchem Netzlaufwerk die Serverinstallation zu finden ist...
...

Hallo,

das geht aus Prinzip nicht. Das würde ja heissen, dass du beim ersten Setup gleich alle denkbaren User sofort einrichten müsstest, das ist nicht nur völlig unüblich, sondern schlicht unmöglich. Wenn Jahre nach der Installation eine neuer User das Programm startet, muss als erstes die userspezifische Einrichtung durchlaufen werden.

Netzlaufwerke sind sowieso keine Frage der Installation, sondern sollten unter "Anpassen" oder so geführt werden, es gibt hunderte Gründe, warum sich ein Netzwerklaufwerk ändern kann.

Gruss Reinhard

Christian Seehase 22. Apr 2011 13:23

AW: setup (adminrecht) und Usernetzlaufwerke
 
Moin Erich,

Zitat:

Zitat von erich.wanker (Beitrag 1096403)
Den Assistenen muß ich mit Adminrechten ausführen, da dieser die Endkonfiguration in die Registry schreibt (und noch so einiges).

Das sehe ich anders.
Die userspezifische Konfiguration sollte ohne Adminrechte auskommen, denn der Teil sollte auch weiterhin vom Anwender änderbar sein.

Zitat:

Zitat von Luckie
Denn was machst du wenn ein anderer Benutzer dein Programm benutzen will, der andere Netzlaufwerke hat?

Das Netzwerklaufwerke bei unterschiedlichen Anwendern unterschiedlich sind sollte es nach Möglichkeit nicht geben.
Um dem Problem aber komplett aus dem Wege zu gehen, verwendet man dann kein Netzwerklaufwerk mit Buchstaben, sondern einen UNC-Pfad. Wenn man dann Aliase für Server verwendet stört auch der Wechsel eines Servers nicht.

Ralf Kaiser 23. Apr 2011 14:32

AW: setup (adminrecht) und Usernetzlaufwerke
 
Zitat:

Zitat von Christian Seehase (Beitrag 1096502)
Zitat:

Zitat von Luckie
Denn was machst du wenn ein anderer Benutzer dein Programm benutzen will, der andere Netzlaufwerke hat?

Das Netzwerklaufwerke bei unterschiedlichen Anwendern unterschiedlich sind sollte es nach Möglichkeit nicht geben.

Warum sollte es das nicht geben?

Ich habe schon bei vielen Kunden gesehen, dass z.B. für jeden Benutzer z.B. ein Laufwerk "U:\" (= User :wink:) eingerichtet war das jeweils auf ein Verzeichnis auf dem Server zeigte in dem der betreffende Benutzer seine Daten speichern kann.

Somit gibt es für jeden Benutzer unterschiedliche Netzwerklaufwerkzuordnungen. Was soll daran unüblich sein? (man muss daran denken, dass viele Benutzer nicht in der Lage sind mit UNC-Pfaden umzugehen: "Wir verwenden seit 20 Jahren Laufwerksbuchstaben. Das war schon immer so...." :wink:

Christian Seehase 24. Apr 2011 13:30

AW: setup (adminrecht) und Usernetzlaufwerke
 
Moin Ralf,

Zitat:

Zitat von Alfi001 (Beitrag 1096625)
Ich habe schon bei vielen Kunden gesehen, dass z.B. für jeden Benutzer z.B. ein Laufwerk "U:\" (= User :wink:) eingerichtet war das jeweils auf ein Verzeichnis auf dem Server zeigte in dem der betreffende Benutzer seine Daten speichern kann.

Ich denke mal, dass Du mich da missverstanden hast.
Mit dem "sollte es nicht geben" war gemeint, dass es keine unterschiedlichen Laufwerksbuchstaben für gleiche UNC-Pfade geben sollte.

Das bei Userlaufwerken mit dem gleichen Buchstaben auf unterschiedliche Verzeichnisse referenziert wird ist klar, sollte aber für Installationen keinen Unterschied machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz