Entwickler-Ecke
Dateizugriff - Netzlaufwerke auslesen mit erhöhten Rechten?
hydemarie - Di 02.12.25 11:45
Titel: Netzlaufwerke auslesen mit erhöhten Rechten?
Ahoi,
mal ein etwas kryptisches Problem. Eigentlich geht's um Lazarus, aber in "Dateizugriff" passte es m.E. besser rein und so groß sind die syntaktischen Unterschiede ja nicht mehr. (Sonst notfalls in Free Pascal verschieben bitte.)
Was ich vorhabe:
- Auf einem Netzlaufwerk befinden sich ein paar Dateien.
- Das Netzlaufwerk ist momentan als Admin (sudo net use...) als V:\ eingebunden, aber das ist wahrscheinlich nicht so wichtig und könnte notfalls geändert werden.
- Mein Programm soll im Wesentlichen alle Dateien auflisten, die auf diesem Netzlaufwerk herumliegen.
Ich scheitere derzeit noch. Zwei Szenarien habe ich ausprobiert:
- for A:\ to Z:\ [https://wiki.lazarus.freepascal.org/Windows_Programming_Tips#Listing_all_available_drives]: FindAllFiles() behauptet, auf V:\ seien keine Dateien. Vielleicht, weil V:\ als DRIVE_NO_ROOT_DIR erkannt wird? (Warum?)
- GetLogicalDriveStrings [https://wiki.freepascal.org/Identify_Drives/de]: V:\ taucht gar nicht erst auf.
Ich schließe nicht aus, dass der erste Ansatz besser war. Aber wie bekomme ich die Anwendung jetzt dazu, dass FindAllFiles() funktioniert?
jaenicke - Mi 03.12.25 11:08
Du musst dein Programm ebenfalls als Admin starten, wenn das Netzlaufwerk nur im Admin-Kontext gemappt wurde. Im Benutzerkontext ohne Adminrechte existiert es dann schlicht nicht.
hydemarie - Do 04.12.25 02:02
Die Anwendung läuft automatisch mit erhöhten Rechten, das ist bereits in die .exe hineinkompiliert. Daran liegt es also nicht (oder?).
jaenicke - Do 04.12.25 07:23
Ich habe das nicht getestet. Da bei der Anmeldung das Standardnutzer und Admintoken generiert werden, hätte ich gedacht, dass beide in der gleichen Umgebung laufen. Ich bin mir aber nicht sicher, wie lange das Netzlaufwerk lebt, wenn die Session nach dem net use wieder beendet wird.
Warum verwendest du eigentlich nicht einfach UNC-Pfade? Dann gibt es das Problem gar nicht erst.
hydemarie - Do 04.12.25 11:40
Das Netzlaufwerk ist da und im Explorer komme ich auch ran. Das ist ja das Merkwürdige. Bei lokal angeschlossenen Festplatten funktioniert der Code.
Meine Anwendung ist nicht nur dafür da, dass ich damit klarkomme, das macht die Sache schwieriger. Ich muss also in jedem Fall die Laufwerksbuchstaben abbilden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!