AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dienst soll auf Netzwerkadressen zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst soll auf Netzwerkadressen zugreifen

Ein Thema von xZise · begonnen am 31. Okt 2008 · letzter Beitrag vom 4. Nov 2008
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 10:58
Hallo ihr,
ich habe einen Dienst der eine Datei von einem Server laden soll. Also habe ich einfach zuerst ein "FileExists('\\gottfried\Neuer Ordner\Service.exe')" gemacht. Aber er meldet mir immer false. Auch ein CopyFile gibt den ErrCode 0 zurück (kA was das heißt... ich find dazu nichts). Aber wenn ich mich als Administrator anmelde geht alles und zumindest FileExists geht (zweiteres noch nicht getestet). Was muss ich jetzt machen, damit auch der Service daran kommt? Normale Benutzer müssen nämlich ein gültigen Login und ein gültiges Passwort eingeben damit es funktioniert. Deshalb nehme ich an das dem Service diese Frage auch gestellt wird.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 11:13
Dienste haben keinen Zugriff auf Ordner im Netzwerk, wenn ich mich recht entsinne.

Und was sagt GetLastError nach dem Aufruf von CopyFile?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 11:33
Zitat von Luckie:
Dienste haben keinen Zugriff auf Ordner im Netzwerk, wenn ich mich recht entsinne.
Doch, sie können, aber sie müssen unter einer Anmeldung laufen, die Zugriff auf die Ordner im Netzwerk hat.
Schlimmstenfalls muss man im Dienst eine Laufwerksverbindung herstellen, das kann auch ohne Vergabe eines Laufwerksbuchstabens sein.
Code:
net use \\meinserver\d$ /user:Domaene\Anmeldename Passwort
stellt eine Laufwerksverbindung ohne Laufwerksbuchstabe her, ein
Code:
dir \\meinserver\d$
ist dann z. B. möglich.
Auch ein Dienst kann dann (sofern er mit der gleichen Anmeldung läuft) auf die Ordner des Servers zugreifen.
Wenn man die Laufwerksverbindung aus dem Dienst heraus erstellt, sollte es möglich sein, einen anderen Benutzer zu verwenden, als den, unter dessen Konto der Dienst läuft.

Alternative wäre: Auf den Servern, auf die der Dienst zugreifen soll, entsprechende Freigaben einzurichten und dem Benutzer, unter dessen Konto der Dienst läuft, die entsprechenden Rechte einzuräumen. Sofern die Freigabe nicht für "Jedermann" zu sehen sein soll, reicht es unter Windows aus, dem Freigabenamen ein $ anzuhängen.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 12:15
Zitat von Luckie:
[...]Und was sagt GetLastError nach dem Aufruf von CopyFile?
5 Also Zugriff verweigert.

Zitat von nahpets:
Schlimmstenfalls muss man im Dienst eine Laufwerksverbindung herstellen, das kann auch ohne Vergabe eines Laufwerksbuchstabens sein.
Code:
net use \\meinserver\d$ /user:Domaene\Anmeldename Passwort
stellt eine Laufwerksverbindung ohne Laufwerksbuchstabe her, ein
Code:
dir \\meinserver\d$
ist dann z. B. möglich.
Auch ein Dienst kann dann (sofern er mit der gleichen Anmeldung läuft) auf die Ordner des Servers zugreifen.
Wenn man die Laufwerksverbindung aus dem Dienst heraus erstellt, sollte es möglich sein, einen anderen Benutzer zu verwenden, als den, unter dessen Konto der Dienst läuft.
Muss ich den das "net use" vom Service aus ausführen?

Zitat von nahpets:
Alternative wäre: Auf den Servern, auf die der Dienst zugreifen soll, entsprechende Freigaben einzurichten und dem Benutzer, unter dessen Konto der Dienst läuft, die entsprechenden Rechte einzuräumen.
Also das heißt?

Zitat von nahpets:
Sofern die Freigabe nicht für "Jedermann" zu sehen sein soll, reicht es unter Windows aus, dem Freigabenamen ein $ anzuhängen.
Dieser Trick ist schon bekannt.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 12:36
Du musst den Service-Eintrag für das integrierte Sicherheits-Prinzipal NT AUTHORITY\NetworkService vornehmen sonst besteht kein Netzwerkzugriff für einen Dienst.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 31. Okt 2008, 12:39
Zitat:
Muss ich den das "net use" vom Service aus ausführen?
Das wäre eine Möglichkeit über ShellExecute dies habe ich aber noch nicht ausprobiert.
Vermutlich kannst Du das aber auch über die Windows-API lösen, da weiß ich aber auch nicht wie das geht, da ich lieber auf Betriebssystemebene für die entsprechenden Rechte sorge.
Eventuell kannst Du dich mit azwa66 zusammentuen.

siehe auch
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 3. Nov 2008, 13:25
Wie könnte ich auf Betriebssystemebene die Rechte vergeben?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 3. Nov 2008, 14:30
Hallo,

was für ein Betriebssystem hast Du?

Im Explorer das Verzeichnis auswählen, auf das der Dienst zugreifen soll.
Rechte Maustaste, Eigenschaften, Reiter Sicherheit, den Benutzer, unter dessen Konto der Dienst läuft hinzufügen, mit den passenden Rechten versehen und Übernehmen bzw. Ok.

Sollte bei XP, Windows Server... funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 4. Nov 2008, 11:41
Windows 2000 auf Windows XP Prof.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Dienst soll auf Netzwerkadressen zugreifen

  Alt 4. Nov 2008, 11:55
Hallo,

unter Windows 2000, Windows Server 2003 und XP Prof. habe ich, mit der von mir beschriebenen Verfahrensweise, keine Probleme.
Die Dienste laufen mit einer Admin-Anmeldung der Domäne und die Laufwerksverbindungen werden beim Systemstart per Net Use hergestellt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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