Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Über einen Dienst auf ein Netzwerklaufwerk zugreifen (https://www.delphipraxis.net/141092-ueber-einen-dienst-auf-ein-netzwerklaufwerk-zugreifen.html)

Ralf Meyer 2. Okt 2009 09:00


Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Hallo,

wir erstellen einen Dienst der aus einer Ini Datei den Pfad zur Datenbank ausliest.
Der Pfad ist dann (meist) ein Verzeichnis im Netzwerk z.B. Y:\Daten.

Auf Y: kann der Dienst aber nicht zugreifen.
Hat jemand Erfahrung, was man muss, damit ein Dienst auch auf Netzlaufwerke zugreifen können.

Starten wir den Dienst als Adminstrator können wir zumindest auf den UNC-Pfad zugreifen.
Als System funktioniert das gar nicht.

Gruß Ralf

Reinhard Kern 2. Okt 2009 09:34

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Zitat:

Zitat von Ralf Meyer
Hallo,

wir erstellen einen Dienst der aus einer Ini Datei den Pfad zur Datenbank ausliest.
Der Pfad ist dann (meist) ein Verzeichnis im Netzwerk z.B. Y:\Daten.

Auf Y: kann der Dienst aber nicht zugreifen.
Hat jemand Erfahrung, was man muss, damit ein Dienst auch auf Netzlaufwerke zugreifen können.

Starten wir den Dienst als Adminstrator können wir zumindest auf den UNC-Pfad zugreifen.
Als System funktioniert das gar nicht.

Gruß Ralf

Hallo,

System hat keine Rechte im Netzwerk. Am besten ist es, einen massgeschneiderten Benutzer anzulegen (Faxdienste legen z.B. FAXCLIENT in der Domäne an) und den Dienst unter diesem Konto zu starten. In einem verwalteten Firmennetzwerk muss man dazu den Admin hinzuziehen, aber das ist bei einem Dienst in jedem Fall dringend zu empfehlen. In einem GUT verwalteten Netz geht das sonst garnicht.

Gruss Reinhard

GHorn 2. Okt 2009 09:36

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Berechtigung? (LW-)Freigabe?

Gruß
Gerald

Ralf Meyer 2. Okt 2009 10:01

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Wir haben es bisher probiert den Dienst unter dem Administratorkonto laufen zu lassen. Es scheint aber, dass der Dienst in diesem Moment die Laufwerkszuordnung nicht hat.

Gruß Ralf

RenegadeGER 2. Okt 2009 16:39

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Laufwerkszuordnungen sind immer Benutzerbezogen. Der "Administrator" kennt deine Zuweisungen nicht.
Darüber hinaus sollte man einen Dienst niemals als Administrator laufen lassen...

Ralf Meyer 2. Okt 2009 16:53

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Hallo RenegadeGer,

es ist schon so, dass wir die Laufwerkszuordnung als angemeldeter Benutzer gemacht haben und dann auch den Dienst als Adminstrator starten.
Egal ob Adminstrator oder extra User wir müssen die Laufwerkszuordnung einmal gemacht haben und der Dienst muss dann mit "wnetaddconnection2" die Verbindung zum Laufwerk herstellen sonst ist der Pfad nicht gültig.

Gruß Ralf

Alter Mann 2. Okt 2009 18:16

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Hallo

@Ralf mal eine Frage: Im welcher WinStation läuft ein Dienst und in welcher ein Benutzer?

Dank der neuen Suchmöglichkeit würde ich dies empfehlen: Programm aus Dienst starten die xte.

Gruß

Ralf Meyer 5. Okt 2009 08:13

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Auf der WinStation sind wir als Administrator angemeldet. Die Netzlaufwerke wurden zugeordnet (Beim Start wiederherstellen). Der Dienst wird dann auch unter dem User Administrator gestartet.
Die Laufwerkszuordnungen sind aber nicht da.

Danke für den Suchhinweis, der hilft aber nicht wirklich weiter, da da das Problem auch nicht gelößt wird.

Gruß Ralf

Reinhard Kern 5. Okt 2009 08:46

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Zitat:

Zitat von Ralf Meyer
Wir haben es bisher probiert den Dienst unter dem Administratorkonto laufen zu lassen. Es scheint aber, dass der Dienst in diesem Moment die Laufwerkszuordnung nicht hat.

Gruß Ralf

Hallo,

2 Lösungen aus dem Netz:
1.
Are you using Active Directory, if so, right click on the computers OU that you want to map drives to, go to properties, group policy and new. Create a policy in 'templates', 'start up' to map your drives. These will then be mapped every time the machine is switched on.

2.
The helper process approach can be pretty simple: just create a new service that maps the drive and starts the 'real' service. The only things that are not entirely trivial about this are:

The helper service will need to pass on all appropriate SCM commands (start/stop, etc.) to the real service. If the real service accepts custom SCM commands, remember to pass those on as well (I don't expect a service that considers UNC paths exotic to use such commands, though...)

Things may get a bit tricky credential-wise. If the real service runs under a normal user account, you can run the helper service under that account as well, and all should be OK as long as the account has appropriate access to the network share. If the real service will only work when run as LOCALSYSTEM or somesuch, things get more interesting, as it either won't be able to 'see' the network drive at all, or require some credential juggling to get things to work.

Um es zu wiederholen: Administrator ist für einen Service das ungeeignetste Konto.

Gruss Reinhard

Ralf Meyer 5. Okt 2009 09:21

Re: Über einen Dienst auf ein Netzwerklaufwerk zugreifen
 
Hallo Reinhard,

vielen Dank für deine Antworten.
Die Erste kommt nicht in frage, da wir nicht vorraussetzen können dass jeder ein Active Directory installiert hat.
Die zweite Lösung versteh ich nicht wie sie gemeint ist. Was soll es bringen wenn der eine Dienst den zweiten steuert?

Gruß
Ralf


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Seite 1 von 2  1 2      

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