Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateiberechtigungen unter Win2000/XP (https://www.delphipraxis.net/11357-dateiberechtigungen-unter-win2000-xp.html)

sakura 5. Nov 2003 08:47


Dateiberechtigungen unter Win2000/XP
 
An dieser Stelle schreibe ich die Frage für den User TSchl bei dem die DP nachgewiesener maßen den Schalter [NEUES THEMA] nicht darstellt. :gruebel:

Nun seine Frage:

Mein Programm benötigt für alle User ein Verzeichnis wo Daten abgelegt werden, wenn ich das Programm als Admin installiere mit GhostInstaller, dann kann der User nicht schreibend auf das Verzeichnis zugreifen. Wie und wo lege ich am besten ein All user Verzeichnis an in dem alle Berechtigungen zum Schreiben haben. Habe schon im ALL User Verzeichnis probiert aber auch das klappt so nicht.

Gruss
TSchl

Christian Seehase 5. Nov 2003 20:41

Re: Dateiberechtigungen unter Win2000/XP
 
Moin TSchl,

leider kenne ich die Möglichkeiten des GhostInstallers nicht, gehe aber mal davon aus, dass man auch beliebige Programme während einer Installation damit aufrufen kann.
In diesem Falle kämen da wohl CACLS (Tool im SYSTEM32 Verzeichnis) oder XCACLS (Resource Kit Tool) in Frage, mit denen man die Berechtigungen auf Verzeichnisse (Dateien) ändern kann.

Dazu ein simples Beispiel:
Mit dieser Befehlszeile

Code:
cacls "D:\temp\Dies ist ein Testverzeichnis" /E /P Administratoren:F
Würde man auf das Verzeichnis "Dies ist ein Testverzeichnis" die bestehende Access Control List (ACL) dahingehend ändern (/E), das die Gruppe der Administratoren Vollzugriff (F) bekommt.
Standardmässig war es "Jeder Vollzugriff", anschliessend ist noch zusätzlich die Gruppe der Administratoren hinzugekommen.
Ohne Parameter /E wären es nur die Administratoren gewesen, dann dann die ACL ersetzt wird. (E = Extend)

Für Einzelheiten einfach mal CALCS /? in der Konsole eingeben.

TSchl 7. Nov 2003 08:00

Re: Dateiberechtigungen unter Win2000/XP
 
Hallo Chris,

ja so könnte das gehen, das Problem ist dann aber, je nach installierter Win-Version heisst der Account für All User anders, wie soll ich dann da die Rechte vergeben.


Ich habe mir jetzt mal so geholfen: ich lege im All User ein Verzeichnis an, dadurch bekommt es die Berechtigung für All User, dann kopiere ich die Dateien rein und hoffe das jeder darauf zugreifen kann.

Gruß
TSchl

Christian Seehase 7. Nov 2003 20:45

Re: Dateiberechtigungen unter Win2000/XP
 
Moin TSchl,

wenn Du als Benutzer JEDER angibst, sollte das eigentlich bei jeder deutschsprachigen Version funktionieren.
Ansonsten müsste man es wohl mit der SID der jeweiligen Gruppe machen, um Sprachunabhängigkeit zu bekommen.

TSchl 10. Nov 2003 06:38

Re: Dateiberechtigungen unter Win2000/XP
 
Hallo Chris,
genau dort liegt das Problem, das Programm muß auf internationalen Rechnern laufen, da wirds echt schwierig. Das Problem fängt schon damit an, das ich von Win95 über NT4(das macht am meisten Probs) bis zum XP alles unterstützen muß.
Ich bin nun mal gespannt welche Rückmeldung ich von unserem Service bekomme, wenn es installiert ist.

Gruss
TSchl

Christian Seehase 10. Nov 2003 19:38

Re: Dateiberechtigungen unter Win2000/XP
 
Moin TSchl,

da ACLs nur unter NTFS vorkommen fällt 95 wohl eher unter den Tisch.
Um die SID der gewünschten Gruppe herauszubekommen, könntest Du es mal mit LookupAccountName versuchen. Damit müsstest Du die herausbekommen.
Ich weiss allerdings nicht sicher, ob diese Sprachversionsabhängig ist, obwohl es logisch wäre, dass dem so ist.

renekr 13. Jan 2006 08:55

Re: Dateiberechtigungen unter Win2000/XP
 
Hallo,

Wollte mal fragen ob es möglich ist in der ACL die NTFS Rechte zuändern obwohl man im moment nicht auf den Ordner Berechtigt ist??

Aber das Admin Passwort kennt.

Ev. mit Runas oder so?

Danke.

Christian Seehase 13. Jan 2006 11:21

Re: Dateiberechtigungen unter Win2000/XP
 
Moin renekr,

mit RunAs dürfte das funktionieren.
Zur Not kannst Du ja darüber einfach eine Konsole mit Admin-Rechten öffnen, und CALCS ausführen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 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