Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Vista: Wohin mit "AllUsers"-Dateien? (https://www.delphipraxis.net/138941-vista-wohin-mit-allusers-dateien.html)

Angel4585 20. Aug 2009 09:49


Vista: Wohin mit "AllUsers"-Dateien?
 
Hallo,

unser Programm pflegt eine XML Datei in welcher Daten für alle Benutzer verwaltet werden.
Diese Datei lag bis XP in C:\Dokumente und Einstellungen\AllUsers\Anwendungsdaten.
Seit Vista ist das C:\ProgramData.
Da nun jeder User dort auch reinschreiben muss, tritt ab Vista ein Problem auf:

User A kann die Datei anlegen un hat vollen Zugriff drauf. User B hat allerdings nur Lesen&Ausführen weshalb es beim Schreiben natürlich zu Problemen kommt.

Es muss doch einen Ort geben, wo man so eine Datei abgelegt werden kann und Jeder Vollzugriff drauf hat, oder? Welcher Ordner ist das seit Vista?

Ich möchte unsere User eigentlich nicht mit Kontextmenü -> Als Admin starten nerven.
Per Manifest als Admin starten ist auch ungeschickt, da das gleiche Programm aus einem Dienst heraus parametrisiert aufgerufen wird, wenn dort die Meldung kommt und keiner die sieht hängt das Programm ewig im Nirvana rum.

Habt Ihr ne Idee wo ich die Datei am besten hinmachen kann? :gruebel:

himitsu 20. Aug 2009 09:53

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Was liefert denn GetSpecialFolder(CSIDL_COMMON_APPDATA) für einen Pfad?
Dieser ist ja angeblich genau für sowas da.

[add]
Aber eventuell/notfalls kannst du dir ja wärend des Setups (mit Adminrechten) einen Unterordner in C:\ProgramData anlegen, wo du dann allen Usern Schreibrechte einräumst?

Angel4585 20. Aug 2009 10:07

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
GetSpecialFolder(CSIDL_COMMON_APPDATA) liefert mir "C:\ProgramData", darüber wird auch der Pfad zur Datei generiert. Was ist wenn ein normaler User die Installation vornimmt, dann kann ich doch nich bei der Installation die Rechte für jeden setzen?

jaenicke 20. Aug 2009 10:09

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Es gibt keinen solchen Ordner. Jeder Benutzer hat normalerweise eine eigene Datei. Die kann ja jeder auslesen, man kann also Daten problemlos zwischen den Dateien der verschiedenen Benutzer austauschen. Aber man kann eben keinem anderen Benutzer seine Datei direkt kaputtmachen.

Eine Software kann z.B. beim Start fragen, ob Änderungen anderer Benutzer importiert werden sollen.

Ansonsten müssen tatsächlich die Ordnerrechte des Unterordners in den Anwendungsdaten aller Benutzer entsprechend verändert werden. Allerdings müsste es dafür schon gute Gründe geben. Ich persönlich hätte jetzt keinerlei Ideen für eine Software wo man das nicht auch sauber lösen könnte. :gruebel:
Heißt: Es müssen die Rechte für die Gruppe Benutzer entsprechend gesetzt werden.

// EDIT:
Zitat:

Zitat von Angel4585
Was ist wenn ein normaler User die Installation vornimmt, dann kann ich doch nich bei der Installation die Rechte für jeden setzen?

Wie bitte? Normaler Benutzer? Installation? :wall:

himitsu 20. Aug 2009 10:10

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Zitat:

Zitat von Angel4585
GetSpecialFolder(CSIDL_COMMON_APPDATA) liefert mir "C:\ProgramData", darüber wird auch der Pfad zur Datei generiert.

witzig nur, daß CSIDL_COMMON_APPDATA ja angeblich genau dafür gedacht ist, da hätt ich dann auch erwartet, daß alle da zugriff haben :gruebel:

Zitat:

Zitat von Angel4585
Was ist wenn ein normaler User die Installation vornimmt, ...

ja, dann geht das nicht so ... dann mußte das Setup mit Adminrechten versehen, welche du doch eh benötigst, um dein Programm in den Programmordner reinzubekommen.

jaenicke 20. Aug 2009 10:11

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Zitat:

Zitat von himitsu
witzig nur, daß CSIDL_COMMON_APPDATA ja angeblich genau dafür gedacht ist, da hätt ich dann auch erwartet, daß alle da zugriff haben :gruebel:

Darauf haben auch alle Zugriff, aber auf fremde Dateien nur lesenden. Und das ist auch gut so...

Angel4585 20. Aug 2009 10:16

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Naja der Dienst braucht nunmal ne Datei die er unabhängig vom Benutzer verwalten kann, wo aber die Benutzer auch drauf zugreifen können. In der Datei werden ständig Änderungen vorgenommen und nicht einmalig Einstellungen die man importiert und ab da dann selbst weiterarbeitet.

@himi: ich guck mal ob das während dem Setup geht, guter Tipp!

TurboMartin 20. Aug 2009 13:19

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Ich würde sagen, entsprechendes ist C:\Users\Default\AppData und entsprechendem Unterordner.

Apollonius 20. Aug 2009 15:04

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Man braucht keine Adminrechte, um die Rechte eines selbsterstellten Ordners oder einer Datei zu ändern. Wenn einem das Objekt gehört, kann man auch anderen den Zugriff erlauben. Ob man das tun sollte, ist eine andere Frage. Man muss dann nämlich höllisch aufpassen, dass ein eingeschränkter Benutzer einem Admin keine Daten unterjubeln kann, die dein Programm Amok laufen lassen.

Angel4585 31. Aug 2009 11:46

Re: Vista: Wohin mit "AllUsers"-Dateien?
 
Also das mit den Rechten vergeben im Setup war der richtige Tip.

Ab Vista sind die Ordner unter C:\ProgramData\
Davor unter C:\Dokumente und Einstellungen\AllUsers\Anwendungsdaten\


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